diff --git a/.gitea/workflows/rh8-native.yml b/.gitea/workflows/rh8-native.yml new file mode 100644 index 000000000..51d754125 --- /dev/null +++ b/.gitea/workflows/rh8-native.yml @@ -0,0 +1,29 @@ +name: Build on RHEL8 + +on: + push: + workflow_dispatch: + +permissions: + contents: read + +jobs: + build: + runs-on: "ubuntu-latest" + container: + image: gitea.psi.ch/detectors/rhel8-detectors-dev + steps: + - name: Clone repository + run: | + echo Cloning ${{ github.ref_name }} + git clone https://${{secrets.GITHUB_TOKEN}}@gitea.psi.ch/${{ github.repository }}.git --branch=${{ github.ref_name }} . + + - name: Build library + run: | + mkdir build && cd build + cmake .. -DSLS_USE_PYTHON=ON -DSLS_USE_TESTS=ON + make -j 2 + + - name: C++ unit tests + working-directory: ${{gitea.workspace}}/build + run: ctest \ No newline at end of file diff --git a/.gitea/workflows/rh9-native.yml b/.gitea/workflows/rh9-native.yml new file mode 100644 index 000000000..890b09edf --- /dev/null +++ b/.gitea/workflows/rh9-native.yml @@ -0,0 +1,27 @@ +name: Build on RHEL9 + +on: + push: + workflow_dispatch: + +permissions: + contents: read + +jobs: + build: + runs-on: "ubuntu-latest" + container: + image: gitea.psi.ch/detectors/rhel9-detectors-dev + steps: + - uses: actions/checkout@v4 + + + - name: Build library + run: | + mkdir build && cd build + cmake .. -DSLS_USE_PYTHON=ON -DSLS_USE_TESTS=ON + make -j 2 + + - name: C++ unit tests + working-directory: ${{gitea.workspace}}/build + run: ctest \ No newline at end of file diff --git a/.github/workflows/build_wheel.yml b/.github/workflows/build_wheel.yml new file mode 100644 index 000000000..f131e7775 --- /dev/null +++ b/.github/workflows/build_wheel.yml @@ -0,0 +1,64 @@ +name: Build wheel + +on: + workflow_dispatch: + pull_request: + push: + branches: + - main + release: + types: + - published + + +jobs: + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest,] + + steps: + - uses: actions/checkout@v4 + + - name: Build wheels + run: pipx run cibuildwheel==2.23.0 + + - uses: actions/upload-artifact@v4 + with: + name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} + path: ./wheelhouse/*.whl + + build_sdist: + name: Build source distribution + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Build sdist + run: pipx run build --sdist + + - uses: actions/upload-artifact@v4 + with: + name: cibw-sdist + path: dist/*.tar.gz + + upload_pypi: + needs: [build_wheels, build_sdist] + runs-on: ubuntu-latest + environment: pypi + permissions: + id-token: write + if: github.event_name == 'release' && github.event.action == 'published' + # or, alternatively, upload to PyPI on every tag starting with 'v' (remove on: release above to use this) + # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + steps: + - uses: actions/download-artifact@v4 + with: + # unpacks all CIBW artifacts into dist/ + pattern: cibw-* + path: dist + merge-multiple: true + + - uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yaml similarity index 73% rename from .github/workflows/cmake.yml rename to .github/workflows/cmake.yaml index 107e1c436..00d6a4b86 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yaml @@ -1,4 +1,4 @@ -name: CMake +name: Native CMake Build on: [push, pull_request] @@ -14,10 +14,16 @@ jobs: runs-on: ubuntu-latest name: Configure and build using cmake steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: 3.12 + cache: 'pip' + - run: pip install pytest numpy + - uses: awalsh128/cache-apt-pkgs-action@latest with: - packages: libhdf5-dev qtbase5-dev qt5-qmake libqt5svg5-dev + packages: libhdf5-dev qtbase5-dev qt5-qmake libqt5svg5-dev libpng-dev libtiff-dev version: 1.0 - name: Configure CMake @@ -27,12 +33,15 @@ jobs: - name: Build # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build -j2 --config ${{env.BUILD_TYPE}} + run: cmake --build ${{github.workspace}}/build -j4 --config ${{env.BUILD_TYPE}} - - name: Test + - name: C++ unit tests working-directory: ${{github.workspace}}/build - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail run: ctest -C ${{env.BUILD_TYPE}} -j1 + - name: Python unit tests + working-directory: ${{github.workspace}}/build/bin + run: | + python -m pytest ${{github.workspace}}/python/tests + diff --git a/.github/workflows/conda_deploy_library.yaml b/.github/workflows/conda_deploy_library.yaml new file mode 100644 index 000000000..6b5fb996e --- /dev/null +++ b/.github/workflows/conda_deploy_library.yaml @@ -0,0 +1,47 @@ +name: Build and deploy slsdetlib + +on: + release: + types: + - published + +jobs: + build: + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, ] # macos-12, windows-2019] + python-version: ["3.12",] + + runs-on: ${{ matrix.platform }} + + # The setup-miniconda action needs this to activate miniconda + defaults: + run: + shell: "bash -l {0}" + + steps: + - uses: actions/checkout@v4 + + - name: Get conda + uses: conda-incubator/setup-miniconda@v3.0.4 + with: + python-version: ${{ matrix.python-version }} + channels: conda-forge + + - name: Prepare + run: conda install conda-build conda-verify pytest anaconda-client + + - name: Enable upload + run: conda config --set anaconda_upload yes + + - name: Build + env: + CONDA_TOKEN: ${{ secrets.CONDA_TOKEN }} + run: conda build conda-recipes/main-library --user slsdetectorgroup --token ${CONDA_TOKEN} --output-folder build_output + + - name: Upload all Conda to github as artifacts + uses: actions/upload-artifact@v4 + with: + name: conda-packages + path: build_output/** # Uploads all packages \ No newline at end of file diff --git a/.github/workflows/conda_deploy_slsdet.yaml b/.github/workflows/conda_deploy_slsdet.yaml new file mode 100644 index 000000000..d25bffa74 --- /dev/null +++ b/.github/workflows/conda_deploy_slsdet.yaml @@ -0,0 +1,47 @@ +name: deploy slsdet + +on: + release: + types: + - published + +jobs: + build: + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, ] # macos-12, windows-2019] + python-version: ["3.12",] + + runs-on: ${{ matrix.platform }} + + # The setup-miniconda action needs this to activate miniconda + defaults: + run: + shell: "bash -l {0}" + + steps: + - uses: actions/checkout@v4 + + - name: Get conda + uses: conda-incubator/setup-miniconda@v3.0.4 + with: + python-version: ${{ matrix.python-version }} + channels: conda-forge + + - name: Prepare + run: conda install conda-build conda-verify pytest anaconda-client + + - name: Enable upload + run: conda config --set anaconda_upload yes + + - name: Build + env: + CONDA_TOKEN: ${{ secrets.CONDA_TOKEN }} + run: conda build conda-recipes/python-client --user slsdetectorgroup --token ${CONDA_TOKEN} --output-folder build_output + + - name: Upload all Conda packages + uses: actions/upload-artifact@v4 + with: + name: conda-packages + path: build_output/** # Uploads all packages \ No newline at end of file diff --git a/.github/workflows/conda_library.yaml b/.github/workflows/conda_library.yaml new file mode 100644 index 000000000..23f94d467 --- /dev/null +++ b/.github/workflows/conda_library.yaml @@ -0,0 +1,42 @@ +name: Build slsdetlib + +on: [pull_request] + +jobs: + build: + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, ] # macos-12, windows-2019] + python-version: ["3.12",] + + runs-on: ${{ matrix.platform }} + + # The setup-miniconda action needs this to activate miniconda + defaults: + run: + shell: "bash -l {0}" + + steps: + - uses: actions/checkout@v4 + + - name: Get conda + uses: conda-incubator/setup-miniconda@v3.0.4 + with: + python-version: ${{ matrix.python-version }} + channels: conda-forge + + - name: Prepare + run: conda install conda-build conda-verify pytest anaconda-client + + - name: Disable upload + run: conda config --set anaconda_upload no + + - name: Build + run: conda build conda-recipes/main-library --output-folder build_output + + - name: Upload all Conda packages + uses: actions/upload-artifact@v4 + with: + name: conda-packages + path: build_output/** # Uploads all packages \ No newline at end of file diff --git a/.github/workflows/conda_python.yaml b/.github/workflows/conda_python.yaml new file mode 100644 index 000000000..4b12cb3ff --- /dev/null +++ b/.github/workflows/conda_python.yaml @@ -0,0 +1,42 @@ +name: slsdet + +on: [pull_request] + +jobs: + build: + strategy: + fail-fast: false + matrix: + platform: [ubuntu-latest, ] # macos-12, windows-2019] + python-version: ["3.12",] + + runs-on: ${{ matrix.platform }} + + # The setup-miniconda action needs this to activate miniconda + defaults: + run: + shell: "bash -l {0}" + + steps: + - uses: actions/checkout@v4 + + - name: Get conda + uses: conda-incubator/setup-miniconda@v3.0.4 + with: + python-version: ${{ matrix.python-version }} + channels: conda-forge + + - name: Prepare + run: conda install conda-build conda-verify pytest anaconda-client + + - name: Disable upload + run: conda config --set anaconda_upload no + + - name: Build + run: conda build conda-recipes/python-client --output-folder build_output + + - name: Upload all Conda packages + uses: actions/upload-artifact@v4 + with: + name: conda-packages + path: build_output/** # Uploads all packages \ No newline at end of file diff --git a/CMakeFiles/cmake.check_cache b/CMakeFiles/cmake.check_cache deleted file mode 100644 index 3dccd7317..000000000 --- a/CMakeFiles/cmake.check_cache +++ /dev/null @@ -1 +0,0 @@ -# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/CMakeLists.txt b/CMakeLists.txt index ecef8ad77..3cf9df520 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,16 @@ # SPDX-License-Identifier: LGPL-3.0-or-other # Copyright (C) 2021 Contributors to the SLS Detector Package -cmake_minimum_required(VERSION 3.14) +cmake_minimum_required(VERSION 3.15) project(slsDetectorPackage) -set(PROJECT_VERSION 9.0.0) + +# Read VERSION file into project version +set(VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/VERSION") +file(READ "${VERSION_FILE}" VERSION_CONTENT) +string(STRIP "${VERSION_CONTENT}" PROJECT_VERSION_STRING) +set(PROJECT_VERSION ${PROJECT_VERSION_STRING}) + +# Pass it to the compiler +add_compile_definitions(SLS_DET_VERSION="${PROJECT_VERSION}") set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") @@ -13,50 +21,141 @@ if (${CMAKE_VERSION} VERSION_GREATER "3.24") endif() include(cmake/project_version.cmake) include(cmake/SlsAddFlag.cmake) +include(cmake/helpers.cmake) +option(SLS_USE_SYSTEM_ZMQ "Use system installed libzmq" OFF) # Using FetchContent to get libzmq include(FetchContent) option(SLS_FETCH_ZMQ_FROM_GITHUB "Fetch zmq from github" OFF) option(SLS_FETCH_PYBIND11_FROM_GITHUB "Fetch pybind11 from github" OFF) -if(SLS_FETCH_ZMQ_FROM_GITHUB) - # Opt in to pull down a zmq version from github instead of - # using the bundled verison - FetchContent_Declare( - libzmq - GIT_REPOSITORY https://github.com/zeromq/libzmq.git - GIT_TAG v4.3.4 - ) + + +# Allow FetchContent_Populate to be called with a single argument +# otherwise deprecated warning is issued +# Note: From cmake 3.28 we can pass EXCLUDE_FROM_ALL to FetchContent_Declare +# and avoid direct use of Populate +if (${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.30") + cmake_policy(SET CMP0169 OLD) +endif() + +# Patch libzmq to set minimum cmake version to 3.15 to avoid warnings +# with newer cmake versions +# Patch is applied in the FetchContent_Declare +set(SLS_LIBZMQ_VERSION "4.3.4") + +find_program(PATCH_EXECUTABLE patch) +if(NOT PATCH_EXECUTABLE) + message(FATAL_ERROR "The 'patch' tool is required for patching lib zeromq. Please install it.") +endif() + +if(SLS_USE_SYSTEM_ZMQ) + # find_package(ZeroMQ REQUIRED) + # 1) Try a CMake package config if available (vcpkg, Homebrew, source builds) + # Many installs export either ZeroMQ::libzmq or libzmq. + find_package(ZeroMQ QUIET CONFIG) + + set(ZEROMQ_TARGET "") + + if (TARGET ZeroMQ::libzmq) + set(ZEROMQ_TARGET ZeroMQ::libzmq) + message(STATUS "Found target: ${ZEROMQ_TARGET} version: ${ZeroMQ_VERSION}") + elseif (TARGET libzmq) + set(ZEROMQ_TARGET libzmq) + message(STATUS "Found target: ${ZEROMQ_TARGET} version: ${ZeroMQ_VERSION}") + elseif (TARGET ZeroMQ::ZeroMQ) # rare older naming + set(ZEROMQ_TARGET ZeroMQ::ZeroMQ) + message(STATUS "Found target: ${ZEROMQ_TARGET} version: ${ZeroMQ_VERSION}") + endif() + + # 2) Fallback: use pkg-config hints + manual find_* to create an imported target + if (NOT ZEROMQ_TARGET) + find_package(PkgConfig QUIET) + if (PkgConfig_FOUND) + pkg_check_modules(PC_ZeroMQ QUIET libzmq) + endif() + + find_path(ZEROMQ_INCLUDE_DIR + NAMES zmq.h + HINTS ${PC_ZeroMQ_INCLUDE_DIRS} + ) + + find_library(ZEROMQ_LIBRARY + NAMES zmq libzmq + HINTS ${PC_ZeroMQ_LIBRARY_DIRS} + ) + + if (ZEROMQ_INCLUDE_DIR AND ZEROMQ_LIBRARY) + add_library(libzmq UNKNOWN IMPORTED) + set_target_properties(libzmq PROPERTIES + IMPORTED_LOCATION "${ZEROMQ_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${ZEROMQ_INCLUDE_DIR}" + ) + set(ZEROMQ_TARGET libzmq) + endif() + message(STATUS "ZeroMQ version (pkg-config): ${PC_ZeroMQ_VERSION}") + + endif() + + # 3) Error out if still not found, with a helpful message + if (NOT ZEROMQ_TARGET) + message(FATAL_ERROR "ZeroMQ (libzmq) not found. Please install ZeroMQ development files.") + endif() + +# Use it +# target_link_libraries(your_target PRIVATE ${ZEROMQ_TARGET}) + + message(STATUS "Using system installed libzmq: ${ZeroMQ_LIBRARIES}") + message(STATUS "ZeroMQ target: ${ZEROMQ_TARGET}") + message(STATUS "ZeroMQ include dirs: ${ZeroMQ_INCLUDE_DIRS}") else() - # Standard behaviour use libzmq included in this repo (libs/libzmq) - FetchContent_Declare( - libzmq - URL ${CMAKE_CURRENT_SOURCE_DIR}/libs/libzmq/libzmq-4.3.4.tar.gz - URL_HASH MD5=cc20b769ac10afa352e5ed2769bb23b3 - ) + if(SLS_FETCH_ZMQ_FROM_GITHUB) + # Opt in to pull down a zmq version from github instead of + # using the bundled version + FetchContent_Declare( + libzmq + GIT_REPOSITORY https://github.com/zeromq/libzmq.git + GIT_TAG v${SLS_LIBZMQ_VERSION} + PATCH_COMMAND ${CMAKE_COMMAND} -E chdir patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/libs/libzmq/libzmq_cmake_version.patch + UPDATE_DISCONNECTED 1 + ) + else() + # Standard behaviour use libzmq included in this repo (libs/libzmq) + FetchContent_Declare( + libzmq + URL ${CMAKE_CURRENT_SOURCE_DIR}/libs/libzmq/libzmq-${SLS_LIBZMQ_VERSION}.tar.gz + URL_HASH MD5=cc20b769ac10afa352e5ed2769bb23b3 + PATCH_COMMAND ${CMAKE_COMMAND} -E chdir patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/libs/libzmq/libzmq_cmake_version.patch + UPDATE_DISCONNECTED 1 + ) + endif() + + + # Disable unwanted options from libzmq + set(BUILD_TESTS OFF CACHE BOOL "Switch off libzmq test build") + set(BUILD_SHARED OFF CACHE BOOL "Switch off libzmq shared libs") + set(WITH_PERF_TOOL OFF CACHE BOOL "") + set(ENABLE_CPACK OFF CACHE BOOL "") + set(ENABLE_CLANG OFF CACHE BOOL "") + set(ENABLE_CURVE OFF CACHE BOOL "") + set(ENABLE_DRAFTS OFF CACHE BOOL "") + set(ENABLE_PRECOMPILED OFF CACHE BOOL "") + set(WITH_DOC OFF CACHE BOOL "") + set(WITH_DOCS OFF CACHE BOOL "") + + + # Using GetProperties and Populate to be able to exclude zmq + # from install (not possible with FetchContent_MakeAvailable(libzmq)) + FetchContent_GetProperties(libzmq) + if(NOT libzmq_POPULATED) + FetchContent_Populate(libzmq) + add_subdirectory(${libzmq_SOURCE_DIR} ${libzmq_BINARY_DIR} EXCLUDE_FROM_ALL) + endif() + endif() -# Disable unwanted options from libzmq -set(BUILD_TESTS OFF CACHE BOOL "Switch off libzmq test build") -set(BUILD_SHARED OFF CACHE BOOL "Switch off libzmq shared libs") -set(WITH_PERF_TOOL OFF CACHE BOOL "") -set(ENABLE_CPACK OFF CACHE BOOL "") -set(ENABLE_CLANG OFF CACHE BOOL "") -set(ENABLE_CURVE OFF CACHE BOOL "") -set(ENABLE_DRAFTS OFF CACHE BOOL "") - -# Using GetProperties and Populate to be able to exclude zmq -# from install (not possible with FetchContent_MakeAvailable(libzmq)) -FetchContent_GetProperties(libzmq) -if(NOT libzmq_POPULATED) - FetchContent_Populate(libzmq) - add_subdirectory(${libzmq_SOURCE_DIR} ${libzmq_BINARY_DIR} EXCLUDE_FROM_ALL) -endif() - - - include(GNUInstallDirs) # If conda build, always set lib dir to 'lib' @@ -84,7 +183,7 @@ endif() option(SLS_USE_HDF5 "HDF5 File format" OFF) -option(SLS_BUILD_SHARED_LIBRARIES "Build shared libaries" ON) +option(SLS_BUILD_SHARED_LIBRARIES "Build shared libaries" OFF) option(SLS_USE_TEXTCLIENT "Text Client" ON) option(SLS_USE_DETECTOR "Detector libs" ON) option(SLS_USE_RECEIVER "Receiver" ON) @@ -156,11 +255,9 @@ find_package(ClangFormat) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - message(STATUS "No build type selected, default to Release") - set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type (default Release)" FORCE) -endif() - +default_build_type("Release") +set_std_fs_lib() +message(STATUS "Extra linking to fs lib:${STD_FS_LIB}") #Enable LTO if available include(CheckIPOSupported) @@ -183,7 +280,7 @@ endif() # to control options for the libraries if(NOT TARGET slsProjectOptions) add_library(slsProjectOptions INTERFACE) - target_compile_features(slsProjectOptions INTERFACE cxx_std_11) + target_compile_features(slsProjectOptions INTERFACE cxx_std_17) endif() if (NOT TARGET slsProjectWarnings) @@ -241,8 +338,8 @@ endif() if(SLS_USE_SANITIZER) target_compile_options(slsProjectOptions INTERFACE -fsanitize=address,undefined -fno-omit-frame-pointer) target_link_libraries(slsProjectOptions INTERFACE -fsanitize=address,undefined) - # target_compile_options(slsProjectOptions INTERFACE -fsanitize=thread) - # target_link_libraries(slsProjectOptions INTERFACE -fsanitize=thread) + #target_compile_options(slsProjectOptions INTERFACE -fsanitize=thread -fno-omit-frame-pointer) + #target_link_libraries(slsProjectOptions INTERFACE -fsanitize=thread) endif() @@ -296,19 +393,21 @@ if (SLS_USE_INTEGRATION_TESTS) endif (SLS_USE_INTEGRATION_TESTS) if (SLS_USE_PYTHON) - find_package (Python 3.6 COMPONENTS Interpreter Development) + find_package (Python 3.8 COMPONENTS Interpreter Development.Module REQUIRED) + set(PYBIND11_FINDPYTHON ON) # Needed for RH8 if(SLS_FETCH_PYBIND11_FROM_GITHUB) FetchContent_Declare( pybind11 GIT_REPOSITORY https://github.com/pybind/pybind11 - GIT_TAG v2.11.0 + GIT_TAG v2.13.6 ) else() + # https://github.com/pybind/pybind11/releases FetchContent_Declare( pybind11 - URL ${CMAKE_SOURCE_DIR}/libs/pybind11/v2.11.0.tar.gz - URL_HASH MD5=90c4946e87c64d8d8fc0ae4edf35d780 + URL ${CMAKE_CURRENT_SOURCE_DIR}/libs/pybind11/v2.13.6.tar.gz + URL_HASH MD5=a04dead9c83edae6d84e2e343da7feeb ) endif() FetchContent_MakeAvailable(pybind11) @@ -320,9 +419,15 @@ if (SLS_USE_CTBGUI) add_subdirectory(pyctbgui) endif(SLS_USE_CTBGUI) -configure_file( .clang-tidy - ${CMAKE_BINARY_DIR}/.clang-tidy -) +# Workaround for file note being copied to build directory +# when issuing a python -m build +# TODO! Proper fix +if(EXISTS ".clang-tidy") + configure_file(.clang-tidy + ${CMAKE_BINARY_DIR}/.clang-tidy + ) +endif() + if (SLS_BUILD_EXAMPLES) add_subdirectory(sample) @@ -346,4 +451,4 @@ if(SLS_MASTER_PROJECT) set(CMAKE_INSTALL_DIR "share/cmake/${PROJECT_NAME}") set(PROJECT_LIBRARIES slsSupportShared slsDetectorShared slsReceiverShared) include(cmake/package_config.cmake) -endif() +endif() \ No newline at end of file diff --git a/README.md b/README.md index abee0e773..1ed43c4f3 100755 --- a/README.md +++ b/README.md @@ -1,20 +1,33 @@ ## Dependencies -Before building from source make sure that you have the [software wiki](https://slsdetectorgroup.github.io/devdoc/dependencies.html) installed. If installing using conda, conda will manage the dependencies. Avoid also installing packages with pip. +Before building from source make sure that you have the [dependencies](https://slsdetectorgroup.github.io/devdoc/dependencies.html) installed. If installing using conda, conda will manage the dependencies. Avoid also installing dependency packages with pip. ## Documentaion -Detailed documentation can be found in the [software wiki](https://slsdetectorgroup.github.io/devdoc/index.html) and on the [official site](https://www.psi.ch/en/detectors/software). +Detailed documentation including installation can be found in the [software wiki](https://slsdetectorgroup.github.io/devdoc/index.html). + +List of releases can be found on the [official site](https://www.psi.ch/en/lxn/software-releases). + +Firmware compatiblity can be found in [firmware page](https://github.com/slsdetectorgroup/slsDetectorFirmware) ## Installation -### 1. Install binaries using conda +The slsDetectorPackage provides core detector software implemented in C++, along with Python bindings packaged as the slsdet Python extension module. Choose the option that best fits your environment and use case. + +1. **Install pre-built binaries using conda (Recommended)**: Install pre-built binaries for the C++ client, receiver, GUI and the Python API (`slsdet`), simplifying setup across platforms. + +2. **Pip**: Install only the Python extension module, either by downloading the pre-built library from PyPI or by building the extension locally from source. Available only from v9.2.0 onwards. + +3. **Build from source**: Compile the entire package yourself, including both the C++ core and the Python bindings, for maximum control and customization. However, make sure that you have the dependencies installed. If installing using conda, conda will manage the dependencies. Avoid installing packages with pip and conda simultaneously. + +### 1. Install pre-built binaries using conda (Recommended) Conda is not only useful to manage python environments but can also be used as a user space package manager. Dates in the tag (for eg. 2020.07.23.dev0) are from the developer branch. Please use released tags for stability. We have three different packages available: -* **slsdetlib** shared libraries and command line utilities +* **slsdetlib** Shared libraries and command line utilities * **slsdetgui** GUI * **slsdet** Python bindings +* **moenchzmq** Moench ``` #Add channels for dependencies and our library @@ -40,35 +53,38 @@ conda search slsdetlib conda search slsdet # gui conda search slsdetgui +# moench +conda search moenchzmq ``` -### 2. Build from source +## 2. Pip +The Python extension module `slsdet` can be installed using pip. This is available from v9.2.0 onwards. -##### 2.1 Download Source Code from github +``` +#Install the Python extension module from PyPI +pip install slsdet + +# or install the python extension locally from source +git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch 9.2.0 +cd slsDetectorPackage +pip install . +``` + +## 3. Build from source + +### 3.1. Download Source Code from github ``` git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch 7.0.0 ``` -**Pybind for Python**
-* **v7.0.0+**: -pybind11 packaged into 'libs/pybind'. No longer a submodule. No need for "recursive" or "submodule update". - -* **Older versions**: - pybind11 is a submodule. Must be cloned using "recursive" and updated when switching between versions using the following commands. - -``` -# clone using recursive to get pybind11 submodule -git clone --recursive https://github.com/slsdetectorgroup/slsDetectorPackage.git - -# update submodule when switching between releases -cd slsDetectorPackage -git submodule update --init -``` - -##### 2.2 Build from source +> **Note:** For v6.x.x of slsDetectorPackage and older, refer [pybind11 notes on cloning](#Pybind-and-Zeromq). -###### Build using CMake +### 3.2. Build from source + +One can either build using cmake or use the in-built cmk.sh script. + +### 3.2.1. Build using CMake ``` # outside slsDetecorPackage folder @@ -94,26 +110,28 @@ Instead of the cmake command, one can use ccmake to get a list of options to con ccmake .. # choose the options -# first press [c] - configure +# first press [c] - configure (unil you see [g]) # then press [g] - generate ``` |Example cmake options|Comment| |---|---| | -DSLS_USE_PYTHON=ON | Python | -| -DPython_FIND_VIRTUALENV=ONLY | Python from only the conda environment | -| -DZeroMQ_HINT=/usr/lib64 | Use system zmq instead | +| -DPython_FIND_VIRTUALENV=ONLY | Python from only the conda env | | -DSLS_USE_GUI=ON | GUI | +| -DSLS_USE_HDF5=ON | HDF5 | +| -DSLS_USE_SIMULATOR=ON | Simulator | +> **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for cmake option to hint library location](#Pybind-and-Zeromq). -###### Build using in-built cmk.sh script +### 3.2.2. Build using in-built cmk.sh script ``` The binaries are generated in slsDetectorPackage/build/bin directory. -Usage: ./cmk.sh [-b] [-c] [-d ] [e] [g] [-h] [i] [-j ] -[-k ] [-l ] [m] [n] [-p] [-q ] -[r] [s] [t] [u] [z] +Usage: $0 [-b] [-c] [-d ] [-e] [-g] [-h] [-i] +[-j ] [-k ] [-l ] +[-m] [-n] [-p] [-r] [-s] [-t] [-u] [-z] -[no option]: only make -b: Builds/Rebuilds CMake files normal mode -c: Clean @@ -128,14 +146,13 @@ Usage: ./cmk.sh [-b] [-c] [-d ] [e] [g] [-h] [i] [-j ] [e] [g] [-h] [i] [-j **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for cmk script option to hint library location](#Pybind-and-Zeromq). -If your linux distribution doesn't come with a C++11 compiler (gcc>4.8) then +### 3.3. Build on old distributions using conda + +If your linux distribution doesn't come with a C++17 compiler (gcc>8) then it's possible to install a newer gcc using conda and build the slsDetectorPackage using this compiler @@ -166,7 +186,10 @@ cmake ../slsDetectorPackage -DCMAKE_PREFIX_PATH=$CONDA_PREFIX make -j12 ``` -###### Build slsDetectorGui (Qt5) +> **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for dependencies for conda](#Pybind-and-Zeromq). + + +### 3.4. Build slsDetectorGui (Qt5) 1. Using pre-built binary on conda ``` @@ -180,7 +203,14 @@ yum install qt5-qtbase-devel.x86_64 yum install qt5-qtsvg-devel.x86_64 ``` -3. Using conda +3. Using system installation on RHEL8 +``` +yum install qt5-qtbase-devel.x86_64 +yum install qt5-qtsvg-devel.x86_64 +yum install expat-devel.x86_64 +``` + +4. Using conda ``` #Add channels for dependencies and our library conda config --add channels conda-forge @@ -208,13 +238,15 @@ cd slsDetectorPackage ./cmk.sh -cbgj9 ``` -###### Build documentation from package +> **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for dependencies for conda](#Pybind-and-Zeromq). + +### 3.5. Build documentation from package The documentation for the slsDetectorPackage is build using a combination of Doxygen, Sphinx and Breathe. The easiest way to install the dependencies is to use conda ``` -conda create -n myenv python sphinx_rtd_theme breathe +conda create -n myenv python=3.12 sphinx sphinx_rtd_theme breathe doxygen numpy ``` ``` @@ -228,6 +260,48 @@ make rst # rst only, saves time in case the API did not change ``` + +## 4. Pybind and Zeromq + +### Pybind11 for Python +**v8.0.0+**: +pybind11 is built +* by default from tar file in repo (libs/pybind/v2.1x.0.tar.gz) +* or use advanced option SLS_FETCH_PYBIND11_FROM_GITHUB [link]. + * v9.0.0+: pybind11 (v2.13.6) + * v8.x.x : pybind11 (v2.11.0) + +**v7.x.x**: +pybind11 packaged into ‘libs/pybind’. No longer a submodule. No need for “recursive” or “submodule update”. + +**Older versions**: +pybind11 is a submodule. Must be cloned using “recursive” and updated when switching between versions using the following commands. + +``` +# Note: Only for v6.x.x versions and older + +# clone using recursive to get pybind11 submodule +git clone --recursive https://github.com/slsdetectorgroup/slsDetectorPackage.git + +# update submodule when switching between releases +cd slsDetectorPackage +git submodule update --init +``` + +### Zeromq +**v8.0.0+**: +zeromq (v4.3.4) is built +* by default from tar file in repo (libs/libzmq/libzmq-4.3.4.tar.gz) +* or use advanced option SLS_FETCH_ZMQ_FROM_GITHUB [link]. + +**v7.x.x and older**: +zeromq-devel must be installed and one can hint its location using +* cmake option:’-DZeroMQ_HINT=/usr/lib64’ or +* option ‘-q’ in cmk.sh script: : ./cmk.sh -cbj5 -q /usr/lib64 +* ‘zeromq’ dependency added when installing using conda + + ## Support dhanya.thattil@psi.ch erik.frojdh@psi.ch + alice.mazzoleni@psi.ch \ No newline at end of file diff --git a/RELEASE.txt b/RELEASE.txt index 92d8fb1a9..b56b0dacf 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -23,24 +23,27 @@ This document describes the differences between vx.x.x and vx.0.2 - 1 New, Changed or Resolved Features ===================================== +Building shared libraries is disabled by default. If you need to link +against any of the libSls*.so libraries, you can enable this by passing + -DSLS_BUILD_SHARED_LIBRARIES=ON to CMake. + +Added SLS_USE_SYSTEM_ZMQ option (default OFF) to use the libzmq of the host +instead of the one included in our repo. - - +Experimental support for building the detector client (including python bindings) on macOS 2 On-board Detector Server Compatibility ========================================== - Eiger 9.0.0 - Jungfrau 9.0.0 - Mythen3 9.0.0 - Gotthard2 9.0.0 - Gotthard 9.0.0 - Moench 9.0.0 + Eiger 10.0.0 + Jungfrau 10.0.0 + Mythen3 10.0.0 + Gotthard2 10.0.0 + Moench 10.0.0 On-board Detector Server Upgrade @@ -63,20 +66,16 @@ This document describes the differences between vx.x.x and vx.0.2 3 Firmware Requirements ======================== - Eiger 02.10.2023 (v32) (updated in 7.0.3) - Jungfrau 20.09.2023 (v1.5, HW v1.0) (updated in 8.0.0) - 21.09.2023 (v2.5, HW v2.0) (updated in 8.0.0) + Jungfrau 09.02.2025 (v1.6, HW v1.0) (updated in 9.1.0) + 08.02.2025 (v2.6, HW v2.0) (updated in 9.1.0) - Mythen3 11.10.2024 (v1.5) (updated in 9.0.0) + Mythen3 13.11.2024 (v2.0) (updated in 9.0.0) Gotthard2 03.10.2024 (v1.0) (updated in 9.0.0) - Moench 26.10.2023 (v2.0) (updated in 9.0.0) - - Gotthard 08.02.2018 (50um and 25um Master) - 09.02.2018 (25 um Slave) + Moench 26.10.2023 (v2.0) (updated in 8.0.2) Detector Upgrade @@ -90,8 +89,6 @@ This document describes the differences between vx.x.x and vx.0.2 Gotthard2 via command <.rbf> Moench via command <.pof> - Gotthard cannot be upgraded remotely - Except Eiger, upgrade Using command 'programfpga' or @@ -154,7 +151,7 @@ This document describes the differences between vx.x.x and vx.0.2 Quick Start Guide: https://slsdetectorgroup.github.io/devdoc/quick_start_guide.html - + Firmware Upgrade: https://slsdetectorgroup.github.io/devdoc/firmware.html @@ -167,6 +164,15 @@ This document describes the differences between vx.x.x and vx.0.2 Consuming slsDetectorPackage: https://slsdetectorgroup.github.io/devdoc/consuming.html + Software Architecture + https://slsdetectorgroup.github.io/devdoc/softwarearchitecture.html + + Set up commands in config file + https://slsdetectorgroup.github.io/devdoc/configcommands.html + + Image Size and Output Characteristics + https://slsdetectorgroup.github.io/devdoc/dataformat.html + API Examples: https://github.com/slsdetectorgroup/api-examples @@ -193,6 +199,14 @@ This document describes the differences between vx.x.x and vx.0.2 https://slsdetectorgroup.github.io/devdoc/udpheader.html https://slsdetectorgroup.github.io/devdoc/udpdetspec.html + Output Data: + https://slsdetectorgroup.github.io/devdoc/dataformat.html + https://slsdetectorgroup.github.io/devdoc/fileformat.html + https://slsdetectorgroup.github.io/devdoc/slsreceiverheaderformat.html + https://slsdetectorgroup.github.io/devdoc/masterfileattributes.html + https://slsdetectorgroup.github.io/devdoc/binaryfileformat.html + https://slsdetectorgroup.github.io/devdoc/hdf5fileformat.html + slsReceiver Zmq Format: https://slsdetectorgroup.github.io/devdoc/slsreceiver.html#zmq-json-header-format @@ -211,4 +225,5 @@ This document describes the differences between vx.x.x and vx.0.2 ------- dhanya.thattil@psi.ch - erik.frojdh@psi.ch \ No newline at end of file + erik.frojdh@psi.ch + alice.mazzoleni@psi.ch diff --git a/VERSION b/VERSION new file mode 100644 index 000000000..bd52db81d --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.0 \ No newline at end of file diff --git a/cmake/FindClangFormat.cmake b/cmake/FindClangFormat.cmake index 8e697896f..7b7fdd27f 100644 --- a/cmake/FindClangFormat.cmake +++ b/cmake/FindClangFormat.cmake @@ -25,7 +25,9 @@ mark_as_advanced( ClangFormat_BIN) if(ClangFormat_FOUND) - exec_program(${ClangFormat_BIN} ${CMAKE_CURRENT_SOURCE_DIR} ARGS --version OUTPUT_VARIABLE CLANG_VERSION_TEXT) + execute_process(COMMAND ${ClangFormat_BIN} --version + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE CLANG_VERSION_TEXT) string(REGEX MATCH "([0-9]+)\\.[0-9]+\\.[0-9]+" CLANG_VERSION ${CLANG_VERSION_TEXT}) if((${CLANG_VERSION} GREATER "9") OR (${CLANG_VERSION} EQUAL "9")) # A CMake script to find all source files and setup clang-format targets for them diff --git a/cmake/helpers.cmake b/cmake/helpers.cmake new file mode 100644 index 000000000..2ddb9d057 --- /dev/null +++ b/cmake/helpers.cmake @@ -0,0 +1,46 @@ +function(default_build_type val) +if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + message(STATUS "No build type selected, default to Release") + set(CMAKE_BUILD_TYPE ${val} CACHE STRING "Build type (default ${val})" FORCE) +endif() +endfunction() + +function(set_std_fs_lib) +# from pybind11 +# Check if we need to add -lstdc++fs or -lc++fs or nothing +if(DEFINED CMAKE_CXX_STANDARD AND CMAKE_CXX_STANDARD LESS 17) + set(STD_FS_NO_LIB_NEEDED TRUE) +elseif(MSVC) + set(STD_FS_NO_LIB_NEEDED TRUE) +else() + file( + WRITE ${CMAKE_CURRENT_BINARY_DIR}/main.cpp + "#include \nint main(int argc, char ** argv) {\n std::filesystem::path p(argv[0]);\n return p.string().length();\n}" + ) + try_compile( + STD_FS_NO_LIB_NEEDED ${CMAKE_CURRENT_BINARY_DIR} + SOURCES ${CMAKE_CURRENT_BINARY_DIR}/main.cpp + COMPILE_DEFINITIONS -std=c++17) + try_compile( + STD_FS_NEEDS_STDCXXFS ${CMAKE_CURRENT_BINARY_DIR} + SOURCES ${CMAKE_CURRENT_BINARY_DIR}/main.cpp + COMPILE_DEFINITIONS -std=c++17 + LINK_LIBRARIES stdc++fs) + try_compile( + STD_FS_NEEDS_CXXFS ${CMAKE_CURRENT_BINARY_DIR} + SOURCES ${CMAKE_CURRENT_BINARY_DIR}/main.cpp + COMPILE_DEFINITIONS -std=c++17 + LINK_LIBRARIES c++fs) +endif() + +if(${STD_FS_NEEDS_STDCXXFS}) + set(STD_FS_LIB stdc++fs PARENT_SCOPE) +elseif(${STD_FS_NEEDS_CXXFS}) + set(STD_FS_LIB c++fs PARENT_SCOPE) +elseif(${STD_FS_NO_LIB_NEEDED}) + set(STD_FS_LIB "" PARENT_SCOPE) +else() + message(WARNING "Unknown C++17 compiler - not passing -lstdc++fs") + set(STD_FS_LIB "") +endif() +endfunction() \ No newline at end of file diff --git a/conda-recepie/build_pylib.sh b/conda-recepie/build_pylib.sh deleted file mode 100755 index f7cbdc496..000000000 --- a/conda-recepie/build_pylib.sh +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package - -echo "|<-------- starting python build" -cd python -${PYTHON} setup.py install diff --git a/conda-recepie/conda_build_config.yaml b/conda-recepie/conda_build_config.yaml deleted file mode 100644 index b1396f187..000000000 --- a/conda-recepie/conda_build_config.yaml +++ /dev/null @@ -1,7 +0,0 @@ -python: - - 3.8 - - 3.9 - - 3.10 - - 3.11 - - 3.12 - diff --git a/conda-recepie/copy_ctbgui.sh b/conda-recepie/copy_ctbgui.sh deleted file mode 100644 index b4f52efce..000000000 --- a/conda-recepie/copy_ctbgui.sh +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package -mkdir $PREFIX/lib -mkdir $PREFIX/bin -mkdir $PREFIX/include - - - -cp build/bin/ctbGui $PREFIX/bin/. -cp build/bin/libctbRootLib.so $PREFIX/lib/. - diff --git a/conda-recepie/meta.yaml b/conda-recepie/meta.yaml deleted file mode 100755 index da620c859..000000000 --- a/conda-recepie/meta.yaml +++ /dev/null @@ -1,126 +0,0 @@ - -package: - name: sls_detector_software - version: {{ environ.get('GIT_DESCRIBE_TAG', '') }} - -source: - - path: .. - -build: - number: 0 - binary_relocation: True - rpaths: - - lib/ - -requirements: - build: - - {{ compiler('c') }} - - {{compiler('cxx')}} - - cmake - - qt 5.* - - xorg-libx11 - - xorg-libice - - xorg-libxext - - xorg-libsm - - xorg-libxau - - xorg-libxrender - - xorg-libxfixes - - {{ cdt('mesa-libgl-devel') }} # [linux] - - {{ cdt('mesa-libegl-devel') }} # [linux] - - {{ cdt('mesa-dri-drivers') }} # [linux] - - {{ cdt('libselinux') }} # [linux] - - {{ cdt('libxdamage') }} # [linux] - - {{ cdt('libxxf86vm') }} # [linux] - - expat - - host: - - libstdcxx-ng - - libgcc-ng - - xorg-libx11 - - xorg-libice - - xorg-libxext - - xorg-libsm - - xorg-libxau - - xorg-libxrender - - xorg-libxfixes - - expat - - run: - - libstdcxx-ng - - libgcc-ng - - -outputs: - - name: slsdetlib - script: copy_lib.sh - - requirements: - build: - - {{ compiler('c') }} - - {{compiler('cxx')}} - - libstdcxx-ng - - libgcc-ng - - - run: - - libstdcxx-ng - - libgcc-ng - - - name: slsdet - - script: build_pylib.sh - - requirements: - build: - - python - - {{ compiler('c') }} - - {{compiler('cxx')}} - - {{ pin_subpackage('slsdetlib', exact=True) }} - - setuptools - - pybind11=2.11 - - host: - - python - - {{ pin_subpackage('slsdetlib', exact=True) }} - - pybind11=2.11 - - - run: - - libstdcxx-ng - - libgcc-ng - - python - - numpy - - {{ pin_subpackage('slsdetlib', exact=True) }} - - - test: - imports: - - slsdet - - - name: slsdetgui - script: copy_gui.sh - requirements: - - build: - - {{ compiler('c') }} - - {{compiler('cxx')}} - - {{ pin_subpackage('slsdetlib', exact=True) }} - - run: - - {{ pin_subpackage('slsdetlib', exact=True) }} - - qt 5.* - - expat - - - name: moenchzmq - script: copy_moench.sh - requirements: - - build: - - {{ compiler('c') }} - - {{compiler('cxx')}} - - {{ pin_subpackage('slsdetlib', exact=True) }} - - - run: - - {{ pin_subpackage('slsdetlib', exact=True) }} - - expat diff --git a/conda-recepie/run_test.sh b/conda-recepie/run_test.sh deleted file mode 100755 index 24068d625..000000000 --- a/conda-recepie/run_test.sh +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package -ctest -j2 \ No newline at end of file diff --git a/conda-recepie/build.sh b/conda-recipes/main-library/build.sh similarity index 80% rename from conda-recepie/build.sh rename to conda-recipes/main-library/build.sh index b8f77843e..229067c3b 100755 --- a/conda-recepie/build.sh +++ b/conda-recipes/main-library/build.sh @@ -1,10 +1,14 @@ # SPDX-License-Identifier: LGPL-3.0-or-other # Copyright (C) 2021 Contributors to the SLS Detector Package -mkdir build -mkdir install +if [ ! -d "build" ]; then + mkdir build +fi +if [ ! -d "install" ]; then + mkdir install +fi cd build -cmake .. \ +cmake .. -G Ninja \ -DCMAKE_PREFIX_PATH=$CONDA_PREFIX \ -DCMAKE_INSTALL_PREFIX=install \ -DSLS_USE_TEXTCLIENT=ON \ @@ -14,7 +18,7 @@ cmake .. \ -DSLS_USE_TESTS=ON \ -DSLS_USE_PYTHON=OFF \ -DCMAKE_BUILD_TYPE=Release \ - -DSLS_USE_HDF5=OFF\ + -DSLS_USE_HDF5=OFF \ NCORES=$(getconf _NPROCESSORS_ONLN) echo "Building using: ${NCORES} cores" diff --git a/conda-recipes/main-library/conda_build_config.yaml b/conda-recipes/main-library/conda_build_config.yaml new file mode 100644 index 000000000..149897ca1 --- /dev/null +++ b/conda-recipes/main-library/conda_build_config.yaml @@ -0,0 +1,13 @@ + +c_compiler: + - gcc # [linux] + +c_stdlib: + - sysroot # [linux] + +cxx_compiler: + - gxx # [linux] + + +c_stdlib_version: # [linux] + - 2.17 # [linux] \ No newline at end of file diff --git a/conda-recepie/copy_gui.sh b/conda-recipes/main-library/copy_gui.sh similarity index 100% rename from conda-recepie/copy_gui.sh rename to conda-recipes/main-library/copy_gui.sh diff --git a/conda-recepie/copy_lib.sh b/conda-recipes/main-library/copy_lib.sh similarity index 80% rename from conda-recepie/copy_lib.sh rename to conda-recipes/main-library/copy_lib.sh index da40a721a..88beafdfe 100755 --- a/conda-recepie/copy_lib.sh +++ b/conda-recipes/main-library/copy_lib.sh @@ -4,18 +4,20 @@ mkdir -p $PREFIX/lib mkdir -p $PREFIX/bin mkdir -p $PREFIX/include/sls -# mkdir $PREFIX/include/slsDetectorPackage #Shared and static libraries cp build/install/lib/* $PREFIX/lib/ #Binaries cp build/install/bin/sls_detector_acquire $PREFIX/bin/. +cp build/install/bin/sls_detector_acquire_zmq $PREFIX/bin/. cp build/install/bin/sls_detector_get $PREFIX/bin/. cp build/install/bin/sls_detector_put $PREFIX/bin/. cp build/install/bin/sls_detector_help $PREFIX/bin/. +cp build/install/bin/sls_detector $PREFIX/bin/. cp build/install/bin/slsReceiver $PREFIX/bin/. cp build/install/bin/slsMultiReceiver $PREFIX/bin/. +cp build/install/bin/slsFrameSynchronizer $PREFIX/bin/. cp build/install/include/sls/* $PREFIX/include/sls diff --git a/conda-recepie/copy_moench.sh b/conda-recipes/main-library/copy_moench.sh similarity index 100% rename from conda-recepie/copy_moench.sh rename to conda-recipes/main-library/copy_moench.sh diff --git a/conda-recipes/main-library/meta.yaml b/conda-recipes/main-library/meta.yaml new file mode 100755 index 000000000..d0841d6f4 --- /dev/null +++ b/conda-recipes/main-library/meta.yaml @@ -0,0 +1,79 @@ +source: + path: ../.. + +{% set version = load_file_regex(load_file = 'VERSION', regex_pattern = '(\d+(?:\.\d+)*(?:[\+\w\.]+))').group(1) %} +package: + name: sls_detector_software + version: {{ version }} + +build: + number: 0 + binary_relocation: True + rpaths: + - lib/ + +requirements: + build: + - {{ compiler('c') }} + - {{ stdlib("c") }} + - {{ compiler('cxx') }} + - git + - cmake + - ninja + - qt 5.* + + host: + - libstdcxx-ng + - libgcc-ng + - libgl-devel # [linux] + - libtiff + - zlib + - expat + + run: + - libstdcxx-ng + - libgcc-ng + + +outputs: + - name: slsdetlib + script: copy_lib.sh + + requirements: + build: + - {{ compiler('c') }} + - {{ stdlib("c") }} + - {{ compiler('cxx') }} + + run: + - libstdcxx-ng + - libgcc-ng + + + - name: slsdetgui + script: copy_gui.sh + requirements: + + build: + - {{ compiler('c') }} + - {{compiler('cxx')}} + - {{ pin_subpackage('slsdetlib', exact=True) }} + + + run: + - {{ pin_subpackage('slsdetlib', exact=True) }} + - qt 5.* + + + - name: moenchzmq + script: copy_moench.sh + requirements: + + build: + - {{ compiler('c') }} + - {{compiler('cxx')}} + - {{ pin_subpackage('slsdetlib', exact=True) }} + + + run: + - {{ pin_subpackage('slsdetlib', exact=True) }} diff --git a/conda-recipes/python-client/conda_build_config.yaml b/conda-recipes/python-client/conda_build_config.yaml new file mode 100644 index 000000000..0c957b631 --- /dev/null +++ b/conda-recipes/python-client/conda_build_config.yaml @@ -0,0 +1,16 @@ +python: + - 3.11 + - 3.12 + - 3.13 + +c_compiler: + - gcc # [linux] + +c_stdlib: + - sysroot # [linux] + +cxx_compiler: + - gxx # [linux] + +c_stdlib_version: # [linux] + - 2.17 # [linux] \ No newline at end of file diff --git a/conda-recipes/python-client/meta.yaml b/conda-recipes/python-client/meta.yaml new file mode 100644 index 000000000..c86f401ef --- /dev/null +++ b/conda-recipes/python-client/meta.yaml @@ -0,0 +1,45 @@ +source: + path: ../.. + +{% set version = load_file_regex(load_file = 'VERSION', regex_pattern = '(\d+(?:\.\d+)*(?:[\+\w\.]+))').group(1) %} +package: + name: slsdet + version: {{ version }} + +build: + number: 0 + script: + - unset CMAKE_GENERATOR && {{ PYTHON }} -m pip install . -vv # [not win] + +requirements: + build: + - python {{python}} + - {{ compiler('c') }} + - {{ stdlib("c") }} + - {{ compiler('cxx') }} + + host: + - cmake + - ninja + - python {{python}} + - pip + - scikit-build-core + - pybind11 >=2.13.0 + - fmt + - zeromq + - nlohmann_json + - catch2 + + run: + - python {{python}} + - numpy + + +test: + imports: + - slsdet + + +about: + summary: An example project built with pybind11 and scikit-build. + # license_file: LICENSE \ No newline at end of file diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 92c682694..41055eee9 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -40,7 +40,9 @@ set(SPHINX_SOURCE_FILES src/pydetector.rst src/pyenums.rst src/pyexamples.rst + src/pyPatternGenerator.rst src/servers.rst + src/multidet.rst src/receiver_api.rst src/result.rst src/type_traits.rst @@ -53,11 +55,21 @@ set(SPHINX_SOURCE_FILES src/serverdefaults.rst src/quick_start_guide.rst src/troubleshooting.rst + src/pattern.rst src/receivers.rst src/slsreceiver.rst src/udpheader.rst src/udpconfig.rst src/udpdetspec.rst + src/fileformat.rst + src/slsreceiverheaderformat.rst + src/masterfileattributes.rst + src/binaryfileformat.rst + src/hdf5fileformat.rst + src/zmqjsonheaderformat.rst + src/dataformat.rst + src/softwarearchitecture.rst + src/configcommands.rst ) foreach(filename ${SPHINX_SOURCE_FILES}) @@ -75,11 +87,16 @@ configure_file( "${SPHINX_BUILD}/gen_server_doc.py" @ONLY) - configure_file( +configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/static/extra.css" "${SPHINX_BUILD}/static/css/extra.css" @ONLY) + +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/src/images + DESTINATION ${SPHINX_BUILD}/src) + + add_custom_target(server_rst python gen_server_doc.py) add_custom_target(docs diff --git a/docs/conf.py.in b/docs/conf.py.in index c5db6e684..374fc84e0 100644 --- a/docs/conf.py.in +++ b/docs/conf.py.in @@ -20,7 +20,7 @@ print(sys.path) # -- Project information ----------------------------------------------------- -project = 'slsDetectorPackage' +project = 'slsDetectorPackage @PROJECT_VERSION@' copyright = '2020, PSD Detector Group' author = 'PSD Detector Group' version = '@PROJECT_VERSION@' @@ -63,4 +63,4 @@ html_static_path = ['static'] def setup(app): - app.add_stylesheet('css/extra.css') # may also be an URL \ No newline at end of file + app.add_css_file('css/extra.css') # may also be an URL diff --git a/docs/gen_server_doc.py.in b/docs/gen_server_doc.py.in index 8a16d8a3c..00c80df77 100644 --- a/docs/gen_server_doc.py.in +++ b/docs/gen_server_doc.py.in @@ -21,7 +21,7 @@ print('\n\n\n\n SERVER CSV') src = Path('@CMAKE_SOURCE_DIR@')/'slsDetectorServers/' detectors = ['Mythen3', 'Gotthard2', 'Eiger', - 'Jungfrau', 'Moench', 'Gotthard', 'Ctb'] + 'Jungfrau', 'Moench', 'Ctb'] for det in detectors: diff --git a/docs/images_src/detector_data_format.drawio b/docs/images_src/detector_data_format.drawio new file mode 100644 index 000000000..1287bec75 --- /dev/null +++ b/docs/images_src/detector_data_format.drawio @@ -0,0 +1,1309 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images_src/system_communication_architecture.drawio b/docs/images_src/system_communication_architecture.drawio new file mode 100644 index 000000000..0e22ece27 --- /dev/null +++ b/docs/images_src/system_communication_architecture.drawio @@ -0,0 +1,787 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/src/binaryfileformat.rst b/docs/src/binaryfileformat.rst new file mode 100644 index 000000000..90e0d4ebb --- /dev/null +++ b/docs/src/binaryfileformat.rst @@ -0,0 +1,387 @@ +.. _binary file format: + +Binary File Format +==================== + +This is the default file format that can be configured using command `fformat `_. + + .. code-block:: bash + + sls_detector_put fformat binary + + +Master File +-------------- + +* File Name: [fpath]/[fname]_master_[findex].json :ref:`Details here` + +* It is in json format and created for every acquisition. + +* It contains :ref:`attributes` relevant to the acquisition. This can vary with detector type shown in :ref:`master json file examples ` here. + +* It shows the :ref:`**SLS Receiver Header** ` format used in data files. + +* Enabled/disabled using command `fmaster `_. + + +Data File +---------- + +* File Name: [fpath]/[fname]_dx_fy_[findex].raw :ref:`Details here` + +* It store multiple frames sequentially, with total number of frames determined by `rx_framesperfile `_ parameter. + +* Each frame includes a :ref:`**sls_receiver_header** ` structure, followed by the actual frame data. + +* More details on :ref:`slsReceiverHeader` and the actual image data is described in the :ref:`Detector Image Size and Format ` section. + + +.. _json master file examples: + +JSON Master File Examples +--------------------------------------------------- + +Eiger +^^^^^ + +.. code-block:: text + + { + "Version": 7.2, + "Timestamp": "Wed Nov 13 15:46:30 2024", + "Detector Type": "Eiger", + "Timing Mode": "auto", + "Geometry": { + "x": 2, + "y": 1 + }, + "Image Size in bytes": 262144, + "Pixels": { + "x": 512, + "y": 256 + }, + "Max Frames Per File": 10000, + "Frame Discard Policy": "nodiscard", + "Frame Padding": 1, + "Scan Parameters": "[disabled]", + "Total Frames": 1, + "Receiver Roi": { + "xmin": 4294967295, + "xmax": 4294967295, + "ymin": 4294967295, + "ymax": 4294967295 + }, + "Dynamic Range": 16, + "Ten Giga": 0, + "Exptime": "1s", + "Period": "1s", + "Threshold Energy": -1, + "Sub Exptime": "2.62144ms", + "Sub Period": "2.62144ms", + "Quad": 0, + "Number of rows": 256, + "Rate Corrections": "[0]", + "Frames in File": 1, + "Frame Header Format": { + "Frame Number": "8 bytes", + "SubFrame Number/ExpLength": "4 bytes", + "Packet Number": "4 bytes", + "Bunch ID": "8 bytes", + "Timestamp": "8 bytes", + "Module Id": "2 bytes", + "Row": "2 bytes", + "Column": "2 bytes", + "Reserved": "2 bytes", + "Debug": "4 bytes", + "Round Robin Number": "2 bytes", + "Detector Type": "1 byte", + "Header Version": "1 byte", + "Packets Caught Mask": "64 bytes" + } + } + + + +Jungfrau +^^^^^^^^ + +.. code-block:: text + + { + "Version": 7.2, + "Timestamp": "Wed Nov 13 13:03:53 2024", + "Detector Type": "Jungfrau", + "Timing Mode": "auto", + "Geometry": { + "x": 1, + "y": 1 + }, + "Image Size in bytes": 1048576, + "Pixels": { + "x": 1024, + "y": 512 + }, + "Max Frames Per File": 10000, + "Frame Discard Policy": "nodiscard", + "Frame Padding": 1, + "Scan Parameters": "[disabled]", + "Total Frames": 1000, + "Receiver Roi": { + "xmin": 4294967295, + "xmax": 4294967295, + "ymin": 4294967295, + "ymax": 4294967295 + }, + "Exptime": "10us", + "Period": "2ms", + "Number of UDP Interfaces": 1, + "Number of rows": 512, + "Frames in File": 10, + "Frame Header Format": { + "Frame Number": "8 bytes", + "SubFrame Number/ExpLength": "4 bytes", + "Packet Number": "4 bytes", + "Bunch ID": "8 bytes", + "Timestamp": "8 bytes", + "Module Id": "2 bytes", + "Row": "2 bytes", + "Column": "2 bytes", + "Reserved": "2 bytes", + "Debug": "4 bytes", + "Round Robin Number": "2 bytes", + "Detector Type": "1 byte", + "Header Version": "1 byte", + "Packets Caught Mask": "64 bytes" + } + } + + +Gotthard2 +^^^^^^^^^^^^ + +.. code-block:: text + + { + "Version": 7.2, + "Timestamp": "Wed Nov 13 14:18:17 2024", + "Detector Type": "Gotthard2", + "Timing Mode": "auto", + "Geometry": { + "x": 1, + "y": 1 + }, + "Image Size in bytes": 2560, + "Pixels": { + "x": 1280, + "y": 1 + }, + "Max Frames Per File": 20000, + "Frame Discard Policy": "nodiscard", + "Frame Padding": 1, + "Scan Parameters": "[disabled]", + "Total Frames": 10, + "Receiver Roi": { + "xmin": 4294967295, + "xmax": 4294967295, + "ymin": 4294967295, + "ymax": 4294967295 + }, + "Exptime": "0ns", + "Period": "0ns", + "Burst Mode": "burst_internal", + "Frames in File": 10, + "Frame Header Format": { + "Frame Number": "8 bytes", + "SubFrame Number/ExpLength": "4 bytes", + "Packet Number": "4 bytes", + "Bunch ID": "8 bytes", + "Timestamp": "8 bytes", + "Module Id": "2 bytes", + "Row": "2 bytes", + "Column": "2 bytes", + "Reserved": "2 bytes", + "Debug": "4 bytes", + "Round Robin Number": "2 bytes", + "Detector Type": "1 byte", + "Header Version": "1 byte", + "Packets Caught Mask": "64 bytes" + } + } + +Mythen3 +^^^^^^^ + +.. code-block:: text + + { + "Version": 7.2, + "Timestamp": "Wed Nov 13 14:39:14 2024", + "Detector Type": "Mythen3", + "Timing Mode": "auto", + "Geometry": { + "x": 1, + "y": 1 + }, + "Image Size in bytes": 15360, + "Pixels": { + "x": 3840, + "y": 1 + }, + "Max Frames Per File": 10000, + "Frame Discard Policy": "nodiscard", + "Frame Padding": 1, + "Scan Parameters": "[disabled]", + "Total Frames": 1, + "Receiver Roi": { + "xmin": 4294967295, + "xmax": 4294967295, + "ymin": 4294967295, + "ymax": 4294967295 + }, + "Dynamic Range": 32, + "Ten Giga": 1, + "Period": "2ms", + "Counter Mask": "0x7", + "Exptime1": "0.1s", + "Exptime2": "0.1s", + "Exptime3": "0.1s", + "GateDelay1": "0ns", + "GateDelay2": "0ns", + "GateDelay3": "0ns", + "Gates": 1, + "Threshold Energies": "[-1, -1, -1]", + "Frames in File": 1, + "Frame Header Format": { + "Frame Number": "8 bytes", + "SubFrame Number/ExpLength": "4 bytes", + "Packet Number": "4 bytes", + "Bunch ID": "8 bytes", + "Timestamp": "8 bytes", + "Module Id": "2 bytes", + "Row": "2 bytes", + "Column": "2 bytes", + "Reserved": "2 bytes", + "Debug": "4 bytes", + "Round Robin Number": "2 bytes", + "Detector Type": "1 byte", + "Header Version": "1 byte", + "Packets Caught Mask": "64 bytes" + } + } + + +Moench +^^^^^^ + +.. code-block:: text + + { + "Version": 7.2, + "Timestamp": "Wed Nov 13 14:41:32 2024", + "Detector Type": "Moench", + "Timing Mode": "auto", + "Geometry": { + "x": 1, + "y": 1 + }, + "Image Size in bytes": 320000, + "Pixels": { + "x": 400, + "y": 400 + }, + "Max Frames Per File": 100000, + "Frame Discard Policy": "discardpartial", + "Frame Padding": 1, + "Scan Parameters": "[disabled]", + "Total Frames": 1, + "Receiver Roi": { + "xmin": 4294967295, + "xmax": 4294967295, + "ymin": 4294967295, + "ymax": 4294967295 + }, + "Exptime": "10us", + "Period": "2ms", + "Number of UDP Interfaces": 1, + "Number of rows": 400, + "Frames in File": 1, + "Frame Header Format": { + "Frame Number": "8 bytes", + "SubFrame Number/ExpLength": "4 bytes", + "Packet Number": "4 bytes", + "Bunch ID": "8 bytes", + "Timestamp": "8 bytes", + "Module Id": "2 bytes", + "Row": "2 bytes", + "Column": "2 bytes", + "Reserved": "2 bytes", + "Debug": "4 bytes", + "Round Robin Number": "2 bytes", + "Detector Type": "1 byte", + "Header Version": "1 byte", + "Packets Caught Mask": "64 bytes" + } + } + +Chip Test Board +^^^^^^^^^^^^^^^ + +.. code-block:: text + + { + "Version": 7.2, + "Timestamp": "Wed Nov 13 15:32:59 2024", + "Detector Type": "ChipTestBoard", + "Timing Mode": "auto", + "Geometry": { + "x": 1, + "y": 1 + }, + "Image Size in bytes": 48018, + "Pixels": { + "x": 3, + "y": 1 + }, + "Max Frames Per File": 20000, + "Frame Discard Policy": "nodiscard", + "Frame Padding": 1, + "Scan Parameters": "[disabled]", + "Total Frames": 1, + "Receiver Roi": { + "xmin": 4294967295, + "xmax": 4294967295, + "ymin": 4294967295, + "ymax": 4294967295 + }, + "Exptime": "0ns", + "Period": "0.18s", + "Ten Giga": 0, + "ADC Mask": "0x2202", + "Analog Flag": 1, + "Analog Samples": 8003, + "Digital Flag": 0, + "Digital Samples": 1000, + "Dbit Offset": 0, + "Dbit Reorder": 1, + "Dbit Bitset": 0, + "Transceiver Mask": "0x3", + "Transceiver Flag": 0, + "Transceiver Samples": 1, + "Frames in File": 1, + "Frame Header Format": { + "Frame Number": "8 bytes", + "SubFrame Number/ExpLength": "4 bytes", + "Packet Number": "4 bytes", + "Bunch ID": "8 bytes", + "Timestamp": "8 bytes", + "Module Id": "2 bytes", + "Row": "2 bytes", + "Column": "2 bytes", + "Reserved": "2 bytes", + "Debug": "4 bytes", + "Round Robin Number": "2 bytes", + "Detector Type": "1 byte", + "Header Version": "1 byte", + "Packets Caught Mask": "64 bytes" + } + } diff --git a/docs/src/commandline.rst b/docs/src/commandline.rst index 4b54da9b9..b65cf1cef 100644 --- a/docs/src/commandline.rst +++ b/docs/src/commandline.rst @@ -4,11 +4,56 @@ Command line interface Usage ------------- -Commands can be used either with sls_detector_get or sls_detector_put +The syntax is *'[detector index]-[module index]:[command]'*, where the indices are by default '0', when not specified. + +.. _cl-module-index-label: + +Module index +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Modules are indexed based on their order in the hostname command. They are used to configure a specific module within a detector and are followed by a ':' in syntax. + + .. code-block:: + + # Applies to all modules of detector 0 + sls_detector_put exptime 5s + + # Applies to only the 4th module + sls_detector_put 3:exptime 5s + + +Detector index +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +This index is useful when configuring multiple detectors from a single host. Each detector uses a unique shared memory identified by a detector index, derived again from the hostname command. It is followed by a '-'. + + .. code-block:: + + # For detector with index 2 in shared memory + sls_detector_put 2-hostname bchip133+bchip123+bchip456 + + # Without '-', the detector index defaults to 0 + sls_detector_put hostname bchip133+bchip123+bchip456 + + # Accessing all modules with detector index 2 + sls_detector_put 2-exptime + + # Starting acquisition only for detector with index 2 + sls_detector_put 2-start + + # Applies only to the 2nd detector, 4th module + sls_detector_put 1-3:exptime 5s + + +Command Execution +^^^^^^^^^^^^^^^^^^^^^^^ +Commands can be executed using: + +* **sls_detector_put**: setting values +* **sls_detector_get**: getting values +* **sls_detector**: automatically infers based on the number of arguments. +* **sls_detector_help**: gets help on the specific command +* **sls_detector_acquire**: initiates acquisition with the detector. This command blocks until the entire acquisition process is completed. -.. code-block:: - sls_detector_get exptime Help -------- @@ -28,12 +73,15 @@ Help # list of deprecated commands list deprecated - # autocompletion - # bash_autocomplete.sh or zsh_autocomplete.sh must be sourced from the - # main package folder to enable auto completion of commands and arguments - # for the command line on that shell. - source bash_autocomplete.sh +Autocompletion +--------------- + +bash_autocomplete.sh or zsh_autocomplete.sh must be sourced from the main package folder to enable auto completion of commands and arguments for the command line on that shell. + +.. code-block:: + + source bash_autocomplete.sh Commands diff --git a/docs/src/configcommands.rst b/docs/src/configcommands.rst new file mode 100644 index 000000000..dbc0eabd6 --- /dev/null +++ b/docs/src/configcommands.rst @@ -0,0 +1,242 @@ +.. _setup commands: + +Setup Commands +================================ + + +Introduction +------------- + +To connect to any device, one needs a unique combination of **IP address** (which identifies the device) and **port number** (which specifies the service). + +This package typically deals with two types of network interfaces: + +* **1 GbE public interface** - Accessible from anywhere on the network. Connectivity can be verified by pinging this interface from any PC. + +* **10 GbE private interface** - Dedicated to high-speed data transfer with a specific PC. In addition to the 1 GbE public interface (MTU 1500), the device may include one or more private 10 GbE interfaces (MTU 9000), which are not accessible from other machines. + +Client to Module +----------------- + +.. figure:: images/Client_module_commands.png + :target: _images/Client_module_commands.png + :width: 700px + :align: center + :alt: Client Module Commands + + Client Module TCP Commands + +The client configures and controls modules via the 1 GbE public TCP interface. + +* Should be able to ping the module's hostname from any PC on the network. +* If one cannot ping, ensure that it is powered on. +* If the command cannot connect to the port (`hostname command `_ failed), the onboard servers may not have started yet. + +Each physical module has its own unique IP address. As the IPs are already different, all modules can share the same default ports: + +* 1952 - Default Module TCP Control Port +* 1953 - Default Module TCP Stop port + +.. code-block:: bash + + # Therefore, one can use + hostname bchip100+bchip101+ + # instead of + hostname bchip100:1952+bchip101:1954+ + + +**Simulators**, however, usually run on the same PC. See `virtual servers `_ for more details. In that case, each instance must use a different port. By incrementing port numbers, you can also use the virtual command for convenience. + +.. code-block:: bash + + # Therefore, one can use + virtual 2 1952 + # instead of + hostname localhost:1952+localhost:1954+ + + + + +Client to Receiver +-------------------- + +.. figure:: images/Client_receiver_commands.png + :target: _images/Client_receiver_commands.png + :align: center + :alt: Client Receiver Commands + + Client Receiver TCP Commands + +Each module has a receiver, which can be either local or remote. + +The client can configure and control receivers via the 1 GbE public TCP interface: + +* Should be able to ping the receiver's hostname from any PC on the network. +* If one cannot ping, ensure that it is powered on. +* If the command cannot connect to the port (`rx_hostname command `_ failed), the receivers may not have started yet. + + +Since multiple receiver processes typically run on the same PC, they share the same IP. Here, each receiver process must use a different TCP port for a unique connection. + +* 1954 - Default Receiver TCP port + +Configuring the receiver with the command `rx_hostname command `_, sets up a receiver for every module in shared memory automatically ie. every module's receiver TCP port will automatically increment in shared memory. The starting port is defined by the command `rx_tcpport `_ with the default being 1954. + + +A multi-module command (without colon or module index) sets incremental ports starting from the specified port number. + +.. code-block:: bash + + hostname bchip100+bchip101+bchip102+bchip103+ + rx_tcport 2000 # sets the receiver port to 2000, 2001, 2002, 2003 + + +For example, using default TCP ports (1954, 1955): + +.. code-block:: bash + + hostname bchip100+bchip101+ + rx_hostname localhost + # Equivalent to: + rx_hostname localhost:1954+localhost:1955+ + + # or set to another set of ports (automatically incremented) + rx_tcpport 1984 + rx_hostname localhost + # instead of + rx_hostname localhost:1984+localhost:1985+ + + + + +Module to Receiver +------------------- + +.. figure:: images/Module_receiver_commands.png + :target: _images/Module_receiver_commands.png + :align: center + :alt: Module Receiver Commands + + Module Receiver UDP Commands + +**10GbE Interface** + +The module typically sends images to the receiver via a 10 GbE private interface on the receiver PC, which has an MTU of 9000 to support jumbo packets. The private interface is not reachable from other machines, so it cannot be pinged from anywhere. + +**Multiple UDP Packets** + +Images are split into UDP packets for transmission. Unlike TCP, UDP is connectionless and does not guarantee delivery. Therefore, the receiver PC must be tuned for reliable reception. See `Troubleshooting `_. + +**UDP Configuration** + +Unlike TCP, the module (hardware) requires explicit configuration for sending images via UDP, including: + +* Source and destination IPs +* Source and destination MAC addresses +* Source and destination ports + +**UDP Destination** + +Info on where to send the image from the module to. + +**UDP Desination IP** - The IP of the receiver PC's 10 GbE interface, usually found via ``ifconfig``. Command: `udp_dstip `_. For 1GbE interface and for this command, one can use 'auto' as an argument, which will pick up the IP from the `rx_hostname command `_. + +**UDP desintation MAC** - Also obtained from the interface using ``ifconfig``. For built-in receivers, the module configures this automatically from the ``UDP destination IP``. For custom receivers, it must be explicitly provided. Command: `udp_dstmac `_ + +**UDP destination port** - Ensure uniqueness if multiple users share the interface. Command: `udp_dstport `_ + +* 50001 - Default Receiver UDP port + + +**UDP Source** + +As it is a one-way communication (module to receiver with no reply or acknowledgements), info on the source of the image is more for debugging purposes and prevent packet rejection. + +**UDP source IP** - Must be on the same subnet as the destination IP (same first three octets) to prevent packet rejection by the receiver interface. For 1GbE interface and for this command (except for Eiger), one can use ``auto`` as an argument, which will pick up the IP from the `hostname command `_. Command: `udp_srcip `_ + +.. code-block:: bash + + # 10 GbE interface + hostname bchip100 + udp_dstip 10.0.2.1 + udp_srcip 10.0.2.19 + rx_hostname localhost + + # 1 GbE interface + hostname bchip100 + rx_hostname localhost + udp_dstip auto # this command uses IP from rx_hostname. So, it comes after. + udp_srcip auto # this command uses IP from hostname + +**UDP source MAC** - By default, it is set to ``aa:bb:cc:dd:xx:yy`` where ``xx`` and ``yy`` are module row and column indices to differentiate the modules while debugging. Command: `udp_srcmac `_ + + +**UDP source port** - This is hardcoded in every module to the same value in the detector server and cannot be changed. + +Note: If there is a second UDP port on the module, use 'udp_dstport2' or 'udp_dstip2'etc. See `here `_ for more detector specific info. + +Receiver to GUI +----------------- + +.. figure:: images/Receiver_gui_commands.png + :target: _images/Receiver_gui_commands.png + :align: center + :alt: Receiver GUI Commands + + Receiver GUI Commands + + +Enabling the GUI automatically streams images from the receiver via ZMQ sockets. Even without the GUI, streaming can be activated explicitly using the command `rx_zmqstream `_. ZMQ streaming uses TCP/IP, so the ports must be configured appropriately. + +**Receiver ZMQ Port** - Port from which the receiver streams ZMQ packets. Command: `rx_zmqport `_ + +* 30001 - Default Receiver ZMQ Port (stream out from) + +**Client ZMQ Port** - Port that the client ZMQ socket listens to. Command: `zmqport `_ + +* 30001 - Default Client ZMQ Port (listens to) + +**Client ZMQ IP** - IP address the client ZMQ socket listens to. Command: `zmqip `_. By default, this is set to the IP of ``rx_hostname``, but can be set to any IP address that the client can reach. + +* Default: Receiver’s hostname (rx_hostname) + + +.. note :: + + ``zmqport`` and ``zmqip`` need to be set up in shared memory before starting up the Gui. If the Gui is already running, change it in the Advanced Tab directly in the Gui. + + ``rx_zmqstream`` is set to 1 when the GUI is started, but has to be manually set back to 0 to disable zmq streaming in the receiver for better performance when not using the Gui. + + The GUI hwm (high water mark, which is like a measurement of the number of enqueued zmq packets) values are set to a low number (from library default of possibly 1000 to 2) to reduce the zmq buffer to display only some of the images. Resetting it back to -1 or 1000 should only matter if one plans to not use the Gui and still zmq stream without wanting to drop zmq images (eg. for external processing chain). + + + + + +Receiver to External Processing +-------------------------------- + +.. figure:: images/Receiver_external_process_commands.png + :target: _images/Receiver_external_process_commands.png + :align: center + :alt: Click to zoom + + Receiver External Process Commands + +Images from the receiver can also be streamed to an external processing chain for further processing or storage. In this setup: + +* The external processor listens to the ZMQ ports and IPs that the receiver streams from. + +* The client ZMQ sockets now listen to the ports and IPs that the external processor streams from instead of the receiver. + +**Receiver ZMQ Port** - Port from which the receiver streams ZMQ packets. Command: `rx_zmqport `_ + +* 30001 - Default Receiver ZMQ Port (stream out from) + +**Client ZMQ Port** - Port that the client ZMQ socket listens to. Command: `zmqport `_. In this set up, it should listen to the zmq port that the external process is streaming out from. + +* 30001 - Default Client ZMQ Port (listens to) + +**Client ZMQ IP** - IP address the client ZMQ socket listens to. Command: `zmqip `_. By default, this is set to the IP of ``rx_hostname``, but in this set up, it should listen to the zmq IP that the external process is streaming out from. + +* Default: Receiver’s hostname (rx_hostname) diff --git a/docs/src/dataformat.rst b/docs/src/dataformat.rst new file mode 100644 index 000000000..a8c2f0991 --- /dev/null +++ b/docs/src/dataformat.rst @@ -0,0 +1,330 @@ +.. _data format: + +Detector Image Size and Format +================================ + +Each UDP port creates its own output file, which contains the data of the image transmitted over that port. More on number of files and naming for each file in the `File format `_ section. + +Jungfrau +------------- + +Single Port Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: images/Jungfrau_module.png + :target: _images/Jungfrau_module.png + :width: 650px + :align: center + :alt: Jungfrau Module Single Port Configuration + +By default, only the outer 10GbE interface is enabled, transmitting the full image over a single UDP port. This results in one file per module containing the complete image. + +Total image size = 524,288 bytes + - 8 chips (2 x 4 grid) + - 256 x 256 pixels (chip size) + - 2 bytes (pixel width) + + + +Double Port Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: images/Jungfrau_two_port.png + :target: _images/Jungfrau_two_port.png + :width: 500px + :align: center + :alt: Jungfrau Module Two Port Configuration + +If both interfaces are enabled using the `numinterfaces `_ command on compatible hardware and firmware, the image splits into top and bottom halves sent over two UDP ports: + + - The top half transmits via the inner interface (`udp_dstport2 `_ and `udp_dstip2 `_). + + - The bottom half uses the outer interface(`udp_dstport `_ and `udp_dstip `_). + +The number of files per module equals the active UDP ports—two files per module when both interfaces are used. + +Image size per UDP port or File = 262,144 bytes + - **Complete Image size / 2** + + + +Read Partial Rows +^^^^^^^^^^^^^^^^^^ + +.. image:: images/Jungfrau_read_rows.png + :target: _images/Jungfrau_read_rows.png + :width: 550px + :align: center + :alt: Jungfrau Module Read Partial Rows Configuration + + +The number of image rows per port can be adjusted using the `readnrows `_ command. By default, 512 rows are read, but a smaller value centers the readout vertically (e.g., 8 rows reads 4 above and 4 below the center). Increasing the value symmetrically expands the region toward the top and bottom. Permissible values are multiples of 8. + + +Total image size = 32,768 bytes + - 8 chips (2 x 4 grid) + - **8** x 256 pixels (chip size: **8 rows**) + - 2 bytes (pixel width) + +Note: Still in prototype stage, writes complete image (padded or not depending on `rx_padding `_ parameter) to file. Only the summary written to console in the receiver handles the `readnrows `_ to calculate to calculate complete images received. Only reduces network load, not file size. Use `rx_roi `_ for file size. + +Moench +------------- + +Single Port Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: images/Moench_module.png + :target: _images/Moench_module.png + :width: 550px + :align: center + :alt: Moench Module Single Port Configuration + +By default, only the outer 10GbE interface is enabled, transmitting the full image over a single UDP port. This results in one file per module containing the complete image. + +Total image size = 320,000 bytes + - 400 x 400 pixels (chip size) + - 2 bytes (pixel width) + + + +Double Port Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: images/Moench_two_port.png + :target: _images/Moench_two_port.png + :width: 400px + :align: center + :alt: Moench Module Two Port Configuration + +If both interfaces are enabled using the `numinterfaces `_ command on compatible hardware and firmware, the image splits into top and bottom halves sent over two UDP ports: + + - The top half transmits via the inner interface (`udp_dstport2 `_ and `udp_dstip2 `_). + + - The bottom half uses the outer interface(`udp_dstport `_ and `udp_dstip `_). + +The number of files per module equals the active UDP ports—two files per module when both interfaces are used. + +Image size per UDP port or File = 160,000 bytes + - **Complete Image size / 2** + + + +Read Partial Rows +^^^^^^^^^^^^^^^^^^ + +.. image:: images/Moench_read_rows.png + :target: _images/Moench_read_rows.png + :width: 400px + :align: center + :alt: Moench Module Read Partial Rows Configuration + + +The number of image rows per port can be adjusted using the `readnrows `_ command. By default, 400 rows are read, but a smaller value centers the readout vertically (e.g., 16 rows reads 8 above and 8 below the center). Increasing the value symmetrically expands the region toward the top and bottom. Permissible values are multiples of 16. + + +Total image size = 12,800 bytes + - **16** x 400 pixels (chip size: **16 rows**) + - 2 bytes (pixel width) + +Note: Still in prototype stage, writes complete image (padded or not depending on `rx_padding `_ parameter) to file. Only the summary written to console in the receiver handles the read n rows to calculate complete images received. Only reduces network load, not file size. Use `rx_roi `_ for file size. + +Eiger +------------- + +Default Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: images/Eiger_module.png + :target: _images/Eiger_module.png + :width: 350px + :align: center + :alt: Eiger Module Default Configuration + + +Each Eiger module has two independent identical readout systems (other than firmware), each with its own control port and `hostname `_ to be configured with. They are referred to as the 'top' and 'bottom' half modules. The bottom half module is flipped vertically. + +Each half module has 2 parallel UDP ports for 2 chips each. The left UDP port is configured with `udp_dstport `_, while the right UDP port is configured with `udp_dstport2 `_. This is vice versa for the bottom half module. + + +Image size per UDP port or File = 262,144 bytes + - 2 chips (1 x 2 grid) + - 256 x 256 pixels (chip size) + - 2 bytes (default pixel width) + + +The myth, the legend, the bottom ports: Demystifying them +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +.. figure:: images/Eiger_bottom_1.png + :target: _images/Eiger_bottom_1.png + :width: 350px + :align: center + :alt: Eiger Bottom as Firmware gets it + + How the firmware gets the images + + +.. figure:: images/Eiger_bottom_2.png + :target: _images/Eiger_bottom_2.png + :width: 350px + :align: center + :alt: Eiger Bottom after the firmware flips it horizontally + + After the firmware flips it horizontally + + +.. figure:: images/Eiger_bottom_3.png + :target: _images/Eiger_bottom_3.png + :width: 350px + :align: center + :alt: After the software swaps the udp ports + + After the software swaps the udp ports + + +.. figure:: images/Eiger_bottom_4.png + :target: _images/Eiger_bottom_4.png + :width: 400px + :align: center + :alt: After the gui has flipped the bottom vertically + + After the gui has flipped the bottom vertically + + +Note: The same process happens for the bottom 2 udp ports of the quad. + + +Pixel width +^^^^^^^^^^^^^ + +The pixel width can be configured to 4, 8, 16 (default) or 32 bits using the command `dr `_. This affects image size per UDP port or file. + +Flip rows +^^^^^^^^^^ + +One can use the command `fliprows `_ to flip the rows vertically for the bottom or top half module. It is sent out to the reciever, but does not flip rows in the output file itself, but rather streams out this info via the json header and thus instructs the GUI to display them correctly. + +1GbE/ 10GbE Interfaces +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Both UDP ports `udp_dstport `_ and `udp_dstport2 `_ are used in Eiger as shows in the figure. Both of them can be set to use either the 1GbE or the 10GbE interface for data. The 1GbE interface is used also for control and configuration. For data, the 1GbE interface is enabled by default. It can be disabled by enabling the `tengiga `_ command and updating both the `udp_dstport `_ , `udp_dstport2 `_ , `udp_dstip `_ commands to match the 1GbE or 10GbE interface. This setting only affects packetsize and number of packets, but does not affect the total image size. + +Reducing network load +^^^^^^^^^^^^^^^^^^^^^^ + +**Activate**: By default, the `hostname `_ command activates the respective half module it connects to, enabling all UDP ports. To deactivate an entire half module (i.e., both UDP ports), use the `activate `_ command. This disables both UDP ports for that half module, so no data is transmitted from it — only half of the module is read out. To specify which half module to activate or deactivate, use the module index (for Eiger, each half module has its own module index). + + +**Datastream**: The `datastream `_ command with arguments to specify which port can be used to disable the data streaming from one or both the two UDP ports in a half module. This allows for more flexible configurations, such as reading only two chips or one UDP port of a half module. To specify which half module to activate or deactivate, use the module index (for Eiger, each half module has its own module index). + +Note: Only the activated ports will write data as it does not make sense to write an empty file. + +**Read Partial Rows**: The number of image rows per port can be adjusted using the `readnrows `_ command. By default, 256 rows are read, but a smaller value centers the readout vertically (e.g., 8 rows reads 4 above and 4 below the center). Increasing the value symmetrically expands the region toward the top and bottom. Permissible values depend on dynamic range and 10GbE enable. + +.. image:: images/Eiger_read_rows.png + :target: _images/Eiger_read_rows.png + :width: 400px + :align: center + :alt: Eiger Module Read Partial Rows Configuration + + + +Total image size per UDP Port = 8,192 bytes + - 2 chips (1 x 2 grid) + - **8** x 256 pixels (chip size: **8 rows**) + - 2 bytes (default pixel width) + +Note: Still in prototype stage, writes complete image (padded or not depending on `rx_padding `_ parameter) to file. Only the summary written to console in the receiver handles the `readnrows `_ to calculate complete images received. Only reduces network load, not file size. Use `rx_roi `_ for file size. + +Quad +^^^^^^ + +The Eiger quad is a special hardware configuration that uses only the top half-module to create a quad layout. In this setup, the second half of the top module—normally associated with the right-side UDP port—is used to represent the inverted bottom half of the quad. + +As with any standard half-module, it includes one control TCP port (with a hostname) and two UDP data ports (top and bottom). When the quad option is enabled, the firmware automatically flips the second UDP port vertically. + +In this configuration, the fliprows command cannot be used to flip the entire half-module. Instead, the receiver automatically includes row-flipping information only for the second UDP port in the JSON header, so the GUI can apply the correct orientation during display + +.. image:: images/Eiger_quad.png + :target: _images/Eiger_quad.png + :width: 300px + :align: center + :alt: Eiger Quad Configuration + +Image size per UDP port = same as a normal Eiger UDP port + +Mythen3 +------------- + + + +Default Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: images/Mythen3_module.png + :target: _images/Mythen3_module.png + :align: center + :alt: Mythen3 Module Default Configuration + +Each Mythen3 module is a 1D detector with 10 chips, each with 128 channels. Each channel has 3 counters that are enabled by default. + +Image size = 15,360 bytes + - 10 chips (1 x 10 grid) + - 128 channels + - 3 counters + - 4 bytes (default pixel width) + +Counters +^^^^^^^^^^^ + +If all 3 counters are enabeld, the frame size for each channel is multiplied by 3. The counters are stored consecutively per channel. One can disable one or more of the counters using the `counters `_ command. The frame size will then be reduced accordingly. + +Image size = 10,240 bytes + - 10 chips (1 x 10 grid) + - 128 channels + - 2 counters (0, 1 enabled) + - 4 bytes (default pixel width) + +Pixel width +^^^^^^^^^^^^^ + +The pixel width can be configured to 8, 16 or 32 (default) bits using the command `dr `_. 32 bits is actually 24 bits in the chip. This setting does affect image size. + +1GbE/ 10GbE Interfaces +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +The UDP port can be set to use either the 1GbE or the 10GbE interface for data. The 1GbE interface is used also for control and configuration. For data, the 10GbE interface is enabled by default. It can be disabled by using the `tengiga `_ command and updating the `udp_dstport `_ and `udp_dstip `_ commands to match the 1GbE or 10GbE interface. This setting only affects packetsize and number of packets, but does not affect the total image size. + + +Gotthard2 +------------- + + +Default Configuration +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. image:: images/Gotthard2_module.png + :target: _images/Gotthard2_module.png + :align: center + :alt: Gotthard2 Module Default Configuration + +Each Gotthard2 module is a 1D detector with 10 chips, each with 128 channels. + +Image size = 2,560 bytes + - 10 chips (1 x 10 grid) + - 128 channels + - 2 bytes (pixel width) + +Veto Info +^^^^^^^^^^^ + +One can enable veto data in the chip of the Gotthard2 module using the `veto `_ command. By default, this is disabled. This does not affect the image size as veto information is not sent out through the same 10GbE interface. + +One can either stream out the veto info through the low latency link (2.5 gbps) or for debugging purposes through another 10GbE interface. + +For debugging purposes, the veto info can be enabled using the `numinterfaces `_ command and the following parameters are updated: `udp_dstport2 `_ and `udp_dstip2 `_. The veto data from this port is of course written to a separate file and is not combined in the virtual HDF5 file mapping (complete image mapped). + + diff --git a/docs/src/dependencies.rst b/docs/src/dependencies.rst index 846fc0ff1..a4b02f98e 100644 --- a/docs/src/dependencies.rst +++ b/docs/src/dependencies.rst @@ -14,14 +14,19 @@ the shared libraries these are needed: * Linux, preferably recent kernel (currently no cross platform support) * CMake >= 3.14 - * C++11 compatible compiler. (We test with gcc and clang) + * C++17 compatible compiler. (We test with gcc and clang) + +.. note :: + + For v9.x.x of slsDetectorPackage and older, C++11 compatible compiler. + ----------------------- Python bindings ----------------------- - * Python > 3.6 - * pybind11 2.11.0 (packaged in libs) + * Python >= 3.8 + * pybind11 2.13.6 (packaged in libs) .. note :: diff --git a/docs/src/detector.rst b/docs/src/detector.rst index 9c8ec8be2..af09d792a 100644 --- a/docs/src/detector.rst +++ b/docs/src/detector.rst @@ -13,7 +13,6 @@ containing results from all modules. (:ref:`Result class`) Here are some :ref:`examples ` on how to use the API. -.. _Cplusplus Api Examples: .. doxygenclass:: sls::Detector :members: :undoc-members: \ No newline at end of file diff --git a/docs/src/fileformat.rst b/docs/src/fileformat.rst new file mode 100644 index 000000000..4821d541a --- /dev/null +++ b/docs/src/fileformat.rst @@ -0,0 +1,75 @@ +.. _file format: + +File format +================================ + +If `fwrite `_ is enabled, the receiver will write data to files. + +Number of Files +---------------- + +Every acquisition will create a master file and data files. + +An acquisition can have multiple data files for a single frame. The number of files is determined by the number of UDP ports per module and the number of modules. + + * Every modules has its own receiver process. Every receiver process can have 1 or 2 UDP ports. + * Each UDP port will create its own file. Therefore, each receiver can write 1 or 2 files. + * So, for example a detector with 4 modules with 2 UDP ports each will create a total of 8 files with file names containing UDP port index **'_d0'** to **'_d7'**. + +A new file containing **'_f[file_index]'** in file name is also created when reaching the maximum frames per file. Configured using `rx_framesperfile `_. + +.. _file name format: + +Naming +------- +| Master File Name: [fpath]/[fname]_master_[findex].[ext] + + +| Data File Name: [fpath]/[fname]_dx_fy_[findex].[ext] + + * fpath: file path set using command `fpath `_. Default: '/' + * fname: file name prefix using command `fname `_. Default: "run" + * findex: acquisition index using command `findex `_. Automatically incremented for every acquisition with `sls_detector_acquire `_ (if `fwrite `_ enabled). + * x: unique udp port index. New file per UDP port. + * y: file index. New file created after reaching max frames per file. + * ext: file extension. Default: "raw"(data file) or "json"(master file) + + +Some file name examples: + + .. code-block:: bash + + # first file + path-to-file/run_d0_f0_0.raw + + # first file for second UDP port + path-to-file/run_d1_f0_0.raw + + # second file after reaching max frames in first file + path-to-file/run_d0_f1_0.raw + + # second acquisition, first file + path-to-file/run_d0_f0_1.raw + + +Formats +-------- + +There are 2 file formats supported by the receiver: + + * Binary - extension .json (master file) or .raw (data files) + * HDF5 - extension .h5 + +The default is binary. HDF5 can be enabled by compiling the package with HDF5 option enabled. The file format is set using the command `fformat `_. + + +Content +-------- + +| `Master File`: Contains the metadata of the acquisition. The content is described in :ref:`master file attributes `. + + +| `Data File`: Contains the metadata for each image (:ref:`slsReceiverHeader`) and the `data of the image` transmitted over that port. The image data is described in :ref:`Detector Image Size and Format ` section. + + +| More content and examples are found in the :ref:`HDF5 file format ` and :ref:`Binary file format ` sections. \ No newline at end of file diff --git a/docs/src/firmware.rst b/docs/src/firmware.rst index a372ecb04..e2ad00df3 100644 --- a/docs/src/firmware.rst +++ b/docs/src/firmware.rst @@ -1,3 +1,5 @@ +.. _firmware upgrade: + Firmware Upgrade ================= @@ -98,7 +100,7 @@ Upgrade * 6.1.2 server has a fix for seamless fpga programming - * We recommend first updating the on-board detector server to 6.1.2 (with client 6.1.x) using command 'updatedetectorserver' or 'copydetectorserver'. + * We recommend first updating the on-board detector server to 6.1.2 (with client 6.1.x) using command `updatedetectorserver `_. * Then use command 'programfpga' to only update firmware or use command 'update' to update firmware and server to the latest release. @@ -131,42 +133,6 @@ Program from console -Gotthard I ------------ - -Download -^^^^^^^^^^^^^ -- detector server corresponding to package in slsDetectorPackage/serverBin - -- `pof files `__ - - -.. _firmware upgrade using blaster for blackfin: - -Upgrade -^^^^^^^^ -.. warning :: - | Gotthard firmware cannot be upgraded remotely and requires the use of USB-Blaster. - | It is generally updated by us. - -#. Download `Altera Quartus software or Quartus programmer `__. - - -#. Start Quartus programmer, click on Hardware Setup. In the "Currently selected hardware" window, select USB-Blaster. - -#. In the Mode combo box, select "Active Serial Programming". - -#. Plug the end of your USB-Blaster with the adaptor provided to the connector 'AS config' on the Gotthard board. - -#. Click on 'Add file'. Select programming (pof) file provided by us. - -#. Check "Program/Configure" and "Verify". Push the start button. Wait until the programming process is finished. - -#. In case of error messages, check the polarity of cable (that pin1 corresponds) and that the correct programming connector is selected. - -#. Reboot the detector. - - Mythen III ----------- @@ -257,7 +223,7 @@ Upgrade * 6.1.2 server has a fix for seamless fpga programming - * We recommend first updating the on-board detector server to 6.1.2 (with client 6.1.x) using command 'updatedetectorserver' or 'copydetectorserver'. + * We recommend first updating the on-board detector server to 6.1.2 (with client 6.1.x) using command `updatedetectorserver `_. * Then use command 'programfpga' to only update firmware or use command 'update' to update firmware and server to the latest release. @@ -396,7 +362,3 @@ How to get back mtd3 drive remotely (udpating kernel) more /proc/mtd # verify mtd3 is listed -Last Resort using USB Blaster -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If none of these steps work, the last resort might be physically upgrading the firmware using a USB blaster, which also requires opening up the detector. Instructions for all the blackfin detectors are the same as the one for :ref:`gotthard firmware upgrade `. \ No newline at end of file diff --git a/docs/src/hdf5fileformat.rst b/docs/src/hdf5fileformat.rst new file mode 100644 index 000000000..baff1970f --- /dev/null +++ b/docs/src/hdf5fileformat.rst @@ -0,0 +1,91 @@ +.. _hdf5 file format: + +HDF5 File Format +================================ + +Compilation +------------- + +#. Compile the package with HDF5 option enabled + + #. Using cmk script: ./cmk.sh -hj9 -d [path of hdf5 dir] (-d is optional and for custom installation folder) + + #. Enable using cmake option **-DSLS_USE_HDF5=ON** and **-DCMAKE_INSTALL_PREFIX=/path/to/custom/hdf/installation** (optional). + + +Setup +------- + +#. Start Receiver process + +#. Load config file + +#. Set file format using command `fformat `_. + + .. code-block:: bash + + sls_detector_put fformat hdf5 + + +Master File +------------- + +* File Name: [fpath]/[fname]_master_[findex].h5 :ref:`Details here` + +* It contains :ref:`attributes` relevant to the acquisition. This can vary with detector type. + +.. code-block:: text + + / # Root level + |---> entry # entry group + | |---> data # data group + | |---> column # dataset of each sls_receiver_header member + | |---> data + | |---> detector header version + | |---> detector specific 1 + | |---> detector specific 2 + | |---> detector specific 3 + | |---> detector specific 4 + | |---> detector type + | |---> exp length or sub exposure time + | |---> frame number + | |---> mod id + | |---> packets caught + | |---> packets caught bit mask + | |---> row + | |---> timestamp + | |---> instrument # instrument group + | |---> beam # beam group + | |---> detector # detector group + | |---> Master File Attribute 1 # dataset of each master file attribute + | |---> Master File Attribute 2 + | |---> Master File Attribute 3 + | |---> Master File Attribute .. + | |---> sample # sample group + + +If more than 1 data file per frame: + * The dataset of each :ref:`**SLS Receiver Header** ` member is a virtual dataset. + * **data** dataset is a virtual dataset. + + +More details regarding master file attributes can be found :ref:`here`. + +Data File +----------- + +* File Name: [fpath]/[fname]_dx_fy_[findex].h5 :ref:`Details here` + +* More details on :ref:`slsReceiverHeader` and the actual image data is described in the :ref:`Detector Image Size and Format ` section. + + +Virtual Data File +------------------ + +* File Name: [fpath]/[fname]_virtual_[findex].h5 :ref:`Details here` + +* For multiple modules, a virtual file linking data from all the modules is created. The individual files are expected to be present. + +* It is linked in the master file. + + diff --git a/docs/src/images/Client_architecture.png b/docs/src/images/Client_architecture.png new file mode 100644 index 000000000..17c7f2797 Binary files /dev/null and b/docs/src/images/Client_architecture.png differ diff --git a/docs/src/images/Client_module_commands.png b/docs/src/images/Client_module_commands.png new file mode 100644 index 000000000..e9b71c99a Binary files /dev/null and b/docs/src/images/Client_module_commands.png differ diff --git a/docs/src/images/Client_receiver_commands.png b/docs/src/images/Client_receiver_commands.png new file mode 100644 index 000000000..b3221e1c5 Binary files /dev/null and b/docs/src/images/Client_receiver_commands.png differ diff --git a/docs/src/images/Eiger_bottom_1.png b/docs/src/images/Eiger_bottom_1.png new file mode 100644 index 000000000..c1b8b4617 Binary files /dev/null and b/docs/src/images/Eiger_bottom_1.png differ diff --git a/docs/src/images/Eiger_bottom_2.png b/docs/src/images/Eiger_bottom_2.png new file mode 100644 index 000000000..a96f12f4d Binary files /dev/null and b/docs/src/images/Eiger_bottom_2.png differ diff --git a/docs/src/images/Eiger_bottom_3.png b/docs/src/images/Eiger_bottom_3.png new file mode 100644 index 000000000..d60ddb4f2 Binary files /dev/null and b/docs/src/images/Eiger_bottom_3.png differ diff --git a/docs/src/images/Eiger_bottom_4.png b/docs/src/images/Eiger_bottom_4.png new file mode 100644 index 000000000..1d3fc6e6c Binary files /dev/null and b/docs/src/images/Eiger_bottom_4.png differ diff --git a/docs/src/images/Eiger_module.png b/docs/src/images/Eiger_module.png new file mode 100644 index 000000000..44a36d072 Binary files /dev/null and b/docs/src/images/Eiger_module.png differ diff --git a/docs/src/images/Eiger_quad.png b/docs/src/images/Eiger_quad.png new file mode 100644 index 000000000..462ade28a Binary files /dev/null and b/docs/src/images/Eiger_quad.png differ diff --git a/docs/src/images/Eiger_read_rows.png b/docs/src/images/Eiger_read_rows.png new file mode 100644 index 000000000..5f2175de0 Binary files /dev/null and b/docs/src/images/Eiger_read_rows.png differ diff --git a/docs/src/images/Gotthard2_module.png b/docs/src/images/Gotthard2_module.png new file mode 100644 index 000000000..dffbd45dd Binary files /dev/null and b/docs/src/images/Gotthard2_module.png differ diff --git a/docs/src/images/Jungfrau_module.png b/docs/src/images/Jungfrau_module.png new file mode 100644 index 000000000..5de6fccbe Binary files /dev/null and b/docs/src/images/Jungfrau_module.png differ diff --git a/docs/src/images/Jungfrau_read_rows.png b/docs/src/images/Jungfrau_read_rows.png new file mode 100644 index 000000000..701cfa913 Binary files /dev/null and b/docs/src/images/Jungfrau_read_rows.png differ diff --git a/docs/src/images/Jungfrau_two_port.png b/docs/src/images/Jungfrau_two_port.png new file mode 100644 index 000000000..cd7703111 Binary files /dev/null and b/docs/src/images/Jungfrau_two_port.png differ diff --git a/docs/src/images/Module_architecture.png b/docs/src/images/Module_architecture.png new file mode 100644 index 000000000..5f5c62650 Binary files /dev/null and b/docs/src/images/Module_architecture.png differ diff --git a/docs/src/images/Module_receiver_commands.png b/docs/src/images/Module_receiver_commands.png new file mode 100644 index 000000000..b9831a7f6 Binary files /dev/null and b/docs/src/images/Module_receiver_commands.png differ diff --git a/docs/src/images/Moench_module.png b/docs/src/images/Moench_module.png new file mode 100644 index 000000000..975ffb325 Binary files /dev/null and b/docs/src/images/Moench_module.png differ diff --git a/docs/src/images/Moench_read_rows.png b/docs/src/images/Moench_read_rows.png new file mode 100644 index 000000000..696df2120 Binary files /dev/null and b/docs/src/images/Moench_read_rows.png differ diff --git a/docs/src/images/Moench_two_port.png b/docs/src/images/Moench_two_port.png new file mode 100644 index 000000000..b3c4f22d7 Binary files /dev/null and b/docs/src/images/Moench_two_port.png differ diff --git a/docs/src/images/Mythen3_module.png b/docs/src/images/Mythen3_module.png new file mode 100644 index 000000000..73eccfe1f Binary files /dev/null and b/docs/src/images/Mythen3_module.png differ diff --git a/docs/src/images/Receiver_architecture.png b/docs/src/images/Receiver_architecture.png new file mode 100644 index 000000000..8aaf00af4 Binary files /dev/null and b/docs/src/images/Receiver_architecture.png differ diff --git a/docs/src/images/Receiver_external_process_commands.png b/docs/src/images/Receiver_external_process_commands.png new file mode 100644 index 000000000..b09b80d74 Binary files /dev/null and b/docs/src/images/Receiver_external_process_commands.png differ diff --git a/docs/src/images/Receiver_gui_commands.png b/docs/src/images/Receiver_gui_commands.png new file mode 100644 index 000000000..4cef3853f Binary files /dev/null and b/docs/src/images/Receiver_gui_commands.png differ diff --git a/docs/src/images/Soft_upgrade_components.png b/docs/src/images/Soft_upgrade_components.png new file mode 100644 index 000000000..cf715a90f Binary files /dev/null and b/docs/src/images/Soft_upgrade_components.png differ diff --git a/docs/src/images/System_communication_architecture.png b/docs/src/images/System_communication_architecture.png new file mode 100644 index 000000000..7376a0590 Binary files /dev/null and b/docs/src/images/System_communication_architecture.png differ diff --git a/docs/src/index.rst b/docs/src/index.rst index 1bdca9dd1..4ba406a17 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -3,21 +3,32 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to slsDetectorPackage's documentation! +slsDetectorPackage ============================================== .. note :: This is the documentation for the latest development version of slsDetectorPackage. - For further documentation, visit the official page: https://www.psi.ch/en/detectors/documentation + For further detector specific documentation, visit `this page `__. .. toctree:: - :maxdepth: 1 + :maxdepth: 3 :caption: Installation: installation dependencies consuming + + +.. toctree:: + :caption: how to + :maxdepth: 2 + + softwarearchitecture + configcommands + quick_start_guide + dataformat + multidet .. toctree:: :caption: C++ API @@ -28,6 +39,9 @@ Welcome to slsDetectorPackage's documentation! receiver_api examples + + + .. toctree:: :caption: Python API :maxdepth: 2 @@ -36,13 +50,15 @@ Welcome to slsDetectorPackage's documentation! pydetector pyenums pyexamples + pyPatternGenerator + pattern .. toctree:: :caption: Command line - :maxdepth: 2 + :maxdepth: 1 commandline - quick_start_guide + .. toctree:: :caption: Developer @@ -79,8 +95,26 @@ Welcome to slsDetectorPackage's documentation! :caption: Receiver :maxdepth: 2 - receivers slsreceiver + receivers + + +.. toctree:: + :caption: Receiver Files + :maxdepth: 3 + + fileformat + slsreceiverheaderformat + dataformat + masterfileattributes + binaryfileformat + hdf5fileformat + +.. toctree:: + :caption: Receiver ZMQ Stream + :maxdepth: 2 + + zmqjsonheaderformat .. toctree:: :caption: Troubleshooting diff --git a/docs/src/installation.rst b/docs/src/installation.rst index c8717851f..f9b98b48e 100644 --- a/docs/src/installation.rst +++ b/docs/src/installation.rst @@ -1,9 +1,4 @@ -.. warning :: - - Before building from source make sure that you have the - :doc:`dependencies <../dependencies>` installed. If installing using conda, conda will - manage the dependencies. Avoid also installing packages with pip. - + .. _Installation: @@ -11,18 +6,47 @@ Installation =============== -Install binaries using conda -------------------------------- +.. contents:: + :local: + :depth: 2 + :backlinks: top + + +Overview +-------------- + +The ``slsDetectorPackage`` provides core detector software implemented in C++, along with Python bindings packaged as the ``slsdet`` Python extension module. Choose the option that best fits your environment and use case. + +:ref:`conda pre-built binaries`: +Install pre-built binaries for the C++ client, receiver, GUI and the Python API (``slsdet``), simplifying setup across platforms. + +:ref:`pip`: +Install only the Python extension module, either by downloading the pre-built library from PyPI or by building the extension locally from source. Available only from v9.2.0 onwards. + +:ref:`build from source`: +Compile the entire package yourself, including both the C++ core and the Python bindings, for maximum control and customization. However, make sure that you have the :doc:`dependencies <../dependencies>` installed. If installing using conda, conda will manage the dependencies. Avoid installing packages with pip and conda simultaneously. + + + + +.. _conda pre-built binaries: + +1. Install pre-built binaries using conda (Recommended) +-------------------------------------------------------- Conda is not only useful to manage python environments but can also be used as a user space package manager. Dates in the tag (for eg. 2020.07.23.dev0) are from the developer branch. Please use released tags for stability. -We have three different packages available: - - * **slsdetlib** shared libraries and command line utilities - * **slsdetgui** GUI - * **slsdet** Python bindings +We have four different packages available: + ============== ============================================= + Package Description + ============== ============================================= + slsdetlib shared libraries and command line utilities + slsdetgui GUI + slsdet Python bindings + moenchzmq moench + ============== ============================================= .. code-block:: bash @@ -38,7 +62,7 @@ We have three different packages available: #ready to use sls_detector_get exptime - etc ... + ... .. code-block:: bash @@ -50,14 +74,33 @@ We have three different packages available: conda search slsdet # gui conda search slsdetgui + # moench + conda search moenchzmq +.. _pip: + +2. Pip +------- +The Python extension module ``slsdet`` can be installed using pip. This is available from v9.2.0 onwards. + +.. code-block:: bash + + #Install the Python extension module from PyPI + pip install slsdet + + # or install the python extension locally from source + git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch 9.2.0 + cd slsDetectorPackage + pip install . -Build from source -------------------- +.. _build from source: -1. Download Source Code from github +3. Build from source +------------------------- + +3.1. Download Source Code from github ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash @@ -72,28 +115,53 @@ Build from source -2. Build from Source +3.2. Build from Source ^^^^^^^^^^^^^^^^^^^^^^^^^^ -Build using CMake -^^^^^^^^^^^^^^^^^^^^^^ +One can either build using cmake or use the in-built cmk.sh script. + +3.2.1. Build using CMake +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + .. code-block:: bash # outside slsDetecorPackage folder mkdir build && cd build - # configure & generate Makefiles using cmake - # by listing all your options (alternately use ccmake described below) - # cmake3 for some systems - cmake ../slsDetectorPackage -DCMAKE_INSTALL_PREFIX=/your/install/path + # configure & generate Makefiles using cmake by listing all your options + # (alternately use ccmake described below) + # cmake3 instead of cmake for some systems + + # eg. enable gui option (without conda) + cmake ../slsDetectorPacakge -DSLS_USE_GUI=ON + # eg. enable python from virtual env, hdf5 and simulator options + cmake ../slsDetectorPackage -DSLS_USE_PYTHON=ON -DPython_FIND_VIRTUALENV=ONLY -DSLS_USE_HDF5=ON -DSLS_USE_SIMULATOR=ON # compiled to the build/bin directory make -j12 #or whatever number of cores you are using to build + +To install in a clean custom directory and to use the slsDetectorPackage +libraries and headers in your project, specify the install directory +(eg. /your/install/path). + +.. code-block:: bash + + # outside slsDetecorPackage folder + mkdir build && cd build + # configure & generate Makefiles + cmake ../slsDetectorPackage -DCMAKE_INSTALL_PREFIX=/your/install/path + # compile + make -j12 # install headers and libs in /your/install/path directory make install +.. note :: + + Please refer to `api examples `__ + on how to compile your project using the installed headers and libs. + Instead of the cmake command, one can use ccmake to get a list of options to configure and generate Makefiles at ease. @@ -103,7 +171,7 @@ Instead of the cmake command, one can use ccmake to get a list of options to con ccmake .. # choose the options - # first press [c] - configure (maybe multiple times till you see [g]) + # first press [c] - configure (until you see [g]) # then press [g] - generate @@ -122,8 +190,8 @@ Example cmake options Comment For v7.x.x of slsDetectorPackage and older, refer :ref:`zeromq notes for cmake option to hint library location. ` -Build using in-built cmk.sh script -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +3.2.2. Build using in-built cmk.sh script +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash @@ -172,10 +240,10 @@ Build using in-built cmk.sh script For v7.x.x of slsDetectorPackage and older, refer :ref:`zeromq notes for cmk script option to hint library location. ` -Build on old distributions -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +3.3. Build on old distributions using conda +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If your linux distribution doesn't come with a C++11 compiler (gcc>4.8) then +If your linux distribution doesn't come with a C++17 compiler (gcc>8) then it's possible to install a newer gcc using conda and build the slsDetectorPackage using this compiler @@ -197,10 +265,11 @@ using this compiler -Build slsDetectorGui (Qt5) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +3.4. Build slsDetectorGui (Qt5) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 1. Using pre-built binary on conda + .. code-block:: bash conda create -n myenv slsdetgui=7.0.0 @@ -208,13 +277,22 @@ Build slsDetectorGui (Qt5) 2. Using system installation on RHEL7 + .. code-block:: bash yum install qt5-qtbase-devel.x86_64 yum install qt5-qtsvg-devel.x86_64 +3. Using system installation on RHEL8 + + .. code-block:: bash + + yum install qt5-qtbase-devel.x86_64 + yum install qt5-qtsvg-devel.x86_64 + yum install expat-devel.x86_64 + +4. Using conda -3. Using conda .. code-block:: bash #Add channels for dependencies and our library @@ -248,8 +326,8 @@ Build slsDetectorGui (Qt5) -Build this documentation -^^^^^^^^^^^^^^^^^^^^^^^^ +3.5. Build this documentation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The documentation for the slsDetectorPackage is build using a combination of Doxygen, Sphinx and Breathe. The easiest way to install the dependencies @@ -271,17 +349,19 @@ is to use conda make rst # rst only, saves time in case the API did not change -Pybind and Zeromq -^^^^^^^^^^^^^^^^^^^ +4. Pybind and Zeromq +------------------------- .. _pybind for different slsDetectorPackage versions: -| **Pybind for Python** -| v8.0.0+: -| pybind11 (v2.11.0) is built -| * by default from tar file in repo (libs/pybind/v2.11.0.tar.gz) +| **Pybind11 for Python** +| v8.0.0+: +| pybind11 is built +| * by default from tar file in repo (libs/pybind/v2.1x.0.tar.gz) | * or use advanced option SLS_FETCH_PYBIND11_FROM_GITHUB [`link `__]. +| * v9.0.0+: pybind11 (v2.13.6) +| * v8.x.x : pybind11 (v2.11.0) | | v7.x.x: | pybind11 packaged into 'libs/pybind'. No longer a submodule. No need for "recursive" or "submodule update". @@ -312,7 +392,7 @@ Pybind and Zeromq | * or use advanced option SLS_FETCH_ZMQ_FROM_GITHUB [`link `__]. | | v7.x.x and older: -| zeromq must be installed and one can hint its location using +| zeromq-devel must be installed and one can hint its location using | * cmake option:'-DZeroMQ_HINT=/usr/lib64' or | * option '-q' in cmk.sh script: : ./cmk.sh -cbj5 -q /usr/lib64 | * 'zeromq' dependency added when installing using conda diff --git a/docs/src/masterfileattributes.rst b/docs/src/masterfileattributes.rst new file mode 100644 index 000000000..5190ee647 --- /dev/null +++ b/docs/src/masterfileattributes.rst @@ -0,0 +1,362 @@ + +.. _master file attributes: + +Master File Attributes +======================= + +These attributes are the same in binary and HDF5 file, but vary depending on detector type. + + +Eiger +^^^^^ + + +-----------------------+-------------------------------------------------+ + | **Key** | **Description** | + +-----------------------+-------------------------------------------------+ + | Version | Version of the master file | + | | Current value:8.0 | + +-----------------------+-------------------------------------------------+ + | Timestamp | Timestamp of creation of master file | + +-----------------------+-------------------------------------------------+ + | Detector Type | Detector type | + +-----------------------+-------------------------------------------------+ + | Timing Mode | Timing Mode | + +-----------------------+-------------------------------------------------+ + | Geometry | Number of UDP ports in x and y dimension for | + | | complete detector | + +-----------------------+-------------------------------------------------+ + | Image Size in bytes | Image size in bytes per UDP port | + +-----------------------+-------------------------------------------------+ + | Pixels | Number of pixels in x and y dimension | + | | per UDP port | + +-----------------------+-------------------------------------------------+ + | Max Frames Per File | Maximum frames per file | + +-----------------------+-------------------------------------------------+ + | Frame Discard Policy | Receiever Frame discard policy | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Frame Padding | Receiver Frame padding enable | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Scan Parameters | Scanning mode on detector | + +-----------------------+-------------------------------------------------+ + | Total Frames | Total number of frames and triggers expected | + +-----------------------+-------------------------------------------------+ + | Receiver Roi | Receiver ROI in file including xmax and ymax | + +-----------------------+-------------------------------------------------+ + | Dynamic Range | Bits per pixel | + +-----------------------+-------------------------------------------------+ + | Ten Giga | 10GbE enable for data | + +-----------------------+-------------------------------------------------+ + | Exptime | Exposure time | + +-----------------------+-------------------------------------------------+ + | Period | Period between frames | + +-----------------------+-------------------------------------------------+ + | Threshold Energy | Threshold energy | + +-----------------------+-------------------------------------------------+ + | Sub Exptime | Sub exposure time in 32 bit mode | + +-----------------------+-------------------------------------------------+ + | Sub Period | Sub period between frames in 32 bit mode | + +-----------------------+-------------------------------------------------+ + | Quad | Quad enable (hardware) | + +-----------------------+-------------------------------------------------+ + | Number of rows | Number of rows enabled for readout | + +-----------------------+-------------------------------------------------+ + | Rate Corrections | Rate Corrections | + +-----------------------+-------------------------------------------------+ + | Frames in File | Number of frames written to file by Receiver 0 | + +-----------------------+-------------------------------------------------+ + | Frame Header Format | Expected frame header format for the data files | + +-----------------------+-------------------------------------------------+ + + +Jungfrau +^^^^^^^^ + + +-----------------------+-------------------------------------------------+ + | **Key** | **Description** | + +-----------------------+-------------------------------------------------+ + | Version | Version of the master file | + | | Current value:8.0 | + +-----------------------+-------------------------------------------------+ + | Timestamp | Timestamp of creation of master file | + +-----------------------+-------------------------------------------------+ + | Detector Type | Detector type | + +-----------------------+-------------------------------------------------+ + | Timing Mode | Timing Mode | + +-----------------------+-------------------------------------------------+ + | Geometry | Number of UDP ports in x and y dimension for | + | | complete detector | + +-----------------------+-------------------------------------------------+ + | Image Size in bytes | Image size in bytes per UDP port | + +-----------------------+-------------------------------------------------+ + | Pixels | Number of pixels in x and y dimension | + | | per UDP port | + +-----------------------+-------------------------------------------------+ + | Max Frames Per File | Maximum frames per file | + +-----------------------+-------------------------------------------------+ + | Frame Discard Policy | Receiever Frame discard policy | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Frame Padding | Receiver Frame padding enable | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Scan Parameters | Scanning mode on detector | + +-----------------------+-------------------------------------------------+ + | Total Frames | Total number of frames and triggers expected | + +-----------------------+-------------------------------------------------+ + | Receiver Roi | Receiver ROI in file including xmax and ymax | + +-----------------------+-------------------------------------------------+ + | Exptime | Exposure time | + +-----------------------+-------------------------------------------------+ + | Period | Period between frames | + +-----------------------+-------------------------------------------------+ + | Number of UDP | Number of UDP Interfaces enabled per module | + | Interfaces | | + +-----------------------+-------------------------------------------------+ + | Number of rows | Number of rows enabled for readout | + +-----------------------+-------------------------------------------------+ + | Frames in File | Number of frames written to file by Receiver 0 | + +-----------------------+-------------------------------------------------+ + | Frame Header Format | Expected frame header format for the data files | + +-----------------------+-------------------------------------------------+ + +Gotthard II +^^^^^^^^^^^^ + + +-----------------------+-------------------------------------------------+ + | **Key** | **Description** | + +-----------------------+-------------------------------------------------+ + | Version | Version of the master file | + | | Current value:8.0 | + +-----------------------+-------------------------------------------------+ + | Timestamp | Timestamp of creation of master file | + +-----------------------+-------------------------------------------------+ + | Detector Type | Detector type | + +-----------------------+-------------------------------------------------+ + | Timing Mode | Timing Mode | + +-----------------------+-------------------------------------------------+ + | Geometry | Number of UDP ports in x and y dimension for | + | | complete detector | + +-----------------------+-------------------------------------------------+ + | Image Size in bytes | Image size in bytes per UDP port | + +-----------------------+-------------------------------------------------+ + | Pixels | Number of pixels in x and y dimension | + | | per UDP port | + +-----------------------+-------------------------------------------------+ + | Max Frames Per File | Maximum frames per file | + +-----------------------+-------------------------------------------------+ + | Frame Discard Policy | Receiever Frame discard policy | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Frame Padding | Receiver Frame padding enable | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Scan Parameters | Scanning mode on detector | + +-----------------------+-------------------------------------------------+ + | Total Frames | Total number of frames and triggers expected | + +-----------------------+-------------------------------------------------+ + | Receiver Roi | Receiver ROI in file including xmax and ymax | + +-----------------------+-------------------------------------------------+ + | Exptime | Exposure time | + +-----------------------+-------------------------------------------------+ + | Period | Period between frames | + +-----------------------+-------------------------------------------------+ + | Burst Mode | Burst mode of detector | + +-----------------------+-------------------------------------------------+ + | Frames in File | Number of frames written to file by Receiver 0 | + +-----------------------+-------------------------------------------------+ + | Frame Header Format | Expected frame header format for the data files | + +-----------------------+-------------------------------------------------+ + +Mythen3 +^^^^^^^ + + + +-----------------------+-------------------------------------------------+ + | **Key** | **Description** | + +-----------------------+-------------------------------------------------+ + | Version | Version of the master file | + | | Current value:8.0 | + +-----------------------+-------------------------------------------------+ + | Timestamp | Timestamp of creation of master file | + +-----------------------+-------------------------------------------------+ + | Detector Type | Detector type | + +-----------------------+-------------------------------------------------+ + | Timing Mode | Timing Mode | + +-----------------------+-------------------------------------------------+ + | Geometry | Number of UDP ports in x and y dimension for | + | | complete detector | + +-----------------------+-------------------------------------------------+ + | Image Size in bytes | Image size in bytes per UDP port | + +-----------------------+-------------------------------------------------+ + | Pixels | Number of pixels in x and y dimension | + | | per UDP port | + +-----------------------+-------------------------------------------------+ + | Max Frames Per File | Maximum frames per file | + +-----------------------+-------------------------------------------------+ + | Frame Discard Policy | Receiever Frame discard policy | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Frame Padding | Receiver Frame padding enable | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Scan Parameters | Scanning mode on detector | + +-----------------------+-------------------------------------------------+ + | Total Frames | Total number of frames and triggers expected | + +-----------------------+-------------------------------------------------+ + | Receiver Roi | Receiver ROI in file including xmax and ymax | + +-----------------------+-------------------------------------------------+ + | Dynamic Range | Bits per pixel | + +-----------------------+-------------------------------------------------+ + | Ten Giga | 10GbE enable for data | + +-----------------------+-------------------------------------------------+ + | Period | Period between frames | + +-----------------------+-------------------------------------------------+ + | Counter Mask | Mask of counters enabled | + +-----------------------+-------------------------------------------------+ + | Exptime1 | Exposure time of counter 1 | + +-----------------------+-------------------------------------------------+ + | Exptime2 | Exposure time of counter 2 | + +-----------------------+-------------------------------------------------+ + | Exptime3 | Exposure time of counter 3 | + +-----------------------+-------------------------------------------------+ + | GateDelay1 | Gate delay of counter 1 | + +-----------------------+-------------------------------------------------+ + | GateDelay2 | Gate delay of counter 2 | + +-----------------------+-------------------------------------------------+ + | GateDelay3 | Gate delay of counter 3 | + +-----------------------+-------------------------------------------------+ + | Gates | Number of gates | + +-----------------------+-------------------------------------------------+ + | Threshold energies | Threshold energy of all 3 counters | + +-----------------------+-------------------------------------------------+ + | Frames in File | Number of frames written to file by Receiver 0 | + +-----------------------+-------------------------------------------------+ + | Frame Header Format | Expected frame header format for the data files | + +-----------------------+-------------------------------------------------+ + + +Moench +^^^^^^ + + +-----------------------+-------------------------------------------------+ + | **Key** | **Description** | + +-----------------------+-------------------------------------------------+ + | Version | Version of the master file | + | | Current value:8.0 | + +-----------------------+-------------------------------------------------+ + | Timestamp | Timestamp of creation of master file | + +-----------------------+-------------------------------------------------+ + | Detector Type | Detector type | + +-----------------------+-------------------------------------------------+ + | Timing Mode | Timing Mode | + +-----------------------+-------------------------------------------------+ + | Geometry | Number of UDP ports in x and y dimension for | + | | complete detector | + +-----------------------+-------------------------------------------------+ + | Image Size in bytes | Image size in bytes per UDP port | + +-----------------------+-------------------------------------------------+ + | Pixels | Number of pixels in x and y dimension | + | | per UDP port | + +-----------------------+-------------------------------------------------+ + | Max Frames Per File | Maximum frames per file | + +-----------------------+-------------------------------------------------+ + | Frame Discard Policy | Receiever Frame discard policy | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Frame Padding | Receiver Frame padding enable | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Scan Parameters | Scanning mode on detector | + +-----------------------+-------------------------------------------------+ + | Total Frames | Total number of frames and triggers expected | + +-----------------------+-------------------------------------------------+ + | Receiver Roi | Receiver ROI in file including xmax and ymax | + +-----------------------+-------------------------------------------------+ + | Exptime | Exposure time | + +-----------------------+-------------------------------------------------+ + | Period | Period between frames | + +-----------------------+-------------------------------------------------+ + | Number of UDP | Number of UDP Interfaces enabled per module | + | Interfaces | | + +-----------------------+-------------------------------------------------+ + | Number of rows | Number of rows enabled for readout | + +-----------------------+-------------------------------------------------+ + | Frames in File | Number of frames written to file by Receiver 0 | + +-----------------------+-------------------------------------------------+ + | Frame Header Format | Expected frame header format for the data files | + +-----------------------+-------------------------------------------------+ + + +Chip Test Board +^^^^^^^^^^^^^^^ + + + +-----------------------+-------------------------------------------------+ + | **Key** | **Description** | + +-----------------------+-------------------------------------------------+ + | Version | Version of the master file | + | | Current value:8.0 | + +-----------------------+-------------------------------------------------+ + | Timestamp | Timestamp of creation of master file | + +-----------------------+-------------------------------------------------+ + | Detector Type | Detector type | + +-----------------------+-------------------------------------------------+ + | Timing Mode | Timing Mode | + +-----------------------+-------------------------------------------------+ + | Geometry | Number of UDP ports in x and y dimension for | + | | complete detector | + +-----------------------+-------------------------------------------------+ + | Image Size in bytes | Image size in bytes per UDP port | + +-----------------------+-------------------------------------------------+ + | Pixels | Number of pixels in x and y dimension | + | | per UDP port | + +-----------------------+-------------------------------------------------+ + | Max Frames Per File | Maximum frames per file | + +-----------------------+-------------------------------------------------+ + | Frame Discard Policy | Receiever Frame discard policy | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Frame Padding | Receiver Frame padding enable | + | | for partial frames | + +-----------------------+-------------------------------------------------+ + | Scan Parameters | Scanning mode on detector | + +-----------------------+-------------------------------------------------+ + | Total Frames | Total number of frames and triggers expected | + +-----------------------+-------------------------------------------------+ + | Receiver Roi | Receiver ROI in file including xmax and ymax | + +-----------------------+-------------------------------------------------+ + | Exptime | Exposure time | + +-----------------------+-------------------------------------------------+ + | Period | Period between frames | + +-----------------------+-------------------------------------------------+ + | Ten Giga | Ten giga enable | + +-----------------------+-------------------------------------------------+ + | ADC Mask | Mask of channels enabled in ADC | + +-----------------------+-------------------------------------------------+ + | Analog Flag | Analog readout enable | + +-----------------------+-------------------------------------------------+ + | Analog Samples | Number of analog samples | + +-----------------------+-------------------------------------------------+ + | Digital Flag | Digital readout enable | + +-----------------------+-------------------------------------------------+ + | Digital Samples | Number of digital samples | + +-----------------------+-------------------------------------------------+ + | Dbit Offset | Digital offset of valid data in bytes | + +-----------------------+-------------------------------------------------+ + | Dbit Reorder | Reorder such that it groups each signal (0-63) | + | | from all the different samples together | + +-----------------------+-------------------------------------------------+ + | Dbit Bitset | Digital 64 bit mask of bits enabled in receiver | + +-----------------------+-------------------------------------------------+ + | Transceiver Mask | Mask of channels enabled in Transceiver | + +-----------------------+-------------------------------------------------+ + | Transceiver Flag | Transceiver readout enable | + +-----------------------+-------------------------------------------------+ + | Transceiver Samples | Number of transceiver samples | + +-----------------------+-------------------------------------------------+ + | Frames in File | Number of frames written to file by Receiver 0 | + +-----------------------+-------------------------------------------------+ + | Frame Header Format | Expected frame header format for the data files | + +-----------------------+-------------------------------------------------+ \ No newline at end of file diff --git a/docs/src/multidet.rst b/docs/src/multidet.rst new file mode 100644 index 000000000..4e74854c8 --- /dev/null +++ b/docs/src/multidet.rst @@ -0,0 +1,230 @@ +.. _using multiple detectors: + +Using multiple detectors +========================== + +The slsDetectorPackage supports using several detectors on the same computer. +This can either be two users, that need to use the same computer without interfering +with each other, or the same user that wants to use multiple detectors at the same time. +The detectors in turn can consist of multiple modules. For example, a 9M Jungfrau detector +consists of 18 modules which typically are addressed at once as a single detector. + +.. note :: + + To address a single module of a multi-module detector you can use the module index. + + - Command line: :ref:`cl-module-index-label` + - Python: :ref:`py-module-index-label` + + +Coming back to multiple detectors we have two tools to our disposal: + +#. Detector index +#. The SLSDETNAME environment variable + +They can be used together or separately depending on the use case. + +Detector index +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +When configuring a detector you can specify a detector index. The default is 0. + +**Command line** + +.. code-block:: bash + + # Given that we have two detectors (my-det and my-det2) that we want to use, + # we can configure them with different indices. + + # Configure the first detector with index 0 + $ sls_detector_put hostname my-det + + # Set number of frames for detector 0 to 10 + $ sls_detector_put frames 10 + + + # + #Configure the second detector with index 1 (notice the 1- before hostname) + $ sls_detector_put 1-hostname my-det2 + + + # Further configuration + ... + + # Set number of frames for detector 1 to 19 + $ sls_detector_put 1-frames 19 + + # Note that if we call sls_detector_get without specifying the index, + # it will return the configuration of detector 0 + $ sls_detector_get frames + 10 + +The detector index is added to the name of the shared memory segment, so in this case +the shared memory segments would be: + +.. code-block:: bash + + + #First detector + /dev/shm/slsDetectorPackage_detector_0 + /dev/shm/slsDetectorPackage_detector_0_module_0 + + #Second detector + /dev/shm/slsDetectorPackage_detector_1 + /dev/shm/slsDetectorPackage_detector_1_module_0 + + +**Python** + +The main difference between the command line and the Python API is that you set the index +when you create the detector object and you don't have to repeat it for every call. + +The C++ API works int the same way. + +.. code-block:: python + + from slsdet import Detector + + + # The same can be achieved in Python by creating a detector object with an index. + # Again we have two detectors (my-det and my-det2) that we want to use: + + # Configure detector with index 0 + d = Detector() + + # If the detector has already been configured and has a shared memory + # segment, you can omit setting the hostname again + d.hostname = 'my-det' + + #Further configuration + ... + + # Configure a second detector with index 1 + d2 = Detector(1) + d2.hostname = 'my-det2' + + d.frames = 10 + d2.frames = 19 + + +$SLSDETNAME +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +To avoid interfering with other users on shared PCs it is best to always set the SLSDETNAME environmental variable. +Imagining a fictive user: Anna, we can set SLSDETNAME from the shell before configuring the detector: + +**Command line** + +.. code-block:: bash + + # Set the SLSDETNAME variable + $ export SLSDETNAME=Anna + + # You can check that it is set + $ echo $SLSDETNAME + Anna + + # Now configures a detector with index 0 and prefixed with the name Anna + # /dev/shm/slsDetectorPackage_detector_0_Anna + $ sls_detector_put hostname my-det + + +.. tip :: + + Set SLSDETNAME in your .bashrc in order to not forget it when opening a new terminal. + + +**Python** + +With python the best way is to set the SLSDETNAME from the command line before starting the python interpreter. + +Bash: + +.. code-block:: bash + + $ export SLSDETNAME=Anna + +Python: + +.. code-block:: python + + from slsdet import Detector + + # Now configures a detector with index 0 and prefixed with the name Anna + # /dev/shm/slsDetectorPackage_detector_0_Anna + d = Detector() + d.hostname = 'my-det' + +You can also set SLSDETNAME from within the Python interpreter, but you have to be aware that it will only +affect the current process and not the whole shell session. + +.. code-block:: python + + import os + os.environ['SLSDETNAME'] = 'Anna' + + # You can check that it is set + print(os.environ['SLSDETNAME']) # Output: Anna + + #Now SLSDETNAME is set to Anna but as soon as you exit the python interpreter + # it will not be set anymore + +.. note :: + + Python has two ways of reading environment variables: `**os.environ**` as shown above which throws a + KeyError if the variable is not set and `os.getenv('SLSDETNAME')` which returns None if the variable is not set. + + For more details see the official python documentation on: https://docs.python.org/3/library/os.html#os.environ + + +Checking for other detectors +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +If using shared accounts on a shared computer (which you anyway should not do), it is good practice to check +if there are other detectors configured by other users before configuring your own detector. + +You can do this by listing the files in the shared memory directory `/dev/shm/` that start with `sls`. In this +example we can see that two single module detectors are configured one with index 0 and one with index 1. +SLSDETNAME is set to `Anna` so it makes sense to assume that she is the user that configured these detectors. + + +.. code-block:: bash + + # List the files in /dev/shm that starts with sls + $ ls /dev/shm/sls* + /dev/shm/slsDetectorPackage_detector_0_Anna + /dev/shm/slsDetectorPackage_detector_0_module_0_Anna + /dev/shm/slsDetectorPackage_detector_1_Anna + /dev/shm/slsDetectorPackage_detector_1_module_0_Anna + +We also provide a command: user, which gets information about the shared memory segment that +the client points to without doing any changes. + +.. code-block:: bash + + #in this case 3 simulated Mythen3 modules + $ sls_detector_get user + user + Hostname: localhost+localhost+localhost+ + Type: Mythen3 + PID: 1226078 + User: l_msdetect + Date: Mon Jun 2 05:46:20 PM CEST 2025 + + +Other considerations +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The shared memory is not the only way to interfere with other users. You also need to make sure that you are not +using the same: + +* rx_tcpport +* Unique combination of udp_dstip and udp_dstport +* rx_zmqport +* zmqport + +.. attention :: + + The computer that you are using need to have enough resources to run multiple detectors at the same time. + This includes CPU and network bandwidth. Please coordinate with the other users! + diff --git a/docs/src/pattern.rst b/docs/src/pattern.rst new file mode 100644 index 000000000..d3515d941 --- /dev/null +++ b/docs/src/pattern.rst @@ -0,0 +1,130 @@ +Pattern +======================== + +This is a test and development feature implemented only for Ctb, Xilinx_Ctb and Mythen3. + +A pattern is a sequence of 64-bit words which is executed using a clock on the FPGA. Each of the 64 bits is connected to a pin or internal signal of the FPGA. The purpose of a pattern is to provide a way to change these 64 signals with precise timing. Commands run by the detector server could manipulate the same signals as the pattern, but they cannot enforce a change in a specific clock cycle. + +**Usage** + +A pattern is written to memory on the FPGA using the patword command. + +.. code-block:: + + patword 0x0000 0x000000000000000A + patword 0x0001 0x000000000000000B + patword 0x0002 0x000000000000000C + patword 0x0003 0x000000000000000D + patword 0x0004 0x000000000000000E + +The example above writes a five-word pattern into FPGA memory. The first argument is the memory address, the second argument is the content to be written into this address. Before executing a pattern one has to set the address limits of the pattern: + +.. code-block:: + + patlimits 0x0000 0x0004 + +This instructs the firmware to execute the commands from address 0 to 4 (including 0 and 4). The execution can be started from the pyctbgui or with the commands + +.. code-block:: + + start [Ctb, Xilinx_Ctb] + patternstart [Mythen3, Ctb, Xilinx_Ctb] + +The maximal number of patword addresses is 8192. However, it is possible to extend the length of the pattern sequence using loops and wait commands. Loops can be configured with the following commands: + +.. code-block:: + + patloop 0 0x0001 0x0003 + patnloop 0 7 + +The first argument of both commands is the ID of the loop. Ctb and Xilinx_Ctb can have 6 loops (ID 0-5), Mythen3 can have 4 loop definitions. The commands above configure the loop with ID 0 to run 7 times and jump from the patword with address 3 to the patword with address 1. Important: If patnloop is set to 1, the addresses 0x1-0x3 will execute exactly once; if it is set to 0, the pattern addresses will be skipped. + +The same idea is used to introduce wait times. The example below causes the patword at address 0x0002 to be active for 9 clock cycles before the execution continues. + +.. code-block:: + + patwait 0 0x0002 + patwaittime 0 9 + +Waits can be placed inside a loop and loops can be nested. + +**patioctrl** + +The function of each bit in the sequence of 64-bit words depends on the connected detector and firmware version. Some of the 64 bits might connect directly to pads of a chip. The patioctrl command is used to configure the direction of some of these signals (not all of them !! See tables below). Signals where the corresponding bit in the argument of patioctrl is set to 1 will be driven from the FPGA. + +**patsetbit and patmask** + +The functions patsetbit and patmask can be used to ignore a specific bit of the pattern. +Example: + +.. code-block:: + + patmask 0x0101 + patsetbit 0x0001 + +Patmask configures bit 0 and 8 of the pattern to be set to their value in patsetbit. These bits will be ignored during pattern execution and will always be 0 (bit 8) and 1 (bit 0). + +The mappings of bit positions in the pattern word to signals/pads of the FPGA are listed below for the three detector types where patterns are used. In the case of the two CTB's, connections of the signals to actual pads of a chip depend on the layout of the used detector adapter board. Therefore, each type of detector adapter board adds an additional mapping layer. + +**CTB Pattern Bit Mapping** + +.. table:: + + +----+---+------+----+----------+----------+----------------+ + | 63 | 62| 61-57| 56 | 55-48 | 47-32 | 31-0 | + +----+---+------+----+----------+----------+----------------+ + | A | D| --- | T | EXTIO | DO | DIO | + +----+---+------+----+----------+----------+----------------+ + +DIO: Driving the 32 FPGA pins corresponding to the lowest 32 bits of the patioctrl command. If bits in patioctrl are 0, the same bit positions in DIO will switch to input pins and connect to dbit sampling. Additionally, some of these 32 bits have an automatic override by detector-specific statemachines which is active whenever one of these statemachines is running (currently bits 7,8,11,14 and 20). + +DO: Directly connected to 16 FPGA pins. Output only. Not influenced by patioctrl. Also connected to bit 47-32 in all Ctb dbit samples. All of them can be used as dbit sample trigger. In addition, every bit of DO can be selected as trigger for sending out a udp packet with samples to the receiver. + +EXTIO: Similar to DIO, but not used as input to the fpga. With the corresponding patioctrl bits set to 0 these pins will switch to a high impedance mode and be ignored by the firmware. + +T: trigger output + +D: enable signal for digital sampling + +A: adc enable + +**Xilinx_CTB Pattern Bit Mapping** + +.. table:: + + +-------+----------------+ + | 63-32 | 31-0 | + +-------+----------------+ + | --- | DIO | + +-------+----------------+ + +DIO: Driving the 32 FPGA pins corresponding to the lowest 32 bits of the patioctrl command. If bits in patioctrl are 0, the same bit positions in DIO will switch to input pins and connect to dbit sampling. Additionally, some of these 32 bits have an automatic override by detector-specific statemachines which is active whenever these sm's are running (currently bits 7,8,11,14 and 20). + + +**Mythen3 Pattern Bit Mapping** + +.. table:: + + +-------+--------+-------+--------+------------+----------+----------+-----+-----+ + | 63-33 | 32 | 31-25 | 24 | 23 | 22 | 21 | 20 | 19 | + +-------+--------+-------+--------+------------+----------+----------+-----+-----+ + | --- | signARD| --- | CHSclk | cnt_rst | sto_rst | STATLOAD | STO | SIN | + +-------+--------+-------+--------+------------+----------+----------+-----+-----+ + +.. table:: + + +---------+-----+-------+-------+----+-------+---------+--------+ + | 18 | 17 | 16-14 | 13 | 12 | 11 | 10 | 9-0 | + +---------+-----+-------+-------+----+-------+---------+--------+ + | SR_MODE | clk | EN | PULSE | RD | CHSIN | ANAMode | TBLOAD | + +---------+-----+-------+-------+----+-------+---------+--------+ + +For Mythen3 the pattern word only connects to output pins of the FPGA when the pattern is running. Afterwards the signals will switch back to other logic in the FPGA. Both CTB's hold the last executed pattern word until a new pattern is started. + +**Relation of received data to pattern execution** + +In the default configuration the Ctb will send out udp packets to the sls_receiver for every end of a pattern execution. This behavior can be changed using STREAMING_CTRL_REG, where one can configure a bit position in the 64-bit pattern word to trigger udp packets. This allows to send more than one packet per pattern or also no packets at all. + +The "patternstart" command on the ctb exectues the pattern. As long as streaming_ctrl_reg is disabeld, every pattern execution using this command will not send UDP packets. + +For Mythen3 the sending of udp packets is not connected to pattern execution. \ No newline at end of file diff --git a/docs/src/pyPatternGenerator.rst b/docs/src/pyPatternGenerator.rst new file mode 100644 index 000000000..af078c127 --- /dev/null +++ b/docs/src/pyPatternGenerator.rst @@ -0,0 +1,34 @@ +PatternGenerator +===================================================== + +Python class to generate patterns for the Chip Test Board. + +.. code-block:: python + + from slsdet import PatternGenerator + + p = PatternGenerator() + p.SB(5) + p.PW() + p.SB(8,9) + p.PW() + p.CB(5) + +Created a pattern like this: + +.. code-block:: bash + + patword 0x0000 0x0000000000000020 + patword 0x0001 0x0000000000000320 + patword 0x0002 0x0000000000000300 + patioctrl 0x0000000000000000 + patlimits 0x0000 0x0002 + ... + +.. py:currentmodule:: slsdet + +.. autoclass:: PatternGenerator + :members: + :undoc-members: + :show-inheritance: + :inherited-members: \ No newline at end of file diff --git a/docs/src/pygettingstarted.rst b/docs/src/pygettingstarted.rst index 5caf8723e..6f234d5ae 100644 --- a/docs/src/pygettingstarted.rst +++ b/docs/src/pygettingstarted.rst @@ -6,7 +6,7 @@ Getting Started Which Python? -------------------- -We require at least Python 3.6 and strongly recommended that you don't use the system +We require at least Python 3.8 and strongly recommended that you don't use the system Python installation. The examples in this documentation uses `conda `_ since it provides good support also for non Python packages but there are also other alternatives like, pyenv. @@ -123,6 +123,47 @@ in a large detector. # Set exposure time for module 1, 5 and 7 d.setExptime(0.1, [1,5,7]) + + +.. _py-module-index-label: + +---------------------------------- +Accessing individual modules +---------------------------------- + +Using the C++ like API you can access individual modules in a large detector +by passing in the module index as an argument to the function. + +:: + + # Read the UDP destination port for all modules + >>> d.getDestinationUDPPort() + [50001, 50002, 50003] + + + # Read it for module 0 and 1 + >>> d.getDestinationUDPPort([0, 1]) + [50001, 50002] + + >>> d.setDestinationUDPPort(50010, 1) + >>> d.getDestinationUDPPort() + [50001, 50010, 50003] + +From the more pythonic API there is no way to read from only one module but you can read +and then use list slicing to get the values for the modules you are interested in. + +:: + + >>> d.udp_dstport + [50001, 50010, 50003] + >>> d.udp_dstport[0] + 50001 + + #For some but not all properties you can also pass in a dictionary with module index as key + >>> ip = IpAddr('127.0.0.1') + >>> d.udp_dstip = {1:ip} + + -------------------- Finding functions -------------------- diff --git a/docs/src/quick_start_guide.rst b/docs/src/quick_start_guide.rst index 9ccd28506..41430cb66 100644 --- a/docs/src/quick_start_guide.rst +++ b/docs/src/quick_start_guide.rst @@ -19,14 +19,14 @@ For a Single Module slsReceiver # custom port 2012 - slsReceiver -t2012 + slsReceiver -p 2012 For Multiple Modules .. code-block:: bash - # slsMultiReceiver [starting port] [number of receivers] [print each frame header for debugging] - slsMultiReceiver 2012 2 0 + # slsMultiReceiver [-p: starting port, -n: number of receivers] + slsMultiReceiver -p 2012 -n 2 Client @@ -128,6 +128,31 @@ For Multiple Modules # set file path fpath /tmp +.. note :: + The **hostname** and **detsize** command in a multi module system can affect the row and column values in the udp/zmq header. The modules are stacked row by row until they reach the y-axis limit set by detsize (if specified). Then, stacking continues in the next column and so on. + + + + + +Data +----- + +Check out the :ref:`UDP header section` for details on output UDP header data format.` + +Check out the :ref:`Detector image size and format section` for details on output data format. + + +Receiver +--------- + +When using `slsReceiver`, `slsMultiReceiver` or `slsFrameSynchronizer`, check out the following sections: + + - :ref:`File format` + - :ref:`slsReceiver header format` + - :ref:`Master file attributes` + + Gui ---- diff --git a/docs/src/receivers.rst b/docs/src/receivers.rst index 29937cf84..31ff8f734 100644 --- a/docs/src/receivers.rst +++ b/docs/src/receivers.rst @@ -1,25 +1,25 @@ -Receivers +Custom Receiver ================= -Receiver processes can be run on same or different machines as the client, receives the data from the detector (via UDP packets). -When using the slsReceiver/ slsMultiReceiver, they can be further configured by the client control software (via TCP/IP) to set file name, file path, progress of acquisition etc. +The receiver essentially listens to UDP data packets sent out by the detector. + +To know more about detector receiver setup in the config file, please check out :ref:`the detector-receiver UDP configuration in the config file` and the :ref:`detector udp format`. -To know more about detector receiver configuration, please check out :ref:`detector udp header and udp commands in the config file ` +| Please note the following when using a custom receiver: -Custom Receiver ----------------- +* **udp_dstmac** must be configured in the config file. This parameter is not required when using an in-built receiver. -| When using custom receiver with our package, ensure that **udp_dstmac** is also configured in the config file. This parameter is not required when using slsReceiver. +* Cannot use "auto" for **udp_dstip**. -| Cannot use "auto" for **udp_dstip**. +* No **rx_** commands in the config file. These commands are for configuring the slsReceiver. -| Also ensure that there are no **rx_** commands in the config file. These commands are for configuring the slsReceiver. + + +The main difference is the lack of **rx_** commands or file commands (eg. **f**write, **f**path) and the **udp_dstmac** is required in config file. Example of a custom receiver config file -* The main difference is the lack of **rx_** commands or file commands (eg. fwrite, fpath) and the udp_dstmac is required in config file. - .. code-block:: bash # detector hostname diff --git a/docs/src/serverdefaults.rst b/docs/src/serverdefaults.rst index fa372c426..6d2d76eca 100644 --- a/docs/src/serverdefaults.rst +++ b/docs/src/serverdefaults.rst @@ -89,18 +89,3 @@ DACS :widths: 35, 35 :header-rows: 1 -Gotthard -------------- - -.. csv-table:: Default values - :file: gotthard.csv - :widths: 35, 35 - :header-rows: 1 - -DACS -^^^^^^^^^^^^^ - -.. csv-table:: Gotthard DACS - :file: gotthard-dacs.csv - :widths: 35, 35 - :header-rows: 1 \ No newline at end of file diff --git a/docs/src/servers.rst b/docs/src/servers.rst index 4a0faebb9..e17a13131 100644 --- a/docs/src/servers.rst +++ b/docs/src/servers.rst @@ -1,3 +1,5 @@ +.. _detector_servers: + Getting Started =============== @@ -27,25 +29,24 @@ Arguments -p, --port : TCP communication port with client. -g, --nomodule : [Mythen3][Gotthard2] Generic or No Module mode. Skips detector type checks. - -f, --phaseshift : [Gotthard] only. Sets phase shift. -d, --devel : Developer mode. Skips firmware checks. -u, --update : Update mode. Skips firmware checks and initial detector setup. - -i, --ignore-config : [Eiger][Jungfrau][Gotthard][Gotthard2][Moench] + -i, --ignore-config : [Eiger][Jungfrau][Gotthard2][Moench] Ignore config file. - -m, --master : [Eiger][Mythen3][Gotthard][Gotthard2] + -m, --master : [Eiger][Mythen3][Gotthard2] Set Master to 0 or 1. Precedence over config file. Only for virtual servers except Eiger. -t, --top : [Eiger] Set Top to 0 or 1. Precedence over config file. -s, --stopserver : Stop server. Do not use as it is created by control server .. _Automatic start servers: + Automatic start ------------------ One can start the on-board detector server automatically upon powering on the board. -#. Create a soft link to the binary on board - : +#. Create a soft link to the binary on board: .. code-block:: bash ln -sf someDetectorServervx.x.x someDetectorServer @@ -65,7 +66,7 @@ One can start the on-board detector server automatically upon powering on the bo /home/root/executables/eigerDetectorServer &> /dev/null & exit 0 - Jungfrau | Moench | CTB | Gotthard I + Jungfrau | Moench | CTB .. code-block:: bash # Edit inittab on board @@ -87,8 +88,7 @@ One can start the on-board detector server automatically upon powering on the bo /root/xxxDetectorServer >> /dev/null & -#. Sync, reboot and verify - : +#. Sync, reboot and verify: .. code-block:: bash sync diff --git a/docs/src/serverupgrade.rst b/docs/src/serverupgrade.rst index c6fe1675a..a215da8ae 100644 --- a/docs/src/serverupgrade.rst +++ b/docs/src/serverupgrade.rst @@ -1,4 +1,5 @@ .. _Detector Server Upgrade: + Upgrade ======== diff --git a/docs/src/slsreceiver.rst b/docs/src/slsreceiver.rst index 09f9f782f..d0bceff0a 100644 --- a/docs/src/slsreceiver.rst +++ b/docs/src/slsreceiver.rst @@ -1,16 +1,78 @@ -slsReceiver/ slsMultiReceiver +In-built Receiver ================================ -| One has to start the slsReceiver before loading config file or using any receiver commands (prefix: **rx_** ) + + +The receiver essentially listens to UDP data packets sent out by the detector. It's main features are: + +- **Listening**: Receives UDP data from the detector. +- **Writing to File**: Optionally writes received data to disk. +- **Streaming via ZMQ**: Optionally streams out the data using ZeroMQ. + +Each of these operations runs asynchronously and in parallel for each UDP port. + + +.. note :: + + * Can be run on the same or different machine as the client. + * Can be configured by the client. (set file name/ discard policy, get progress etc.) + * Has to be started before the client runs any receiver specific command. + + +Receiver Variants +----------------- +There are three main receiver types. How to start them is described :ref:`below`. + ++----------------------+--------------------+-----------------------------------------+--------------------------------+ +| Receiver Type | slsReceiver | slsMultiReceiver |slsFrameSynchronizer | ++======================+====================+=========================================+================================+ +| Modules Supported | 1 | Multiple | Multiple | ++----------------------+--------------------+-----------------------------------------+--------------------------------+ +| Internal Architecture| Threads per porttt | Multiple child processes of slsReceiver | Multi-threading of slsReceiver | ++----------------------+--------------------+-----------------------------------------+--------------------------------+ +| ZMQ Streaming | Disabled by default| Disabled by default | Enabled, not optional | ++----------------------+--------------------+-----------------------------------------+--------------------------------+ +| ZMQ Synchronization | No | No | Yes, across ports | ++----------------------+--------------------+-----------------------------------------+--------------------------------+ +| Image Reconstruction | No | No | No | ++----------------------+--------------------+-----------------------------------------+--------------------------------+ + + +.. _Starting up the Receiver: + +Starting up the Receiver +------------------------- + +.. code-block:: bash + + Usage: slsReceiver Options: + -v, --version : Version. + -p, --port : TCP port to communicate with client for configuration. Non-zero and 16 bit. + -u, --uid : Set effective user id if receiver started with privileges. + + Usage: slsMultiReceiver Options: + -v, --version : Version. + -n, --num-receivers : Number of receivers. + -p, --port : TCP port to communicate with client for configuration. Non-zero and 16 bit. + -c, --callback : Enable dummy callbacks for debugging. Disabled by default. + -u, --uid : Set effective user id if receiver started with privileges. + + Usage: slsFrameSynchronizer Options: + -v, --version : Version. + -n, --num-receivers : Number of receivers. + -p, --port : TCP port to communicate with client for configuration. Non-zero and 16 bit. + -c, --print-headers : Print callback headers for debugging. Disabled by default. + -u, --uid : Set effective user id if receiver started with privileges. + + + For a Single Module .. code-block:: bash + + slsReceiver # default port 1954 - # default port 1954 - slsReceiver - - # custom port 2012 - slsReceiver -t2012 + slsReceiver -p 2012 # custom port 2012 For Multiple Modules @@ -18,57 +80,66 @@ For Multiple Modules # each receiver (for each module) requires a unique tcp port (if all on same machine) - # using slsReceiver in multiple consoles + # option 1 (one for each module) slsReceiver - slsReceiver -t1955 + slsReceiver -p 1955 - # slsMultiReceiver [starting port] [number of receivers] - slsMultiReceiver 2012 2 + # option 2 + slsMultiReceiver -p 2012 -n 2 + + # option 3 + slsFrameSynchronizer -p 2012 -n 2 - # slsMultiReceiver [starting port] [number of receivers] [print each frame header for debugging] - slsMultiReceiver 2012 2 1 Client Commands ----------------- -| One can remove **udp_dstmac** from the config file, as the slsReceiver fetches this from the **udp_ip**. +* Client commands to the receiver begin with **rx_** or **f_** (file commands). -| One can use "auto" for **udp_dstip** if one wants to use default ip of **rx_hostname**. +* **rx_hostname** has to be the first command to the receiver so the client knows which receiver process to communicate with. -| The first command to the receiver (**rx_** commands) should be **rx_hostname**. The following are the different ways to establish contact. +* Can use 'auto' for **udp_dstip** if using 1GbE interface or the :ref:`virtual simulators`. + + +To know more about detector receiver setup in the config file, please check out :ref:`the detector-receiver UDP configuration in the config file` and the :ref:`detector udp format`. + + +The following are the different ways to establish contact using **rx_hostname** command. .. code-block:: bash - # default receiver tcp port (1954) + # ---single module--- + + # default receiver port at 1954 + rx_hostname xxx + + # custom receiver port + rx_hostname xxx:1957 # option 1 + + rx_tcpport 1957 # option 2 rx_hostname xxx - # custom receiver port - rx_hostname xxx:1957 - # custom receiver port - rx_tcpport 1954 - rx_hostname xxx + # ---multi module--- - # multi modules with custom ports - rx_hostname xxx:1955+xxx:1956+ - - - # multi modules using increasing tcp ports when using multi detector command + # using increasing tcp ports rx_tcpport 1955 rx_hostname xxx - # or specify multi modules with custom ports on same rxr pc - 0:rx_tcpport 1954 + # custom ports + rx_hostname xxx:1955+xxx:1958+ # option 1 + + 0:rx_tcpport 1954 # option 2 1:rx_tcpport 1955 2:rx_tcpport 1956 rx_hostname xxx - # multi modules with custom ports on different rxr pc + # custom ports on different receiver machines 0:rx_tcpport 1954 0:rx_hostname xxx 1:rx_tcpport 1955 - 1:rx_hostname yyy + 1:rx_hostname yyyrxr | Example commands: @@ -91,245 +162,32 @@ Client Commands sls_detector_get -h rx_framescaught -ZMQ: Json Header Format ------------------------- +Example of a config file using in-built receiver +.. code-block:: bash -**Change in field names from slsDetectorPackage v6.x.x to v7.0.0** + # detector hostname + hostname bchip052+bchip053+ -* detSpec1 <- bunchId -* detSpec2 <- reserved -* detSpec3 <- debug -* detSpec4 <- roundRNumber + # udp destination port (receiver) + # sets increasing destination udp ports starting at 50004 + udp_dstport 50004 + # udp destination ip (receiver) + 0:udp_dstip 10.0.1.100 + 1:udp_dstip 10.0.2.100 -**Format** + # udp source ip (same subnet as udp_dstip) + 0:udp_srcip 10.0.1.184 + 1:udp_srcip 10.0.2.184 - .. code-block:: bash + # udp destination mac - not required (picked up from udp_dstip) + #udp_dstmac 22:47:d5:48:ad:ef - { - "jsonversion": unsigned int, - "bitmode": unsigned int, - "fileIndex": unsigned long int, - "detshape": [ - unsigned int, - unsigned int - ], - "shape": [ - unsigned int, - unsigned int - ], - "size": unsigned int, - "acqIndex": unsigned long int, - "frameIndex": unsigned long int, - "progress": double, - "fname": string, - "data": unsigned int, - "completeImage": unsigned int, + # connects to receivers at increasing tcp port starting at 1954 + rx_hostname mpc3434 + # same as rx_hostname mpc3434:1954+mpc3434:1955+ - "frameNumber": unsigned long long int, - "expLength": unsigned int, - "packetNumber": unsigned int, - "detSpec1": unsigned long int, - "timestamp": unsigned long int, - "modId": unsigned int, - "row": unsigned int, - "column": unsigned int, - "detSpec2": unsigned int, - "detSpec3": unsigned int, - "detSpec4": unsigned int, - "detType": unsigned int, - "version": unsigned int, - - "flipRows": unsigned int, - "quad": unsigned int, - "addJsonHeader": { - string : string - } - } - - +--------------+----------------------------------------------+ - | Field | Description | - +--------------+----------------------------------------------+ - | jsonversion | Version of the json header. | - | | Value at 4 for v6.x.x and v7.x.x | - +--------------+----------------------------------------------+ - | bitmode | Bits per pixel [4|8|16|32] | - +--------------+----------------------------------------------+ - | fileIndex | Current file acquisition index | - +--------------+----------------------------------------------+ - | detshape | Geometry of the entire detector | - +--------------+----------------------------------------------+ - | shape | Geometry of the current port streamed out | - +--------------+----------------------------------------------+ - | size | Size of image of current port in bytesout | - +--------------+----------------------------------------------+ - | acqIndex | Frame number from the detector (redundant) | - +--------------+----------------------------------------------+ - | frameIndex | Frame number of current acquisition | - | | (Starting at 0) | - +--------------+----------------------------------------------+ - | progress | Progress of current acquisition in % | - +--------------+----------------------------------------------+ - | fname | Current file name | - +--------------+----------------------------------------------+ - | data | 1 if there is data following | - | | 0 if dummy header | - +--------------+----------------------------------------------+ - | completeImage| 1 if no missing packets for this frame | - | | in this port, else 0 | - +--------------+----------------------------------------------+ - | frameNumber | Frame number | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | expLength | subframe number (32 bit eiger) | - | | or real time exposure time in 100ns (others) | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | packetNumber | Number of packets caught for that frame | - +--------------+----------------------------------------------+ - | detSpec1 | See :ref:`here` | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | timestamp | Timestamp with 10 MHz clock | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | modId | Module Id | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | row | Row number in detector | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | column | Column number in detector | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | detSpec2 | See :ref:`here` | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | detSpec3 | See :ref:`here` | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | detSpec4 | See :ref:`here` | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | detType | Detector type enum | - | detSpec3 | See :ref:`Detector enum` | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | version | Detector header version. At 2 | - | | [From detector udp header] | - +--------------+----------------------------------------------+ - | flipRows | 1 if rows should be flipped. | - | | Usually for Eiger bottom. | - +--------------+----------------------------------------------+ - | quad | 1 if its an Eiger quad. | - +--------------+----------------------------------------------+ - | addJsonHeader| Optional custom parameters that is required | - | | for processing code. | - +--------------+----------------------------------------------+ - - -SLS Receiver Header Format --------------------------- - -It is 112 bytes and consists of: - * 48 bytes of the SLS Detector Header (described in :ref:`the current detector header `) - * 64 bytes of packet mask - -.. code-block:: cpp - - typedef struct { - uint64_t frameNumber; - uint32_t expLength; - uint32_t packetNumber; - uint64_t detSpec1; - uint64_t timestamp; - uint16_t modId; - uint16_t row; - uint16_t column; - uint16_t detSpec2; - uint32_t detSpec3; - uint16_t detSpec4; - uint8_t detType; - uint8_t version; - } sls_detector_header; - - struct sls_receiver_header { - sls_detector_header detHeader; /**< is the detector header */ - sls_bitset packetsMask; /**< is the packets caught bit mask */ - }; - - -.. note :: - - | The packetNumber in the SLS Receiver Header will be modified to number of packets caught by receiver for that frame. For eg. Jungfrau will have 128 packets per frame. If it is less, then this is a partial frame due to missing packets. - - | Furthermore, the bit mask will specify which packets have been received. - - - - -File format --------------- - -Master file is in json format. - -The file name format is [fpath]/[fname]_dx_fy_[findex].raw, where x is module index and y is file index. **fname** is file name prefix and by default "run". **fpath** is '/' by default. - - -Each acquisition will have an increasing acquisition index or findex (if file write enabled). This can be retrieved by using **findex** command. - - -Each acquisition can have multiple files (the file index number **y**), with **rx_framesperfile** being the maximum number of frames per file. The default varies for each detector type. - - -Some file name examples: - - .. code-block:: bash - - # first file - path-to-file/run_d0_f0_0.raw - - # second file after reaching max frames in first file - path-to-file/run_d0_f1_0.raw - - # second acquisition, first file - path-to-file/run_d0_f0_1.raw - - -Each acquisition will create a master file that can be enabled/disabled using **fmaster**. This should have parameters relevant to the acquisition. - - -**Binary file format** - -This is the default file format. - - -Each data file will consist of frames, each consisting of slsReceiver Header followed by data for 1 frame. - - -Master file is of ASCII format and will also include the format of the slsReceiver Header. - - -**HDF5 file formats** - -#. Compile the package with HDF5 option enabled - - #. Using cmk script: ./cmk.sh -hj9 -d [path of hdf5 dir] - - #. Enable using cmake **-DCMAKE_INSTALL_PREFIX=/path/to/hdf/installation** and **-DSLS_USE_HDF5=ON** - -#. Start Receiver process - -#. Load config file - -#. Set file format from client or in config file - .. code-block:: bash - - sls_detector_put fformat hdf5 - - -| For multiple, modules, a virtual file linking all the modules is created. Both the data files and virtual files are linked in the master file. Performance diff --git a/docs/src/slsreceiverheaderformat.rst b/docs/src/slsreceiverheaderformat.rst new file mode 100644 index 000000000..9449db88f --- /dev/null +++ b/docs/src/slsreceiverheaderformat.rst @@ -0,0 +1,40 @@ + +.. _sls receiver header format: + +SLS Receiver Header Format +==================================================== + +It is 112 bytes and consists of: + * 48 bytes of the SLS Detector Header + * 64 bytes of packet mask + +.. code-block:: cpp + + typedef struct { + uint64_t frameNumber; + uint32_t expLength; + uint32_t packetNumber; + uint64_t detSpec1; + uint64_t timestamp; + uint16_t modId; + uint16_t row; + uint16_t column; + uint16_t detSpec2; + uint32_t detSpec3; + uint16_t detSpec4; + uint8_t detType; + uint8_t version; + } sls_detector_header; + + struct sls_receiver_header { + sls_detector_header detHeader; /**< is the detector header */ + sls_bitset packetsMask; /**< is the packets caught bit mask */ + }; + + + +| **sls_detector_header** (described in :ref:`the current detector header `) + +| The **packetNumber** from detector UDP header is modified in **sls_receiver_header** to number of packets caught by receiver for that frame and the bit mask for each packet caught is the **packetsMask**. The packetsMask is a total of 512 bits due to the largest number of packets per frame among our detectors. + +| For eg. Jungfrau has 128 packets per frame. If **packetNumeber** is 128, then this frame is complete. If it is 127 or less, it is a partial frame due to missing packets. If one would still like to use it, the **packetsMask** will specify which packet has been received or is missing. diff --git a/docs/src/softwarearchitecture.rst b/docs/src/softwarearchitecture.rst new file mode 100644 index 000000000..b4c56dc86 --- /dev/null +++ b/docs/src/softwarearchitecture.rst @@ -0,0 +1,147 @@ +.. _software architecture: + +Software Architecture +================================ + + +Introduction +------------------------------------ + +.. figure:: images/System_communication_architecture.png + :target: _images/System_communication_architecture.png + :width: 700px + :align: center + :alt: System communication architecture + + Software Communication Architecture + + +**Detector** + +A detector can consist of a single module or multiple modules combined. + +**Module** + +Each module sends its data via UDP over distinct ports. Since UDP does not provide acknowledgements, data is transmitted as fast as possible, which can lead to packet loss if the network is not properly configured, among other causes. A single image streamed out could be split into multiple UDP packets and each module can have one or two UDP ports to transmit in parallel different physical sections of the image. + +**Receiver** + +UDP data is received by one or more receivers—either built-in or custom. In the diagram above, there is one built-in receiver per module (1:1). For example, a detector with two modules (two hostnames) will have two built-in receivers. Each receiver could listen to one or two UDP ports (depending on the module it listens to). For each UDP port, the receiver reassembles these packets into sub-images and optionally saved to file. + +**ZMQ** + +Each UDP port in the receiver can also stream out independently sub-images via ZMQ (core: TCP/IP). + +* Directly to the GUI for display. +* To an external processing chain for post-processing and optional storage, which can in turn stream the processed data back to the GUI. + +**Client** + +A single client can configure and control individual modules and receivers, or multiple of them in parallel. This communication is handled over TCP/IP, ensuring acknowledgements. + +It can also listen to multiple ZMQ sockets from the Receiver(s) or the external processing chain to assemble the full image for GUI display or Client call backs. + +Next, each component is examined in detail. + +Module +------- + +.. figure:: images/Module_architecture.png + :target: _images/Module_architecture.png + :width: 700px + :align: center + :alt: Module architecture + + Module Architecture + + +**Detector Server** + +The module contains an onboard CPU (type depends on the detector — e.g., Nios for Mythen3, Blackfin for Jungfrau). The detector server and detector configuration files are stored here, with the server compiled in C using the CPU-specific compiler. Running the binary starts a Control Server and a Stop Server. Client control/configuration requests go to the Control Server via the TCP control port, while stop/status requests go to the Stop Server via the TCP stop port as the Control Server may be busy with an acquisition. For more details see :ref:`detector server ` and :ref:`detector simulators` to play around with. + +**Firmware** + +The module also includes an FPGA with VHDL firmware (file format depends on the detector — e.g., Mythen3 uses .rbf, Jungfrau uses .pof). Client requests trigger register read/write operations in the FPGA, which manages chip readout and processing. Data from the chips is sent through a UDP generator in the FPGA and output as UDP packets via the UDP port. A single image may be split across multiple packets. A module could have 1 or 2 UDP ports to transmit in parallel different physical sections of the image. + +Upgrade +^^^^^^^^ + +.. figure:: images/Soft_upgrade_components.png + :target: _images/Soft_upgrade_components.png + :width: 700px + :align: center + :alt: Software Upgrade Components + + Software Upgrade Components + +There are mainly three components to the soft upgrade: + +* Detector Server upgrade: The server running on the module. +* Firmware upgrade: The VHDL code running on the FPGA. +* slsDetectorPackage upgrade: The client code running on the host PC to control the module(s) and receiver(s) if any. + +Please use the `update command `_ when updating both the server and firmware simulataneously and `programfpga command `_ when only updating the firmware. See :ref:`firmware upgrade ` for details. + +When only updating the detector server, use the `updatedetectorserver command `_ command. See :ref:`detector server upgrade ` for details. + +.. note:: + + **Compatibility** + + When updating anything on the module via the client (server or firmware), the server and client will have to be compatible (same major version). If not, the client and server will not communicate properly. + + Since they are ideally compatible before the upgrade, upgrade the server and firmware first, then the slsDetectorPackage. + + + +Receiver +-------- + +.. figure:: images/Receiver_architecture.png + :target: _images/Receiver_architecture.png + :align: center + :alt: Receiver Architecture + + Receiver Architecture + +The receiver mainly consists of: + +* A TCP server that listens to client TCP requests for configuration and control. +* One or 2 listeners that listen to a UDP port each, reassembling the UDP packets into sub-images in memory. +* One or 2 data processors that processes the sub-images with optional callbacks for online processing and file writing. +* One or 2 data streamers that stream the processed sub-images to the GUI or external processing chain via ZMQ. + +Few characteristics of the receiver: + +* It can be run on the same host as the client or on a different host. +* There is a receiver process for every module and a file for every UDP port. +* Each receiver process is independent and asynchronized for performance. So are the UDP ports. + + +Client +-------- + +.. figure:: images/Client_architecture.png + :target: _images/Client_architecture.png + :align: center + :alt: Client Architecture + + Client Architecture + +Users can control the detector and receivers through four interfaces: + +* their C++ API, +* their Python API, +* the command-line interface, or +* the Qt-based GUI. + +Regardless of the interface, each ultimately invokes our Detector class—either directly (CLI and GUI) or through our C++/Python libraries (when using their APIs). The Detector class then calls the appropriate module functions, either for a specific module or in parallel for all modules. Each module object sends requests over TCP to its corresponding module and, if needed, to the receiver. + +**Shared Memory** + +As the command-line interface is supported, shared memory is used to store essential information such as the module hostname and TCP port, or the receiver hostname and TCP port. This ensures the system knows which components to communicate with, without requiring the user to re-enter this information for every command-line call. + +.. note:: + + Only the client maintains shared memory. Care must be taken when multiple users operate from the same PC. See :ref:`multi detector and user section ` for more details. + diff --git a/docs/src/troubleshooting.rst b/docs/src/troubleshooting.rst index 65214846b..aae59538e 100644 --- a/docs/src/troubleshooting.rst +++ b/docs/src/troubleshooting.rst @@ -202,6 +202,56 @@ Receiver PC Tuning Options ethtool -K xth1 gro + * **permanent ethtool settings** + + There are two main methods. + + 1. ``systemd service`` (recommended for Fedora and modern RHEL) + + This is the preferred method on systems using systemd and NetworkManager, such as Fedora and RHEL 8+. + + Create a systemd service template: + .. code-block:: ini + + # /etc/systemd/system/ethtool@.service + + [Unit] + Description=Set RX buffer size with ethtool + After=network-online.target + Wants=network-online.target + + [Service] + ExecStart=/usr/sbin/ethtool -G %i rx 8192 + Type=oneshot + + [Install] + WantedBy=multi-user.target + + + Enable the service for a specific interface: + .. code-block:: bash + + sudo systemctl enable ethtool@xth1.service + + This ensures the setting is applied at every boot once the network is online. + + + 2. ``ETHTOOL_OPTS in ifcfg scripts`` (legacy method for RHEL 7 and earlier) + + This method applies only to systems using the legacy network-scripts backend, typically RHEL 7 and earlier. + + .. code-block:: bash + + # edit the corresponding ``ifcfg-*`` file + # file: /etc/sysconfig/network-scripts/ifcfg-eth0 + + # add or modify the following line: + ETHTOOL_OPTS="-K ${DEVICE} gro on; -G ${DEVICE} rx 4096; -L ${DEVICE} combined 4; -C ${DEVICE} rx-usecs 100; -C ${DEVICE} adaptive-rx on" + + # restart the interface + ifdown eth0 && ifup eth0 + + #. Disable power saving in CPU frequency scaling and set system to performance * Check current policy (default might be powersave or schedutil) .. code-block:: bash @@ -385,13 +435,13 @@ Cannot get data without a module attached You cannot get data without a module attached as a specific pin is floating. Attach module to get data. -Gotthard ----------- +Mythen3 +-------- -Missing first frame or next frame after a delay -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Connect the data link from the Module directly to receiver pc or to a private network. +Detector status is waiting even in auto timing mode +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Check if the control board or the flat band cable is connected properly. If not, connect them properly and try again. Jungfrau diff --git a/docs/src/udpconfig.rst b/docs/src/udpconfig.rst index f3e56d82a..847b11899 100644 --- a/docs/src/udpconfig.rst +++ b/docs/src/udpconfig.rst @@ -1,4 +1,4 @@ -.. _detector udp header: +.. _detector udp header config: Config file diff --git a/docs/src/udpheader.rst b/docs/src/udpheader.rst index 720aff2a9..e59cbca25 100644 --- a/docs/src/udpheader.rst +++ b/docs/src/udpheader.rst @@ -3,7 +3,7 @@ Format ======= -The UDP data format for the packets consist of a common header for all detectors, followed by the data for that one packet. +The UDP data format for the packets consist of a common header of 48 bytes for all detectors, followed by the data for that one packet. Current Version @@ -11,6 +11,25 @@ Current Version **v2.0 (slsDetectorPackage v7.0.0+)** +.. code-block:: cpp + + typedef struct { + uint64_t frameNumber; + uint32_t expLength; + uint32_t packetNumber; + uint64_t detSpec1; + uint64_t timestamp; + uint16_t modId; + uint16_t row; + uint16_t column; + uint16_t detSpec2; + uint32_t detSpec3; + uint16_t detSpec4; + uint8_t detType; + uint8_t version; + } sls_detector_header; + + .. table:: <---------------------------------------------------- 8 bytes per row ---------------------------------------------> :align: center :widths: 30,30,30,15,15 @@ -54,9 +73,9 @@ Description * **modId**: module ID picked up from det_id_[detector type].txt on the detector cpu. -* **row**: row position of the module in the detector system. It is calculated by the order of the module in hostname command, as well as the detsize command. +* **row**: row position of the module in the detector system. It is calculated by the order of the module in hostname command, as well as the detsize command. The modules are stacked row by row until they reach the y-axis limit set by detsize (if specified). Then, stacking continues in the next column and so on. -* **column**: column position of the module in the detector system. It is calculated by the order of the module in hostname command, as well as the detsize command. +* **column**: column position of the module in the detector system. It is calculated by the order of the module in hostname command, as well as the detsize command. The modules are stacked row by row until they reach the y-axis limit set by detsize (if specified). Then, stacking continues in the next column and so on. * **detType**: detector type from enum of detectorType in the package. @@ -73,14 +92,15 @@ Detector Enum ================ ======== GENERIC 0 EIGER 1 - GOTTHARD 2 + GOTTHARD* 2 JUNGFRAU 3 CHIPTESTBOARD 4 MOENCH 5 MYTHEN3 6 GOTTHARD2 7 ================ ======== - + + * deprecated since v10.0.0 Previous Versions diff --git a/docs/src/virtualserver.rst b/docs/src/virtualserver.rst index ae1073d8e..239e51490 100644 --- a/docs/src/virtualserver.rst +++ b/docs/src/virtualserver.rst @@ -1,4 +1,5 @@ .. _Virtual Detector Servers: + Simulators =========== @@ -22,7 +23,6 @@ Binaries eigerDetectorServer_virtual jungfrauDetectorServer_virtual - gotthardDetectorServer_virtual gotthard2DetectorServer_virtual mythen3DetectorServer_virtual moenchDetectorServer_virtual diff --git a/docs/src/zmqjsonheaderformat.rst b/docs/src/zmqjsonheaderformat.rst new file mode 100644 index 000000000..c898f97c2 --- /dev/null +++ b/docs/src/zmqjsonheaderformat.rst @@ -0,0 +1,137 @@ +ZMQ: Json Header Format +======================== + + +**Change in field names from slsDetectorPackage v6.x.x to v7.0.0** + +* detSpec1 <- bunchId +* detSpec2 <- reserved +* detSpec3 <- debug +* detSpec4 <- roundRNumber + + +**Format** + + .. code-block:: bash + + { + "jsonversion": unsigned int, + "bitmode": unsigned int, + "fileIndex": unsigned long int, + "detshape": [ + unsigned int, + unsigned int + ], + "shape": [ + unsigned int, + unsigned int + ], + "size": unsigned int, + "acqIndex": unsigned long int, + "frameIndex": unsigned long int, + "progress": double, + "fname": string, + "data": unsigned int, + "completeImage": unsigned int, + + "frameNumber": unsigned long long int, + "expLength": unsigned int, + "packetNumber": unsigned int, + "detSpec1": unsigned long int, + "timestamp": unsigned long int, + "modId": unsigned int, + "row": unsigned int, + "column": unsigned int, + "detSpec2": unsigned int, + "detSpec3": unsigned int, + "detSpec4": unsigned int, + "detType": unsigned int, + "version": unsigned int, + + "flipRows": unsigned int, + "quad": unsigned int, + "addJsonHeader": { + string : string + } + } + + +--------------+----------------------------------------------+ + | Field | Description | + +--------------+----------------------------------------------+ + | jsonversion | Version of the json header. | + | | Value at 4 for v6.x.x and v7.x.x | + +--------------+----------------------------------------------+ + | bitmode | Bits per pixel [4|8|16|32] | + +--------------+----------------------------------------------+ + | fileIndex | Current file acquisition index | + +--------------+----------------------------------------------+ + | detshape | Geometry of the entire detector | + +--------------+----------------------------------------------+ + | shape | Geometry of the current port streamed out | + +--------------+----------------------------------------------+ + | size | Size of image of current port in bytesout | + +--------------+----------------------------------------------+ + | acqIndex | Frame number from the detector (redundant) | + +--------------+----------------------------------------------+ + | frameIndex | Frame number of current acquisition | + | | (Starting at 0) | + +--------------+----------------------------------------------+ + | progress | Progress of current acquisition in % | + +--------------+----------------------------------------------+ + | fname | Current file name | + +--------------+----------------------------------------------+ + | data | 1 if there is data following | + | | 0 if dummy header | + +--------------+----------------------------------------------+ + | completeImage| 1 if no missing packets for this frame | + | | in this port, else 0 | + +--------------+----------------------------------------------+ + | frameNumber | Frame number | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | expLength | subframe number (32 bit eiger) | + | | or real time exposure time in 100ns (others) | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | packetNumber | Number of packets caught for that frame | + +--------------+----------------------------------------------+ + | detSpec1 | See :ref:`here` | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | timestamp | Timestamp with 10 MHz clock | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | modId | Module Id | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | row | Row number in detector | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | column | Column number in detector | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | detSpec2 | See :ref:`here` | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | detSpec3 | See :ref:`here` | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | detSpec4 | See :ref:`here` | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | detType | Detector type enum | + | detSpec3 | See :ref:`Detector enum` | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | version | Detector header version. At 2 | + | | [From detector udp header] | + +--------------+----------------------------------------------+ + | flipRows | 1 if rows should be flipped. | + | | Usually for Eiger bottom. | + +--------------+----------------------------------------------+ + | quad | 1 if its an Eiger quad. | + +--------------+----------------------------------------------+ + | addJsonHeader| Optional custom parameters that is required | + | | for processing code. | + +--------------+----------------------------------------------+ + diff --git a/examples/gotthard.config b/examples/gotthard.config deleted file mode 100755 index efd4e402f..000000000 --- a/examples/gotthard.config +++ /dev/null @@ -1,12 +0,0 @@ -# detector hostname -hostname bchip007 - -# receiver pc hostname of 1Gb IP of the machine -rx_hostname my_receiver_hostname - -# output directory -fpath /bigRAID/datadir_gotthard/rec_test_data - -# high voltage -highvoltage 120 - diff --git a/libs/libzmq/libzmq_cmake_version.patch b/libs/libzmq/libzmq_cmake_version.patch new file mode 100644 index 000000000..4e421d322 --- /dev/null +++ b/libs/libzmq/libzmq_cmake_version.patch @@ -0,0 +1,18 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index dd3d8eb9..c0187747 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,11 +1,8 @@ + # CMake build script for ZeroMQ + project(ZeroMQ) + +-if(${CMAKE_SYSTEM_NAME} STREQUAL Darwin) +- cmake_minimum_required(VERSION 3.0.2) +-else() +- cmake_minimum_required(VERSION 2.8.12) +-endif() ++cmake_minimum_required(VERSION 3.15) ++message(STATUS "Patched cmake version") + + include(CheckIncludeFiles) + include(CheckCCompilerFlag) diff --git a/libs/pybind11/v2.11.0.tar.gz b/libs/pybind11/v2.11.0.tar.gz deleted file mode 100644 index ef7cf6f55..000000000 Binary files a/libs/pybind11/v2.11.0.tar.gz and /dev/null differ diff --git a/libs/pybind11/v2.13.6.tar.gz b/libs/pybind11/v2.13.6.tar.gz new file mode 100644 index 000000000..7dcec1d75 Binary files /dev/null and b/libs/pybind11/v2.13.6.tar.gz differ diff --git a/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants b/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants index 5a33d75dc..f546606f3 100644 --- a/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants +++ b/psi-pmodules/DetectorSoftware/slsDetectorPackage/files/variants @@ -11,4 +11,7 @@ slsDetectorPackage/8.0.1_rh7 stable cmake/3.15.5 Qt/5.12.10 slsDetectorPackage/8.0.1_rh8 stable cmake/3.15.5 Qt/5.12.10 slsDetectorPackage/8.0.2_rh7 stable cmake/3.15.5 Qt/5.12.10 slsDetectorPackage/8.0.2_rh8 stable cmake/3.15.5 Qt/5.12.10 - +slsDetectorPackage/9.0.0_rh8 stable cmake/3.15.5 Qt/5.12.10 +slsDetectorPackage/9.1.0_rh8 stable cmake/3.15.5 Qt/5.12.10 +slsDetectorPackage/9.1.1_rh8 stable cmake/3.15.5 Qt/5.12.10 +slsDetectorPackage/9.2.0_rh8 stable cmake/3.15.5 Qt/5.12.10 diff --git a/pyctbgui/pyctbgui/services/ADC.py b/pyctbgui/pyctbgui/services/ADC.py index f470fc917..462ed7de9 100644 --- a/pyctbgui/pyctbgui/services/ADC.py +++ b/pyctbgui/pyctbgui/services/ADC.py @@ -14,6 +14,8 @@ from pyctbgui.utils.defines import Defines import pyctbgui.utils.pixelmap as pm from pyctbgui.utils.recordOrApplyPedestal import recordOrApplyPedestal +from slsdet import detectorType + if typing.TYPE_CHECKING: from pyctbgui.services import AcquisitionTab, PlotTab @@ -30,6 +32,7 @@ class AdcTab(QtWidgets.QWidget): self.acquisitionTab: AcquisitionTab | None = None self.legend: LegendItem | None = None self.logger = logging.getLogger('AdcTab') + self.tengiga = True def setup_ui(self): self.plotTab = self.mainWindow.plotTab @@ -42,6 +45,12 @@ class AdcTab(QtWidgets.QWidget): self.legend.clear() # subscribe to toggle legend self.plotTab.subscribeToggleLegend(self.updateLegend) + + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.checkBoxADC0_15Inv.setDisabled(True) + self.view.checkBoxADC16_31Inv.setDisabled(True) + self.view.lineEditADCInversion.setDisabled(True) + self.view.labelADCInversion.setDisabled(True) def initializeAllAnalogPlots(self): self.mainWindow.plotAnalogWaveform = pg.plot() @@ -67,7 +76,8 @@ class AdcTab(QtWidgets.QWidget): def connect_ui(self): for i in range(Defines.adc.count): - getattr(self.view, f"checkBoxADC{i}Inv").stateChanged.connect(partial(self.setADCInv, i)) + if self.det.type == detectorType.CHIPTESTBOARD: + getattr(self.view, f"checkBoxADC{i}Inv").stateChanged.connect(partial(self.setADCInv, i)) getattr(self.view, f"checkBoxADC{i}En").stateChanged.connect(partial(self.setADCEnable, i)) getattr(self.view, f"checkBoxADC{i}Plot").stateChanged.connect(partial(self.setADCEnablePlot, i)) getattr(self.view, f"pushButtonADC{i}").clicked.connect(partial(self.selectADCColor, i)) @@ -77,15 +87,17 @@ class AdcTab(QtWidgets.QWidget): self.view.checkBoxADC0_15Plot.stateChanged.connect(partial(self.setADCEnablePlotRange, 0, Defines.adc.half)) self.view.checkBoxADC16_31Plot.stateChanged.connect( partial(self.setADCEnablePlotRange, Defines.adc.half, Defines.adc.count)) - self.view.checkBoxADC0_15Inv.stateChanged.connect(partial(self.setADCInvRange, 0, Defines.adc.half)) - self.view.checkBoxADC16_31Inv.stateChanged.connect( - partial(self.setADCInvRange, Defines.adc.half, Defines.adc.count)) - self.view.lineEditADCInversion.editingFinished.connect(self.setADCInvReg) self.view.lineEditADCEnable.editingFinished.connect(self.setADCEnableReg) + if self.det.type == detectorType.CHIPTESTBOARD: + self.view.checkBoxADC0_15Inv.stateChanged.connect(partial(self.setADCInvRange, 0, Defines.adc.half)) + self.view.checkBoxADC16_31Inv.stateChanged.connect( + partial(self.setADCInvRange, Defines.adc.half, Defines.adc.count)) + self.view.lineEditADCInversion.editingFinished.connect(self.setADCInvReg) def refresh(self): self.updateADCNames() - self.updateADCInv() + if self.det.type == detectorType.CHIPTESTBOARD: + self.updateADCInv() self.updateADCEnable() # ADCs Tab functions @@ -142,6 +154,8 @@ class AdcTab(QtWidgets.QWidget): self.mainWindow.analogPlots[i].setData(waveform) plotName = getattr(self.view, f"labelADC{i}").text() waveforms[plotName] = waveform + elif checkBoxEn.isChecked(): + idx += 1 return waveforms @recordOrApplyPedestal @@ -196,9 +210,11 @@ class AdcTab(QtWidgets.QWidget): return decoder.decode(analog_array, pm.moench04_analog()) def getADCEnableReg(self): - retval = self.det.adcenable - if self.det.tengiga: - retval = self.det.adcenable10g + if self.det.type == detectorType.CHIPTESTBOARD: + self.tengiga = self.det.tengiga + retval = self.det.adcenable10g + if not self.tengiga: + retval = self.det.adcenable self.view.lineEditADCEnable.editingFinished.disconnect() self.view.lineEditADCEnable.setText("0x{:08x}".format(retval)) self.view.lineEditADCEnable.editingFinished.connect(self.setADCEnableReg) @@ -207,8 +223,8 @@ class AdcTab(QtWidgets.QWidget): def setADCEnableReg(self): self.view.lineEditADCEnable.editingFinished.disconnect() try: - mask = int(self.mainWindow.lineEditADCEnable.text(), 16) - if self.det.tengiga: + mask = int(self.view.lineEditADCEnable.text(), 16) + if self.tengiga: self.det.adcenable10g = mask else: self.det.adcenable = mask @@ -239,7 +255,7 @@ class AdcTab(QtWidgets.QWidget): def setADCEnable(self, i): checkBox = getattr(self.view, f"checkBoxADC{i}En") try: - if self.det.tengiga: + if self.tengiga: enableMask = manipulate_bit(checkBox.isChecked(), self.det.adcenable10g, i) self.det.adcenable10g = enableMask else: @@ -265,7 +281,7 @@ class AdcTab(QtWidgets.QWidget): for i in range(start_nr, end_nr): mask = manipulate_bit(checkBox.isChecked(), mask, i) try: - if self.det.tengiga: + if self.tengiga: self.det.adcenable10g = mask else: self.det.adcenable = mask @@ -344,7 +360,7 @@ class AdcTab(QtWidgets.QWidget): def setADCInvReg(self): self.view.lineEditADCInversion.editingFinished.disconnect() try: - self.det.adcinvert = int(self.mainWindow.lineEditADCInversion.text(), 16) + self.det.adcinvert = int(self.view.lineEditADCInversion.text(), 16) except Exception as e: QtWidgets.QMessageBox.warning(self.mainWindow, "ADC Inversion Fail", str(e), QtWidgets.QMessageBox.Ok) pass @@ -395,7 +411,12 @@ class AdcTab(QtWidgets.QWidget): self.updateADCInv() def saveParameters(self) -> list[str]: - return [ - f"adcenable {self.view.lineEditADCEnable.text()}", - f"adcinvert {self.view.lineEditADCInversion.text()}", - ] + if self.det.type == detectorType.CHIPTESTBOARD: + return [ + f"adcenable {self.view.lineEditADCEnable.text()}", + f"adcinvert {self.view.lineEditADCInversion.text()}", + ] + else: + return [ + f"adcenable {self.view.lineEditADCEnable.text()}" + ] diff --git a/pyctbgui/pyctbgui/services/Acquisition.py b/pyctbgui/pyctbgui/services/Acquisition.py index d87cad767..58c972c51 100644 --- a/pyctbgui/pyctbgui/services/Acquisition.py +++ b/pyctbgui/pyctbgui/services/Acquisition.py @@ -7,7 +7,7 @@ import zmq from PyQt5 import QtWidgets, uic import logging -from slsdet import readoutMode, runStatus +from slsdet import readoutMode, runStatus, detectorType from pyctbgui.utils.defines import Defines from pyctbgui.utils.numpyWriter.npy_writer import NumpyFileManager from pyctbgui.utils.numpyWriter.npz_writer import NpzFileWriter @@ -49,20 +49,38 @@ class AcquisitionTab(QtWidgets.QWidget): self.adcTab = self.mainWindow.adcTab self.plotTab = self.mainWindow.plotTab self.toggleStartButton(False) + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.labelADCPhase.setDisabled(True) + self.view.labelADCPipeline.setDisabled(True) + self.view.labelDBITPhase.setDisabled(True) + self.view.labelDBITPipeline.setDisabled(True) + self.view.spinBoxADCPhase.setDisabled(True) + self.view.spinBoxADCPipeline.setDisabled(True) + self.view.spinBoxDBITPhase.setDisabled(True) + self.view.spinBoxDBITPipeline.setDisabled(True) + self.view.labelRunF.setText("Run Clock Frequency (kHz):") + self.view.labelDBITF.setText("DBIT Clock Frequency (kHz):") + self.view.labelADCF.setText("ADC Clock Frequency (kHz):") + self.view.spinBoxRunF.setMaximum(250000) + self.view.spinBoxDBITF.setMaximum(250000) + self.view.spinBoxADCF.setMaximum(250000) def connect_ui(self): # For Acquistions Tab self.view.comboBoxROMode.currentIndexChanged.connect(self.setReadOut) - self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency) self.view.spinBoxTransceiver.editingFinished.connect(self.setTransceiver) self.view.spinBoxAnalog.editingFinished.connect(self.setAnalog) self.view.spinBoxDigital.editingFinished.connect(self.setDigital) - self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency) - self.view.spinBoxADCPhase.editingFinished.connect(self.setADCPhase) - self.view.spinBoxADCPipeline.editingFinished.connect(self.setADCPipeline) - self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency) - self.view.spinBoxDBITPhase.editingFinished.connect(self.setDBITPhase) - self.view.spinBoxDBITPipeline.editingFinished.connect(self.setDBITPipeline) + + if self.det.type in [detectorType.CHIPTESTBOARD, detectorType.XILINX_CHIPTESTBOARD]: + self.view.spinBoxRunF.editingFinished.connect(self.setRunFrequency) + self.view.spinBoxADCF.editingFinished.connect(self.setADCFrequency) + self.view.spinBoxDBITF.editingFinished.connect(self.setDBITFrequency) + if self.det.type == detectorType.CHIPTESTBOARD: + self.view.spinBoxADCPhase.editingFinished.connect(self.setADCPhase) + self.view.spinBoxADCPipeline.editingFinished.connect(self.setADCPipeline) + self.view.spinBoxDBITPhase.editingFinished.connect(self.setDBITPhase) + self.view.spinBoxDBITPipeline.editingFinished.connect(self.setDBITPipeline) self.view.checkBoxFileWriteRaw.stateChanged.connect(self.setFileWrite) self.view.checkBoxFileWriteNumpy.stateChanged.connect(self.setFileWriteNumpy) @@ -77,16 +95,20 @@ class AcquisitionTab(QtWidgets.QWidget): def refresh(self): self.getReadout() - self.getRunFrequency() self.getTransceiver() self.getAnalog() self.getDigital() - self.getADCFrequency() - self.getADCPhase() - self.getADCPipeline() - self.getDBITFrequency() - self.getDBITPhase() - self.getDBITPipeline() + + if self.det.type in [detectorType.CHIPTESTBOARD, detectorType.XILINX_CHIPTESTBOARD]: + self.getRunFrequency() + self.getADCFrequency() + self.getDBITFrequency() + if self.det.type == detectorType.CHIPTESTBOARD: + self.getADCPhase() + self.getADCPipeline() + self.getDBITPhase() + self.getDBITPipeline() + self.getFileWrite() self.getFileName() self.getFilePath() @@ -697,23 +719,39 @@ class AcquisitionTab(QtWidgets.QWidget): self.socket.subscribe("") def saveParameters(self) -> list[str]: - return [ - f'romode {self.view.comboBoxROMode.currentText().lower()}', - f'runclk {self.view.spinBoxRunF.value()}', - f'adcclk {self.view.spinBoxADCF.value()}', - f'adcphase {self.view.spinBoxADCPhase.value()}', - f'adcpipeline {self.view.spinBoxADCPipeline.value()}', - f'dbitclk {self.view.spinBoxDBITF.value()}', - f'dbitphase {self.view.spinBoxDBITPhase.value()}', - f'dbitpipeline {self.view.spinBoxDBITPipeline.value()}', - f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}', - f'fname {self.view.lineEditFileName.text()}', - f'fpath {self.view.lineEditFilePath.text()}', - f'findex {self.view.spinBoxAcquisitionIndex.value()}', - f'frames {self.view.spinBoxFrames.value()}', - f'triggers {self.view.spinBoxTriggers.value()}', - f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}', - f'asamples {self.view.spinBoxAnalog.value()}', - f'dsamples {self.view.spinBoxDigital.value()}', - f'tsamples {self.view.spinBoxTransceiver.value()}', - ] + if self.det.type == detectorType.CHIPTESTBOARD: + return [ + f'romode {self.view.comboBoxROMode.currentText().lower()}', + f'runclk {self.view.spinBoxRunF.value()}', + f'adcclk {self.view.spinBoxADCF.value()}', + f'adcphase {self.view.spinBoxADCPhase.value()}', + f'adcpipeline {self.view.spinBoxADCPipeline.value()}', + f'dbitclk {self.view.spinBoxDBITF.value()}', + f'dbitphase {self.view.spinBoxDBITPhase.value()}', + f'dbitpipeline {self.view.spinBoxDBITPipeline.value()}', + f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}', + f'fname {self.view.lineEditFileName.text()}', + f'fpath {self.view.lineEditFilePath.text()}', + f'findex {self.view.spinBoxAcquisitionIndex.value()}', + f'frames {self.view.spinBoxFrames.value()}', + f'triggers {self.view.spinBoxTriggers.value()}', + f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}', + f'asamples {self.view.spinBoxAnalog.value()}', + f'dsamples {self.view.spinBoxDigital.value()}', + f'tsamples {self.view.spinBoxTransceiver.value()}', + ] + else: + return [ + f'romode {self.view.comboBoxROMode.currentText().lower()}', + f'fwrite {int(self.view.checkBoxFileWriteRaw.isChecked())}', + f'fname {self.view.lineEditFileName.text()}', + f'fpath {self.view.lineEditFilePath.text()}', + f'findex {self.view.spinBoxAcquisitionIndex.value()}', + f'frames {self.view.spinBoxFrames.value()}', + f'triggers {self.view.spinBoxTriggers.value()}', + f'period {self.view.spinBoxPeriod.value()} {self.view.comboBoxPeriod.currentText().lower()}', + f'asamples {self.view.spinBoxAnalog.value()}', + f'dsamples {self.view.spinBoxDigital.value()}', + f'tsamples {self.view.spinBoxTransceiver.value()}', + ] + diff --git a/pyctbgui/pyctbgui/services/DACs.py b/pyctbgui/pyctbgui/services/DACs.py index 1bd7ab721..c626a8613 100644 --- a/pyctbgui/pyctbgui/services/DACs.py +++ b/pyctbgui/pyctbgui/services/DACs.py @@ -4,7 +4,7 @@ from pathlib import Path from PyQt5 import QtWidgets, uic from pyctbgui.utils.defines import Defines -from slsdet import dacIndex +from slsdet import dacIndex, detectorType class DacTab(QtWidgets.QWidget): @@ -19,7 +19,14 @@ class DacTab(QtWidgets.QWidget): dac = getattr(dacIndex, f"DAC_{i}") getattr(self.view, f"spinBoxDAC{i}").setValue(self.det.getDAC(dac)[0]) - if self.det.highvoltage == 0: + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.checkBoxHighVoltage.setDisabled(True) + self.view.spinBoxHighVoltage.setDisabled(True) + self.view.labelHighVoltage.setDisabled(True) + self.view.labelADCVppDacName.setDisabled(True) + self.view.labelADCVpp.setDisabled(True) + self.view.comboBoxADCVpp.setDisabled(True) + elif self.det.highvoltage == 0: self.view.spinBoxHighVoltage.setDisabled(True) self.view.checkBoxHighVoltage.setChecked(False) @@ -30,9 +37,11 @@ class DacTab(QtWidgets.QWidget): getattr(self.view, f"checkBoxDAC{i}").stateChanged.connect(partial(self.setDACTristate, i)) getattr(self.view, f"checkBoxDAC{i}mV").stateChanged.connect(partial(self.getDAC, i)) - self.view.comboBoxADCVpp.currentIndexChanged.connect(self.setADCVpp) - self.view.spinBoxHighVoltage.editingFinished.connect(self.setHighVoltage) - self.view.checkBoxHighVoltage.stateChanged.connect(self.setHighVoltage) + if self.view.comboBoxADCVpp.isEnabled(): + self.view.comboBoxADCVpp.currentIndexChanged.connect(self.setADCVpp) + if self.view.checkBoxHighVoltage.isEnabled(): + self.view.spinBoxHighVoltage.editingFinished.connect(self.setHighVoltage) + self.view.checkBoxHighVoltage.stateChanged.connect(self.setHighVoltage) def refresh(self): self.updateDACNames() @@ -40,8 +49,10 @@ class DacTab(QtWidgets.QWidget): self.getDACTristate(i) self.getDAC(i) - self.getADCVpp() - self.getHighVoltage() + if self.view.comboBoxADCVpp.isEnabled(): + self.getADCVpp() + if self.view.checkBoxHighVoltage.isEnabled(): + self.getHighVoltage() def updateDACNames(self): for i, name in enumerate(self.det.getDacNames()): @@ -165,6 +176,8 @@ class DacTab(QtWidgets.QWidget): unit = " mV" if inMV else "" commands.append(f"dac {i} {value}{unit}") - commands.append(f"adcvpp {self.view.comboBoxADCVpp.currentText()} mV") - commands.append(f"highvoltage {self.view.spinBoxHighVoltage.value()}") + if self.view.comboBoxADCVpp.isEnabled(): + commands.append(f"adcvpp {self.view.comboBoxADCVpp.currentText()} mV") + if self.view.checkBoxHighVoltage.isEnabled(): + commands.append(f"highvoltage {self.view.spinBoxHighVoltage.value()}") return commands diff --git a/pyctbgui/pyctbgui/services/Pattern.py b/pyctbgui/pyctbgui/services/Pattern.py index e7e274ff9..98a8a8b81 100644 --- a/pyctbgui/pyctbgui/services/Pattern.py +++ b/pyctbgui/pyctbgui/services/Pattern.py @@ -10,6 +10,7 @@ from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as Navigatio from pyctbgui.utils.defines import Defines from pyctbgui.utils.plotPattern import PlotPattern +from slsdet import DurationWrapper class PatternTab(QtWidgets.QWidget): @@ -61,7 +62,10 @@ class PatternTab(QtWidgets.QWidget): getattr(self.view, f"lineEditLoop{i}Wait").editingFinished.connect(partial(self.setPatLoopWaitAddress, i)) getattr(self.view, f"spinBoxLoop{i}Repetition").editingFinished.connect(partial(self.setPatLoopRepetition, i)) - getattr(self.view, f"spinBoxLoop{i}WaitTime").editingFinished.connect(partial(self.setPatLoopWaitTime, i)) + getattr(self.view, f"doubleSpinBoxLoop{i}WaitClocks").editingFinished.connect(partial(self.setPatLoopWaitClocks, i)) + getattr(self.view, f"spinBoxLoop{i}WaitInterval").editingFinished.connect(partial(self.setPatLoopWaitInterval, i)) + getattr(self.view, f"comboBoxLoop{i}WaitInterval").currentIndexChanged.connect(partial(self.setPatLoopWaitInterval, i)) + self.view.toolButtonTogglePageWaitTime.clicked.connect(self.setTogglePageWaitTime) self.view.pushButtonCompiler.clicked.connect(self.setCompiler) self.view.pushButtonUncompiled.clicked.connect(self.setUncompiledPatternFile) self.view.pushButtonPatternFile.clicked.connect(self.setPatternFile) @@ -91,7 +95,8 @@ class PatternTab(QtWidgets.QWidget): self.getPatLoopStartStopAddress(i) self.getPatLoopWaitAddress(i) self.getPatLoopRepetition(i) - self.getPatLoopWaitTime(i) + self.getPatLoopWaitClocks(i) + self.getPatLoopWaitInterval(i) # Pattern Tab functions @@ -182,17 +187,67 @@ class PatternTab(QtWidgets.QWidget): self.det.patnloop[level] = spinBox.value() self.getPatLoopRepetition(level) - def getPatLoopWaitTime(self, level): + def getPatLoopWaitClocks(self, level): retval = self.det.patwaittime[level] - spinBox = getattr(self.view, f"spinBoxLoop{level}WaitTime") + spinBox = getattr(self.view, f"doubleSpinBoxLoop{level}WaitClocks") spinBox.editingFinished.disconnect() spinBox.setValue(retval) - spinBox.editingFinished.connect(partial(self.setPatLoopWaitTime, level)) + spinBox.editingFinished.connect(partial(self.setPatLoopWaitClocks, level)) + + def setPatLoopWaitClocks(self, level): + spinBox = getattr(self.view, f"doubleSpinBoxLoop{level}WaitClocks") + self.det.patwaittime[level] = int(spinBox.value()) + self.getPatLoopWaitClocks(level) + + def getPatLoopWaitInterval(self, level): + retval = self.det.getPatternWaitInterval(level)[0].count() + spinBox = getattr(self.view, f"spinBoxLoop{level}WaitInterval") + comboBox = getattr(self.view, f"comboBoxLoop{level}WaitInterval") + spinBox.editingFinished.disconnect() + comboBox.currentIndexChanged.disconnect() + # Converting to right time unit for period + if retval >= 1e9: + comboBox.setCurrentIndex(0) + spinBox.setValue(retval / 1e9) + elif retval >= 1e6: + comboBox.setCurrentIndex(1) + spinBox.setValue(retval / 1e6) + elif retval >= 1e3: + comboBox.setCurrentIndex(2) + spinBox.setValue(retval / 1e3) + else: + comboBox.setCurrentIndex(3) + spinBox.setValue(retval) + spinBox.editingFinished.connect(partial(self.setPatLoopWaitInterval, level)) + comboBox.currentIndexChanged.connect(partial(self.setPatLoopWaitInterval, level)) + + def setPatLoopWaitInterval(self, level): + spinBox = getattr(self.view, f"spinBoxLoop{level}WaitInterval") + comboBox = getattr(self.view, f"comboBoxLoop{level}WaitInterval") + value = spinBox.value() + if comboBox.currentIndex() == 0: + value *= 1e9 + elif comboBox.currentIndex() == 1: + value *= 1e6 + elif comboBox.currentIndex() == 2: + value *= 1e3 + t = DurationWrapper() + t.set_count(int(value)) + self.det.patwaittime[level] = t + self.getPatLoopWaitInterval(level) + + def setTogglePageWaitTime(self): + if self.view.stackedWidgetWaitTime.currentIndex() == 0: + self.view.stackedWidgetWaitTime.setCurrentIndex(1) + self.view.labelWaitTime.setText("Time") + for i in range(Defines.pattern.loops_count): + self.getPatLoopWaitInterval(i) + else: + self.view.stackedWidgetWaitTime.setCurrentIndex(0) + self.view.labelWaitTime.setText("Clocks") + for i in range(Defines.pattern.loops_count): + self.getPatLoopWaitClocks(i) - def setPatLoopWaitTime(self, level): - spinBox = getattr(self.view, f"spinBoxLoop{level}WaitTime") - self.det.patwaittime[level] = spinBox.value() - self.getPatLoopWaitTime(level) def setCompiler(self): response = QtWidgets.QFileDialog.getOpenFileName( @@ -450,7 +505,7 @@ class PatternTab(QtWidgets.QWidget): f"{getattr(self.view, f'lineEditLoop{i}Stop').text()}") commands.append(f"patwait {i} {getattr(self.view, f'lineEditLoop{i}Wait').text()}") - commands.append(f"patwaittime {i} {getattr(self.view, f'spinBoxLoop{i}WaitTime').text()}") + commands.append(f"patwaittime {i} {getattr(self.view, f'doubleSpinBoxLoop{i}WaitClocks').text()}") commands.append(f"patlimits {self.view.lineEditStartAddress.text()}, {self.view.lineEditStopAddress.text()}") # commands.append(f"patfname {self.view.lineEditPatternFile.text()}") return commands diff --git a/pyctbgui/pyctbgui/services/PowerSupplies.py b/pyctbgui/pyctbgui/services/PowerSupplies.py index ec8d2f5dd..e5b402101 100644 --- a/pyctbgui/pyctbgui/services/PowerSupplies.py +++ b/pyctbgui/pyctbgui/services/PowerSupplies.py @@ -4,7 +4,7 @@ from pathlib import Path from PyQt5 import QtWidgets, uic from pyctbgui.utils.defines import Defines -from slsdet import dacIndex +from slsdet import dacIndex, detectorType class PowerSuppliesTab(QtWidgets.QWidget): @@ -18,7 +18,8 @@ class PowerSuppliesTab(QtWidgets.QWidget): self.updateVoltageNames() for i in Defines.powerSupplies: self.getVoltage(i) - self.getCurrent(i) + if self.det.type == detectorType.CHIPTESTBOARD: + self.getCurrent(i) def connect_ui(self): for i in Defines.powerSupplies: @@ -38,6 +39,12 @@ class PowerSuppliesTab(QtWidgets.QWidget): if retval == 0: checkBox.setChecked(False) spinBox.setDisabled(True) + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + label = getattr(self.view, f"labelI{i}") + label.setDisabled(True) + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.spinBoxVChip.setDisabled(True) + def updateVoltageNames(self): retval = self.det.getPowerNames() @@ -56,7 +63,10 @@ class PowerSuppliesTab(QtWidgets.QWidget): spinBox.editingFinished.disconnect() checkBox.stateChanged.disconnect() - retval = self.det.getMeasuredPower(voltageIndex)[0] + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + retval = self.det.getPower(voltageIndex)[0] + else: + retval = self.det.getMeasuredPower(voltageIndex)[0] # spinBox.setValue(retval) if retval > 1: checkBox.setChecked(True) @@ -68,8 +78,9 @@ class PowerSuppliesTab(QtWidgets.QWidget): spinBox.editingFinished.connect(partial(self.setVoltage, i)) checkBox.stateChanged.connect(partial(self.setVoltage, i)) - - self.getVChip() + + if self.det.type == detectorType.CHIPTESTBOARD: + self.getVChip() # TODO: handle multiple events when pressing enter (twice) @@ -91,7 +102,8 @@ class PowerSuppliesTab(QtWidgets.QWidget): # TODO: (properly) disconnecting and connecting to handle multiple events (out of focus and pressing enter). spinBox.editingFinished.connect(partial(self.setVoltage, i)) self.getVoltage(i) - self.getCurrent(i) + if self.det.type == detectorType.CHIPTESTBOARD: + self.getCurrent(i) def getCurrent(self, i): label = getattr(self.view, f"labelI{i}") diff --git a/pyctbgui/pyctbgui/services/Signals.py b/pyctbgui/pyctbgui/services/Signals.py index a06b9a412..856571e22 100644 --- a/pyctbgui/pyctbgui/services/Signals.py +++ b/pyctbgui/pyctbgui/services/Signals.py @@ -22,6 +22,7 @@ class SignalsTab(QtWidgets.QWidget): self.plotTab = None self.legend: LegendItem | None = None self.rx_dbitoffset = None + self.rx_dbitreorder = None self.rx_dbitlist = None def refresh(self): @@ -29,6 +30,7 @@ class SignalsTab(QtWidgets.QWidget): self.updateDigitalBitEnable() self.updateIOOut() self.getDBitOffset() + self.getDBitReorder() def connect_ui(self): for i in range(Defines.signals.count): @@ -49,6 +51,7 @@ class SignalsTab(QtWidgets.QWidget): partial(self.setIOOutRange, Defines.signals.half, Defines.signals.count)) self.view.lineEditPatIOCtrl.editingFinished.connect(self.setIOOutReg) self.view.spinBoxDBitOffset.editingFinished.connect(self.setDbitOffset) + self.view.checkBoxDBitReorder.stateChanged.connect(self.setDbitReorder) def setup_ui(self): self.plotTab = self.mainWindow.plotTab @@ -87,60 +90,79 @@ class SignalsTab(QtWidgets.QWidget): self.legend.addItem(plot, name) @recordOrApplyPedestal - def _processWaveformData(self, data, aSamples, dSamples, rx_dbitlist, isPlottedArray, rx_dbitoffset, romode, + def _processWaveformData(self, data, aSamples, dSamples, rx_dbitreorder, rx_dbitlist, isPlottedArray, romode, nADCEnabled): - """ - transform raw waveform data into a processed numpy array - @param data: raw waveform data - """ - dbitoffset = rx_dbitoffset + + #transform raw waveform data into a processed numpy array + #@param data: raw waveform data + + start_digital_data = 0 if romode == 2: - dbitoffset += nADCEnabled * 2 * aSamples - digital_array = np.array(np.frombuffer(data, offset=dbitoffset, dtype=np.uint8)) - nbitsPerDBit = dSamples - if nbitsPerDBit % 8 != 0: - nbitsPerDBit += (8 - (dSamples % 8)) - offset = 0 - arr = [] - for i in rx_dbitlist: - # where numbits * numsamples is not a multiple of 8 - if offset % 8 != 0: - offset += (8 - (offset % 8)) - if not isPlottedArray[i]: - offset += nbitsPerDBit - return None - waveform = np.zeros(dSamples) - for iSample in range(dSamples): - # all samples for digital bit together from slsReceiver - index = int(offset / 8) - iBit = offset % 8 - bit = (digital_array[index] >> iBit) & 1 - waveform[iSample] = bit - offset += 1 - arr.append(waveform) + start_digital_data += nADCEnabled * 2 * aSamples + digital_array = np.array(np.frombuffer(data, offset=start_digital_data, dtype=np.uint8)) + if rx_dbitreorder: + samples_per_bit = np.empty((len(rx_dbitlist), dSamples), dtype=np.uint8) #stored per row all the corresponding signals of all samples + nbitsPerDBit = dSamples + if nbitsPerDBit % 8 != 0: + nbitsPerDBit += (8 - (dSamples % 8)) + bit_index = 0 + for idx, i in enumerate(rx_dbitlist): + # where numbits * numsamples is not a multiple of 8 + if bit_index % 8 != 0: + bit_index += (8 - (bit_index % 8)) + if not isPlottedArray[i]: + bit_index += nbitsPerDBit + samples_per_bit[idx, :] = np.nan + continue + for iSample in range(dSamples): + # all samples for digital bit together from slsReceiver + index = int(bit_index / 8) + iBit = bit_index % 8 + bit = (digital_array[index] >> iBit) & 1 + samples_per_bit[idx,iSample] = bit + bit_index += 1 + return samples_per_bit + else: + nbitsPerSample = len(rx_dbitlist) if len(rx_dbitlist) % 8 == 0 else len(rx_dbitlist) + (8 - (len(rx_dbitlist) % 8)) + bits_per_sample = np.empty((dSamples, len(rx_dbitlist)), dtype=np.uint8) #store per row all selected bits of a sample + for iSample in range(dSamples): + bit_index = nbitsPerSample * iSample + for idx, i in enumerate(rx_dbitlist): + if not isPlottedArray[i]: + bit_index += 1 + bits_per_sample[iSample, idx] = np.nan - return np.array(arr) + index = int(bit_index/8) + iBit = idx % 8 + bit = (digital_array[index] >> iBit) & 1 + bits_per_sample[iSample, idx] = bit + bit_index += 1 + return bits_per_sample.T.copy() + + def processWaveformData(self, data, aSamples, dSamples): - """ - view function - plots processed waveform data - data: raw waveform data - dsamples: digital samples - asamples: analog samples - """ + + #view function + #plots processed waveform data + #data: raw waveform data + #dsamples: digital samples + #asamples: analog samples + + self.refresh() + waveforms = {} isPlottedArray = {i: getattr(self.view, f"checkBoxBIT{i}Plot").isChecked() for i in self.rx_dbitlist} - digital_array = self._processWaveformData(data, aSamples, dSamples, self.rx_dbitlist, isPlottedArray, - self.rx_dbitoffset, self.mainWindow.romode.value, + digital_array = self._processWaveformData(data, aSamples, dSamples, self.rx_dbitreorder, self.rx_dbitlist, isPlottedArray, + self.mainWindow.romode.value, self.mainWindow.nADCEnabled) irow = 0 - for idx, i in enumerate(self.rx_dbitlist): + for idx, i in enumerate(self.rx_dbitlist): # bits enabled but not plotting - waveform = digital_array[idx] - if waveform is None: + waveform = digital_array[idx, :] + if np.isnan(waveform[0]): continue self.mainWindow.digitalPlots[i].setData(waveform) plotName = getattr(self.view, f"labelBIT{i}").text() @@ -151,8 +173,10 @@ class SignalsTab(QtWidgets.QWidget): irow += 1 else: self.mainWindow.digitalPlots[i].setY(0) + return waveforms + def initializeAllDigitalPlots(self): self.mainWindow.plotDigitalWaveform = pg.plot() self.mainWindow.plotDigitalWaveform.addLegend(colCount=Defines.colCount) @@ -360,14 +384,25 @@ class SignalsTab(QtWidgets.QWidget): self.view.spinBoxDBitOffset.setValue(self.rx_dbitoffset) self.view.spinBoxDBitOffset.editingFinished.connect(self.setDbitOffset) + def getDBitReorder(self): + self.view.checkBoxDBitReorder.stateChanged.disconnect() + self.rx_dbitreorder = self.det.rx_dbitreorder + self.view.checkBoxDBitReorder.setChecked(self.rx_dbitreorder) + self.view.checkBoxDBitReorder.stateChanged.connect(self.setDbitReorder) + + def setDbitOffset(self): self.det.rx_dbitoffset = self.view.spinBoxDBitOffset.value() + def setDbitReorder(self): + self.det.rx_dbitreorder = self.view.checkBoxDBitReorder.isChecked() + def saveParameters(self) -> list: commands = [] dblist = [str(i) for i in range(Defines.signals.count) if getattr(self.view, f"checkBoxBIT{i}DB").isChecked()] if len(dblist) > 0: commands.append(f"rx_dbitlist {', '.join(dblist)}") commands.append(f"rx_dbitoffset {self.view.spinBoxDBitOffset.value()}") + commands.append(f"rx_dbitreorder {self.view.checkBoxDBitReorder.isChecked()}") commands.append(f"patioctrl {self.view.lineEditPatIOCtrl.text()}") return commands diff --git a/pyctbgui/pyctbgui/services/SlowADCs.py b/pyctbgui/pyctbgui/services/SlowADCs.py index 4b73b18f0..92876286e 100644 --- a/pyctbgui/pyctbgui/services/SlowADCs.py +++ b/pyctbgui/pyctbgui/services/SlowADCs.py @@ -4,7 +4,7 @@ from pathlib import Path from PyQt5 import uic, QtWidgets from pyctbgui.utils.defines import Defines -from slsdet import dacIndex +from slsdet import dacIndex, detectorType class SlowAdcTab(QtWidgets.QWidget): @@ -17,7 +17,8 @@ class SlowAdcTab(QtWidgets.QWidget): self.det = None def setup_ui(self): - pass + if self.det.type == detectorType.XILINX_CHIPTESTBOARD: + self.view.pushButtonTemp.setDisabled(True) def connect_ui(self): for i in range(Defines.slowAdc.count): @@ -28,7 +29,8 @@ class SlowAdcTab(QtWidgets.QWidget): self.updateSlowAdcNames() for i in range(Defines.slowAdc.count): self.updateSlowAdc(i) - self.updateTemperature() + if self.det.type == detectorType.CHIPTESTBOARD: + self.updateTemperature() def updateSlowAdcNames(self): for i, name in enumerate(self.mainWindow.det.getSlowADCNames()): diff --git a/pyctbgui/pyctbgui/ui/Dacs.ui b/pyctbgui/pyctbgui/ui/Dacs.ui index 940f93c7d..64cfd4b57 100644 --- a/pyctbgui/pyctbgui/ui/Dacs.ui +++ b/pyctbgui/pyctbgui/ui/Dacs.ui @@ -817,7 +817,7 @@ Only pressing enter on spinbox will set DAC (with this condition). - + ADC_VPP diff --git a/pyctbgui/pyctbgui/ui/acquisition.ui b/pyctbgui/pyctbgui/ui/acquisition.ui index 5b9fa58fd..c2d15dff6 100644 --- a/pyctbgui/pyctbgui/ui/acquisition.ui +++ b/pyctbgui/pyctbgui/ui/acquisition.ui @@ -118,7 +118,7 @@ - + Run Clock Frequency (MHz): @@ -218,7 +218,7 @@ - + 200 @@ -231,7 +231,7 @@ - + 0 @@ -278,7 +278,7 @@ - + DBIT Pipeline: @@ -338,21 +338,21 @@ - + ADC Pipeline: - + ADC Clock Phase (a.u.): - + DBIT Clock Phase (a.u.): diff --git a/pyctbgui/pyctbgui/ui/adc.ui b/pyctbgui/pyctbgui/ui/adc.ui index c1fabe266..2a03d9c16 100644 --- a/pyctbgui/pyctbgui/ui/adc.ui +++ b/pyctbgui/pyctbgui/ui/adc.ui @@ -19,7 +19,7 @@ Form - + 0 @@ -3142,7 +3142,7 @@ - + 10 @@ -3188,7 +3188,7 @@ - + 10 diff --git a/pyctbgui/pyctbgui/ui/pattern.ui b/pyctbgui/pyctbgui/ui/pattern.ui index 0c642a83a..8bd788f6a 100644 --- a/pyctbgui/pyctbgui/ui/pattern.ui +++ b/pyctbgui/pyctbgui/ui/pattern.ui @@ -22,9 +22,9 @@ - 0 + 10 10 - 471 + 431 311 @@ -1243,10 +1243,10 @@ - 490 + 450 10 - 361 - 271 + 401 + 311 @@ -1256,268 +1256,33 @@ QFrame::Sunken - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 999999999 - - - - - - - - 125 - 31 - - - - - 125 - 31 - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - 999999999 - - - - - - - - 0 - 0 - - - - - 50 - 16777215 - + + + + Qt::LeftToRight - Wait 0 - - - - - - - - 0 - 0 - - - - - 50 - 16777215 - - - - Wait 5 - - - - - - - - 125 - 31 - - - - - 125 - 31 - + Clocks Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - 999999999 - - - - + + + + Qt::Horizontal + + - 80 - 31 + 40 + 20 - - - 80 - 31 - - - - - - - - - 36 - 31 - 49 - - - - - - - - - 36 - 31 - 49 - - - - - - - - - 146 - 149 - 149 - - - - - - - - - Monospace - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false - - + - - - - - 80 - 31 - - - - - 80 - 31 - - - - - - - - - 36 - 31 - 49 - - - - - - - - - 36 - 31 - 49 - - - - - - - - - 146 - 149 - 149 - - - - - - - - - Monospace - - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - false - - - - - - - - 0 - 0 - - - - - 50 - 16777215 - - - - Wait 3 - - - - - - - Time - - - Qt::AlignCenter - - - - + @@ -1582,47 +1347,83 @@ - + - 125 + 80 31 - 125 + 80 31 + + + + + + + 36 + 31 + 49 + + + + + + + + + 36 + 31 + 49 + + + + + + + + + 146 + 149 + 149 + + + + + + + + + Monospace + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - 999999999 + + false - - - + + + + Qt::Vertical + + - 0 - 0 + 20 + 40 - - - 50 - 16777215 - - - - Wait 4 - - + - + @@ -1689,11 +1490,613 @@ - + + + + Address + + + Qt::AlignCenter + + + + + + + + 50 + 0 + + + + + 50 + 16777215 + + + + Wait 5 + + + + + + + + 200 + 16777215 + + + + 0 + + + + + 0 + + + 0 + + + 6 + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + 150 + 34 + + + + + 150 + 34 + + + + Qt::ImhDigitsOnly + + + 0 + + + 9999999999.000000000000000 + + + + + + + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + 0 + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + 0 + 0 + + + + + 120 + 34 + + + + + 150 + 34 + + + + 4 + + + 99999.990000000005239 + + + + + + + + 45 + 31 + + + + + 40 + 16777215 + + + + + s + + + + + ms + + + + + μs + + + + + ns + + + + + + + + + - 0 + 50 0 @@ -1708,7 +2111,7 @@ - + @@ -1775,40 +2178,112 @@ - - - - Address - - - Qt::AlignCenter - - - - - + + - 125 - 31 + 16 + 16 - 125 - 31 + 16 + 16 - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + Choose to set pattern wait time in clocks or time - - 999999999 + + + + + + 16 + 16 + + + + QToolButton::InstantPopup + + + Qt::RightArrow + + + + + + + + 50 + 0 + + + + + 50 + 16777215 + + + + Wait 0 + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 50 + 0 + + + + + 50 + 16777215 + + + + Wait 2 - + + + + 50 + 0 + + + + + 50 + 16777215 + + + + Wait 3 + + + + + 80 @@ -1871,33 +2346,75 @@ - - + + - 125 + 80 31 - 125 + 80 31 + + + + + + + 36 + 31 + 49 + + + + + + + + + 36 + 31 + 49 + + + + + + + + + 146 + 149 + 149 + + + + + + + + + Monospace + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - 999999999 + + false - - + + - 0 + 50 0 @@ -1908,10 +2425,36 @@ - Wait 2 + Wait 4 + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -2728,6 +3271,77 @@ + + spinBoxLoop0Repetition + lineEditLoop0Start + lineEditLoop0Stop + spinBoxLoop1Repetition + lineEditLoop1Start + lineEditLoop1Stop + spinBoxLoop2Repetition + lineEditLoop2Start + lineEditLoop2Stop + spinBoxLoop3Repetition + lineEditLoop3Start + lineEditLoop3Stop + spinBoxLoop4Repetition + lineEditLoop4Start + lineEditLoop4Stop + spinBoxLoop5Repetition + lineEditLoop5Start + lineEditLoop5Stop + lineEditStartAddress + lineEditStopAddress + toolButtonTogglePageWaitTime + lineEditLoop0Wait + doubleSpinBoxLoop0WaitClocks + lineEditLoop1Wait + doubleSpinBoxLoop1WaitClocks + lineEditLoop2Wait + doubleSpinBoxLoop2WaitClocks + lineEditLoop3Wait + doubleSpinBoxLoop3WaitClocks + lineEditLoop4Wait + doubleSpinBoxLoop4WaitClocks + lineEditLoop5Wait + doubleSpinBoxLoop5WaitClocks + spinBoxLoop0WaitInterval + comboBoxLoop0WaitInterval + spinBoxLoop1WaitInterval + comboBoxLoop1WaitInterval + spinBoxLoop2WaitInterval + comboBoxLoop2WaitInterval + spinBoxLoop3WaitInterval + comboBoxLoop3WaitInterval + spinBoxLoop4WaitInterval + comboBoxLoop4WaitInterval + spinBoxLoop5WaitInterval + comboBoxLoop5WaitInterval + lineEditCompiler + pushButtonCompiler + lineEditUncompiled + pushButtonUncompiled + lineEditPatternFile + pushButtonPatternFile + comboBoxPatWait + comboBoxPatWaitColor + comboBoxPatWaitLineStyle + doubleSpinBoxWaitAlpha + doubleSpinBoxWaitAlphaRect + comboBoxPatLoop + comboBoxPatLoopColor + comboBoxPatLoopLineStyle + doubleSpinBoxLoopAlpha + doubleSpinBoxLoopAlphaRect + comboBoxPatColorSelect + comboBoxPatColor + spinBoxPatClockSpacing + checkBoxPatShowClockNumber + doubleSpinBoxLineWidth + checkBoxCompile + pushButtonLoadPattern + pushButtonViewPattern + diff --git a/pyctbgui/pyctbgui/ui/signals.ui b/pyctbgui/pyctbgui/ui/signals.ui index 231c0b92f..f34e357cb 100644 --- a/pyctbgui/pyctbgui/ui/signals.ui +++ b/pyctbgui/pyctbgui/ui/signals.ui @@ -6074,6 +6074,33 @@ QFrame::Raised + + + + + 150 + 32 + + + + + 150 + 32 + + + + + 10 + + + + background-color: rgb(255, 255, 255); + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + @@ -6086,6 +6113,36 @@ + + + + + 10 + + + + DBit Reorder + + + + + + + + 50 + 0 + + + + + 10 + + + + IO Control Register: + + + @@ -6133,50 +6190,18 @@ - - - + + + + Qt::Horizontal + + - 150 - 32 + 40 + 20 - - - 150 - 32 - - - - - 10 - - - - background-color: rgb(255, 255, 255); - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - 50 - 0 - - - - - 10 - - - - IO Control Register: - - + diff --git a/pyctbgui/pyctbgui/ui/slowAdcs.ui b/pyctbgui/pyctbgui/ui/slowAdcs.ui index 546a30e53..a5aef5b31 100644 --- a/pyctbgui/pyctbgui/ui/slowAdcs.ui +++ b/pyctbgui/pyctbgui/ui/slowAdcs.ui @@ -19,7 +19,7 @@ Form - + 0 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..15833499c --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,37 @@ +[tool.scikit-build.metadata.version] +provider = "scikit_build_core.metadata.regex" +input = "VERSION" +regex = '^(?P\d+(?:\.\d+)*(?:[\.\+\w]+)?)$' +result = "{version}" + +[build-system] +requires = [ "scikit-build-core>=0.10", "pybind11", "numpy",] +build-backend = "scikit_build_core.build" + +[project] +name = "slsdet" +dynamic = ["version"] +dependencies = [ + "numpy", +] + +[tool.cibuildwheel] +before-all = "uname -a" +build = "cp{311,312,313}-manylinux_x86_64" + +[tool.scikit-build.build] +verbose = true + +[tool.scikit-build.cmake] +build-type = "Release" + +[tool.scikit-build.install] +components = [ "python",] + +[tool.scikit-build.cmake.define] +SLS_USE_RECEIVER = "OFF" +SLS_USE_RECEIVER_BINARIES = "OFF" +SLS_USE_TEXTCLIENT = "OFF" +SLS_BUILD_SHARED_LIBRARIES = "OFF" +SLS_USE_PYTHON = "ON" +SLS_INSTALL_PYTHONEXT = "ON" diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index a5ba4134d..eeac372f0 100755 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -20,13 +20,14 @@ target_link_libraries(_slsdet PUBLIC set_target_properties(_slsdet PROPERTIES - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/slsdet ) #Copy Python code set( PYTHON_FILES slsdet/__init__.py slsdet/adcs.py + slsdet/bits.py slsdet/dacs.py slsdet/powers.py slsdet/decorators.py @@ -37,8 +38,8 @@ set( PYTHON_FILES slsdet/enums.py slsdet/errors.py slsdet/gaincaps.py - slsdet/gotthard.py slsdet/pattern.py + slsdet/PatternGenerator.py slsdet/gotthard2.py slsdet/moench.py slsdet/proxy.py @@ -49,7 +50,6 @@ set( PYTHON_FILES slsdet/temperature.py slsdet/lookup.py slsdet/utils.py - ) foreach(FILE ${PYTHON_FILES}) @@ -58,7 +58,6 @@ foreach(FILE ${PYTHON_FILES}) endforeach(FILE ${PYTHON_FILES}) - configure_file( scripts/basic.py ${CMAKE_BINARY_DIR}/basic.py ) @@ -66,12 +65,28 @@ configure_file( scripts/test_virtual.py ${CMAKE_BINARY_DIR}/test_virtual.py ) +configure_file(scripts/frameSynchronizerPullSocket.py + ${CMAKE_BINARY_DIR}/bin/frameSynchronizerPullSocket.py COPYONLY) + +configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/../VERSION + ${CMAKE_BINARY_DIR}/bin/slsdet/VERSION +) if(SLS_INSTALL_PYTHONEXT) install(TARGETS _slsdet EXPORT "${TARGETS_EXPORT_NAME}" - LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/python + LIBRARY DESTINATION slsdet + COMPONENT python ) + install( + FILES ${PYTHON_FILES} + DESTINATION slsdet + COMPONENT python + ) + install( + FILES ../VERSION + DESTINATION slsdet + COMPONENT python + ) - install(FILES ${PYTHON_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/python/slsdet) endif() \ No newline at end of file diff --git a/python/scripts/compile_servers.py b/python/scripts/compile_servers.py index 30422d110..4edf4f992 100644 --- a/python/scripts/compile_servers.py +++ b/python/scripts/compile_servers.py @@ -55,7 +55,6 @@ servers = [ # "jungfrauDetectorServer", "mythen3DetectorServer", # "gotthard2DetectorServer", -# "gotthardDetectorServer", # "ctbDetectorServer", # "moenchDetectorServer", ] diff --git a/python/scripts/frameSynchronizerPullSocket.py b/python/scripts/frameSynchronizerPullSocket.py new file mode 100644 index 000000000..4c13815ab --- /dev/null +++ b/python/scripts/frameSynchronizerPullSocket.py @@ -0,0 +1,19 @@ +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2021 Contributors to the SLS Detector Package +# Script to get combined zmq packets from frame synchronizer using pull zmq sockets +import json +import zmq + +c = zmq.Context() +s = c.socket(zmq.PULL) +s.connect("tcp://127.0.0.1:5555") + +while True: + m = s.recv_multipart() + for p in m: + if p.startswith(b"{"): + print(p.decode().strip()) + else: + print("binary") + print("--------") + diff --git a/python/scripts/generate_functions.py b/python/scripts/generate_functions.py index 872672437..5d281cdd9 100644 --- a/python/scripts/generate_functions.py +++ b/python/scripts/generate_functions.py @@ -13,13 +13,17 @@ import subprocess import argparse import sys import time +import ctypes.util, re # to check libclang version from pathlib import Path from parse import system_include_paths, clang_format_version REDC = "\033[91m" GREENC = "\033[92m" +YELLOWC = "\033[93m" ENDC = "\033[0m" +def yellow(msg): + return f"{YELLOWC}{msg}{ENDC}" def red(msg): return f"{REDC}{msg}{ENDC}" @@ -29,6 +33,25 @@ def green(msg): return f"{GREENC}{msg}{ENDC}" +def check_libclang_version(required="12"): + # Use already-loaded libclang, or let cindex resolve it + lib = ctypes.CDLL(cindex.Config.library_file or ctypes.util.find_library("clang")) + + # Get version string + lib.clang_getClangVersion.restype = ctypes.c_void_p + version_ptr = lib.clang_getClangVersion() + version_str = ctypes.cast(version_ptr, ctypes.c_char_p).value.decode() + + # Parse and check version + match = re.search(r"version\s+(\d+)", version_str) + if not match or match.group(1) != required: + msg = red(f"libclang version {match.group(1) if match else '?'} found, but version {required} required. Bye!") + print(msg) + sys.exit(1) + msg = green(f"Found libclang version {required}") + print(msg) + + def check_clang_format_version(required_version): if (ver := clang_format_version()) != required_version: msg = red( @@ -120,9 +143,30 @@ def time_return_lambda(node, args): def visit(node): + + loc = node.location + # skip if ndoe is outside project directory + if loc.file and not str(loc.file).startswith(str(cargs.build_path.parent)): + return + + ''' + # to see which file was causing the error (not in Detector.h, so skipping others in the above code) + try: + kind = node.kind + except ValueError as e: + loc = node.location + file_name = loc.file.name if loc.file else "" + msg = yellow(f"\nWarning: skipping node with unknown CursorKind id {node._kind_id} at {file_name}:{loc.line}:{loc.column}") + print(msg) + return + ''' + if node.kind == cindex.CursorKind.CLASS_DECL: if node.displayname == "Detector": for child in node.get_children(): + # Skip assignment operators + if child.kind == cindex.CursorKind.CXX_METHOD and child.spelling == "operator=": + continue if ( child.kind == cindex.CursorKind.CXX_METHOD and child.access_specifier == cindex.AccessSpecifier.PUBLIC @@ -158,6 +202,7 @@ if __name__ == "__main__": ) cargs = parser.parse_args() + check_libclang_version("12") check_clang_format_version(12) check_for_compile_commands_json(cargs.build_path) diff --git a/python/setup.py b/python/setup.py deleted file mode 100755 index 29663e405..000000000 --- a/python/setup.py +++ /dev/null @@ -1,73 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package -""" -Setup file for slsdet -Build upon the pybind11 example found here: https://github.com/pybind/python_example -""" - -import os -import sys -from setuptools import setup, find_packages -from pybind11.setup_helpers import Pybind11Extension, build_ext - - -import subprocess -def get_git_tag(): - try: - return subprocess.check_output(['git', 'describe', '--tags', '--abbrev=0']).strip().decode('utf-8') - except subprocess.CalledProcessError: - return 'developer' -__version__ = get_git_tag() - - -def get_conda_path(): - """ - Keep this a function if we need some fancier logic later - """ - print('Prefix: ', os.environ['CONDA_PREFIX']) - return os.environ['CONDA_PREFIX'] - - -#TODO migrate to CMake build or fetch files from cmake? -ext_modules = [ - Pybind11Extension( - '_slsdet', - ['src/main.cpp', - 'src/enums.cpp', - 'src/current.cpp', - 'src/detector.cpp', - 'src/network.cpp', - 'src/pattern.cpp', - 'src/scan.cpp', - 'src/duration.cpp', - 'src/DurationWrapper.cpp', - 'src/pedestal.cpp', - ] - - - , - include_dirs=[ - os.path.join(get_conda_path(), 'include'), - - ], - libraries=['SlsDetector', 'SlsSupport', 'SlsReceiver'], - library_dirs=[ - os.path.join(get_conda_path(), 'lib'), - ], - language='c++' - ), -] - -setup( - name='slsdet', - version=__version__, - author='Erik Frojdh', - author_email='erik.frojdh@psi.ch', - url='https://github.com/slsdetectorgroup/slsDetectorPackage', - description='Detector API for SLS Detector Group detectors', - long_description='', - packages=find_packages(exclude=['contrib', 'docs', 'tests']), - ext_modules=ext_modules, - cmdclass={"build_ext": build_ext}, - zip_safe=False, -) diff --git a/python/slsdet/PatternGenerator.py b/python/slsdet/PatternGenerator.py new file mode 100644 index 000000000..74c61fc54 --- /dev/null +++ b/python/slsdet/PatternGenerator.py @@ -0,0 +1,226 @@ +from . import Detector, Pattern +from .bits import setbit, clearbit +import textwrap +from pathlib import Path + + +class PatternGenerator: + """ + Class to generate a pattern for the SLS detector. Intents to as closely as possible + mimic the old pattern generation in the C code. + """ + def __init__(self): + self.pattern = Pattern() + self.iaddr = 0 + + def SB(self, *bits): + """ + Set one or several bits. Change will take affect with the next PW. + """ + for bit in bits: + self.pattern.word[self.iaddr] = setbit(bit, self.pattern.word[self.iaddr]) + return self.pattern.word[self.iaddr] + + def CB(self, *bits): + """ + Clear one or several bits. Change will take affect with the next PW. + """ + for bit in bits: + self.pattern.word[self.iaddr] = clearbit(bit, self.pattern.word[self.iaddr]) + return self.pattern.word[self.iaddr] + + + def _pw(self, verbose = False): + if verbose: + print(f'{self.iaddr:#06x} {self.pattern.word[self.iaddr]:#018x}') + + #Limits are inclusive so we need to increment the address before writing the next word + self.pattern.limits[1] = self.iaddr + self.iaddr += 1 + self.pattern.word[self.iaddr] = self.pattern.word[self.iaddr-1] + + def PW(self, x = 1, verbose = False): + for i in range(x): + self._pw(verbose) + + # def REPEAT(self, x, verbose = False): + # for i in range(x): + # self._pw(verbose) + + # def PW2(self, verbose = 0): + # self.REPEAT(2, verbose) + + + def CLOCKS(self, bit, times = 1, length = 1, verbose = False): + """ + clocks "bit" n "times", every half clock is long "length" + length is optional, default value is 1 + """ + for i in range(0, times): + self.SB(bit); self.PW(length, verbose) + self.CB(bit); self.PW(length, verbose) + + def CLOCK(self, bit, length = 1, verbose = 0): + self.CLOCKS(bit, 1, length ,verbose) + + def serializer(self, value, serInBit, clkBit, nbits, msbfirst = True, length = 1): + """serializer(value,serInBit,clkBit,nbits,msbfirst=1,length=1) + Produces the .pat file needed to serialize a word into a shift register. + value: value to be serialized + serInBit: control bit corresponding to serial in + clkBit: control bit corresponding to the clock + nbits: number of bits of the target register to load + msbfirst: if 1 pushes in the MSB first (default), + if 0 pushes in the LSB first + length: length of all the PWs in the pattern + It produces no output because it modifies directly the members of the class pat via SB and CB""" + + c = value + self.CB(serInBit, clkBit) + self.PW(length) #generate initial line with clk and serIn to 0 + + start = 0 + stop = nbits + step = 1 + + if msbfirst: + start = nbits - 1 + stop = -1 + step =- 1 #reverts loop if msb has to be pushed in first + + for i in range(start, stop, step): + if c & (1< 0: + self.pattern.word[n] = self.pattern.word[n-1] + + + def send_to_detector(self, det): + """ + Load the pattern into the detector. + """ + det.setPattern(self.pattern) \ No newline at end of file diff --git a/python/slsdet/__init__.py b/python/slsdet/__init__.py index 7cd0b383a..7cfbd17fb 100755 --- a/python/slsdet/__init__.py +++ b/python/slsdet/__init__.py @@ -9,12 +9,14 @@ from .detector import Detector from .jungfrau import Jungfrau from .mythen3 import Mythen3 from .gotthard2 import Gotthard2 -from .gotthard import Gotthard from .moench import Moench from .pattern import Pattern, patternParameters from .gaincaps import Mythen3GainCapsWrapper +from .PatternGenerator import PatternGenerator + +from . import _slsdet +from ._slsdet import freeSharedMemory, getUserDetails -import _slsdet xy = _slsdet.xy defs = _slsdet.slsDetectorDefs @@ -22,6 +24,7 @@ defs = _slsdet.slsDetectorDefs from .enums import * from .defines import * + IpAddr = _slsdet.IpAddr MacAddr = _slsdet.MacAddr scanParameters = _slsdet.scanParameters @@ -29,12 +32,17 @@ currentSrcParameters = _slsdet.currentSrcParameters DurationWrapper = _slsdet.DurationWrapper pedestalParameters = _slsdet.pedestalParameters - -import subprocess -def get_git_tag(): +import os +def read_version(): try: - return subprocess.check_output(['git', 'describe', '--tags', '--abbrev=0']).strip().decode('utf-8') - except subprocess.CalledProcessError: - return 'developer' -__version__ = get_git_tag() + version_file = os.path.join(os.path.dirname(__file__), 'VERSION') + with open(version_file, "r") as f: + return f.read().strip() + except: + raise RuntimeError("VERSION file not found in slsdet package from init.py") + +__version__ = read_version() + + + diff --git a/python/slsdet/bits.py b/python/slsdet/bits.py new file mode 100644 index 000000000..5ccff764f --- /dev/null +++ b/python/slsdet/bits.py @@ -0,0 +1,31 @@ +import numpy as np + + +def setbit(bit, word): + if isinstance(word, np.generic): + mask = word.dtype.type(1) + mask = mask << bit + else: + mask = 1 << bit + return word | mask + + +def setbit_arr(bit, arr): + arr |= arr.dtype.type(1 << bit) + + +def clearbit(bit, word): + """ + Clear the bit at position bit in word. + Two paths to avoid converting the types. + """ + if isinstance(word, np.generic): + mask = word.dtype.type(1) + mask = ~(mask << bit) + else: + mask = ~(1 << bit) + return word & mask + + +def clearbit_arr(bit, arr): + arr &= arr.dtype.type(~(1 << bit)) \ No newline at end of file diff --git a/python/slsdet/ctb.py b/python/slsdet/ctb.py index ad671a93e..1295af9cb 100644 --- a/python/slsdet/ctb.py +++ b/python/slsdet/ctb.py @@ -4,7 +4,7 @@ from .detector import Detector, freeze from .utils import element_if_equal from .dacs import DetectorDacs, NamedDacs from .powers import DetectorPowers, NamedPowers -import _slsdet +from . import _slsdet dacIndex = _slsdet.slsDetectorDefs.dacIndex from .detector_property import DetectorProperty diff --git a/python/slsdet/dacs.py b/python/slsdet/dacs.py index 961d0bebe..547a43277 100755 --- a/python/slsdet/dacs.py +++ b/python/slsdet/dacs.py @@ -3,7 +3,7 @@ from .detector_property import DetectorProperty from functools import partial import numpy as np -import _slsdet +from . import _slsdet from .detector import freeze dacIndex = _slsdet.slsDetectorDefs.dacIndex class Dac(DetectorProperty): diff --git a/python/slsdet/detector.py b/python/slsdet/detector.py index ce8a60999..1d62158cf 100755 --- a/python/slsdet/detector.py +++ b/python/slsdet/detector.py @@ -1,8 +1,8 @@ # SPDX-License-Identifier: LGPL-3.0-or-other # Copyright (C) 2021 Contributors to the SLS Detector Package -from _slsdet import CppDetectorApi -from _slsdet import slsDetectorDefs -from _slsdet import IpAddr, MacAddr +from ._slsdet import CppDetectorApi +from ._slsdet import slsDetectorDefs +from ._slsdet import IpAddr, MacAddr runStatus = slsDetectorDefs.runStatus timingMode = slsDetectorDefs.timingMode @@ -15,7 +15,7 @@ defs = slsDetectorDefs from .utils import element_if_equal, all_equal, get_set_bits, list_to_bitmask from .utils import Geometry, to_geo, element, reduce_time, is_iterable, hostname_list -from _slsdet import xy +from ._slsdet import xy, freeSharedMemory, getUserDetails from .gaincaps import Mythen3GainCapsWrapper from . import utils as ut from .proxy import JsonProxy, SlowAdcProxy, ClkDivProxy, MaxPhaseProxy, ClkFreqProxy, PatLoopProxy, PatNLoopProxy, PatWaitProxy, PatWaitTimeProxy @@ -90,7 +90,7 @@ class Detector(CppDetectorApi): def free(self): """Free detector shared memory""" - self.freeSharedMemory() + freeSharedMemory(self.getShmId()) @property def config(self): @@ -151,6 +151,10 @@ class Detector(CppDetectorApi): def hostname(self): """Frees shared memory and sets hostname (or IP address) of all modules concatenated by + Virtual servers can already use the port in hostname separated by ':' and ports incremented by 2 to accomodate the stop server as well. + + Note + ----- + The row and column values in the udp/zmq header are affected by the order in this command and the detsize command. The modules are stacked row by row until they reach the y-axis limit set by detsize (if specified). Then, stacking continues in the next column and so on. This only affects row and column in udp/zmq header. Example ------- @@ -270,7 +274,7 @@ class Detector(CppDetectorApi): @property @element def serialnumber(self): - """Jungfrau][Gotthard][Mythen3][Gotthard2][CTB][Moench] Serial number of detector """ + """Jungfrau][Mythen3][Gotthard2][CTB][Moench] Serial number of detector """ return ut.lhex(self.getSerialNumber()) @property @@ -308,7 +312,7 @@ class Detector(CppDetectorApi): ----- [Eiger] Options: 4, 8, 12, 16, 32. If set to 32, also sets clkdivider to 2 (quarter speed), else to 0 (full speed)\n [Mythen3] Options: 8, 16, 32 \n - [Jungfrau][Moench][Gotthard][Ctb][Mythen3][Gotthard2][Xilinx Ctb] 16 + [Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] 16 """ return self.getDynamicRange() @@ -368,7 +372,6 @@ class Detector(CppDetectorApi): [Eiger] Use threshold command to load settings [Jungfrau] GAIN0, HIGHGAIN0 \n - [Gotthard] DYNAMICGAIN, HIGHGAIN, LOWGAIN, MEDIUMGAIN, VERYHIGHGAIN \n [Gotthard2] DYNAMICGAIN, FIXGAIN1, FIXGAIN2 \n [Eiger] settings loaded from file found in settingspath [Moench] G1_HIGHGAIN, G1_LOWGAIN, G2_HIGHCAP_HIGHGAIN, G2_HIGHCAP_LOWGAIN, G2_LOWCAP_HIGHGAIN, G2_LOWCAP_LOWGAIN, G4_HIGHGAIN, G4_LOWGAIN @@ -400,7 +403,7 @@ class Detector(CppDetectorApi): @element def framesl(self): """ - [Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][CTB][Xilinx CTB] Number of frames left in acquisition.\n + [Jungfrau][Moench][Mythen3][Gotthard2][CTB][Xilinx CTB] Number of frames left in acquisition.\n Note ---- @@ -631,7 +634,7 @@ class Detector(CppDetectorApi): @element def periodl(self): """ - [Gotthard][Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx Ctb] Period left for current frame. + [Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx Ctb] Period left for current frame. Note ----- @@ -653,7 +656,7 @@ class Detector(CppDetectorApi): @element def delay(self): """ - [Gotthard][Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx Ctb] Delay after trigger, accepts either a value in seconds, DurationWrapper or datetime.timedelta + [Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx Ctb] Delay after trigger, accepts either a value in seconds, DurationWrapper or datetime.timedelta :getter: always returns in seconds. To get in DurationWrapper, use getDelayAfterTrigger @@ -695,7 +698,7 @@ class Detector(CppDetectorApi): @element def delayl(self): """ - [Gotthard][Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx Ctb] Delay left after trigger during acquisition, accepts either a value in seconds, datetime.timedelta or DurationWrapper + [Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx Ctb] Delay left after trigger during acquisition, accepts either a value in seconds, datetime.timedelta or DurationWrapper Note ----- @@ -1440,8 +1443,6 @@ class Detector(CppDetectorApi): @udp_srcip.setter def udp_srcip(self, ip): if ip == "auto": - if self.type == detectorType.GOTTHARD: - raise NotImplementedError('Auto for udp_srcip cannot be used for GotthardI') ip = socket.gethostbyname(self.hostname[0]) ip = ut.make_ip(ip) ut.set_using_dict(self.setSourceUDPIP, ip) @@ -1522,7 +1523,6 @@ class Detector(CppDetectorApi): Note ----- - [Gotthard] 0, 90, 110, 120, 150, 180, 200 \n [Eiger][Mythen3][Gotthard2] 0 - 200 \n [Jungfrau][Moench][Ctb] 0, 60 - 200 """ @@ -1537,7 +1537,7 @@ class Detector(CppDetectorApi): """ Retrieve user details from shared memory (hostname, type, PID, User, Date) """ - return self.getUserDetails() + return getUserDetails(self.getShmId()) @property @element @@ -1650,7 +1650,7 @@ class Detector(CppDetectorApi): def master(self): """ [Eiger][Gotthard2][Jungfrau][Moench] Sets (half) module to master and other(s) to slaves.\n - [Gotthard][Gotthard2][Mythen3][Eiger][Jungfrau][Moench] Gets if the current (half) module is master. + [Gotthard2][Mythen3][Eiger][Jungfrau][Moench] Gets if the current (half) module is master. """ return self.getMaster() @@ -1908,7 +1908,7 @@ class Detector(CppDetectorApi): @property def adcreg(self): - """[Jungfrau][Moench][Ctb][Gotthard] Writes to an adc register + """[Jungfrau][Moench][Ctb] Writes to an adc register Note ----- @@ -1937,7 +1937,7 @@ class Detector(CppDetectorApi): @element def triggersl(self): """ - [Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][CTB][Xilinx CTB] Number of triggers left in acquisition.\n + [Jungfrau][Moench][Mythen3][Gotthard2][CTB][Xilinx CTB] Number of triggers left in acquisition.\n Note ---- @@ -2184,6 +2184,7 @@ class Detector(CppDetectorApi): :setter: It loads trim files from settingspath.\n [Mythen3] An energy of -1 will pick up values from detector. """ + if self.type == detectorType.MYTHEN3: return self.getAllThresholdEnergy() return self.getThresholdEnergy() @@ -2202,7 +2203,7 @@ class Detector(CppDetectorApi): Note ----- Default: AUTO_TIMING \n - [Jungfrau][Moench][Gotthard][Ctb][Gotthard2][Xilinx Ctb] AUTO_TIMING, TRIGGER_EXPOSURE \n + [Jungfrau][Moench][Ctb][Gotthard2][Xilinx Ctb] AUTO_TIMING, TRIGGER_EXPOSURE \n [Mythen3] AUTO_TIMING, TRIGGER_EXPOSURE, GATED, TRIGGER_GATED \n [Eiger] AUTO_TIMING, TRIGGER_EXPOSURE, GATED, BURST_TRIGGER """ @@ -2259,7 +2260,7 @@ class Detector(CppDetectorApi): def type(self): """ Returns detector type. Enum: detectorType - [EIGER, JUNGFRAU, GOTTHARD, MOENCH, MYTHEN3, GOTTHARD2, CHIPTESTBOARD] + [EIGER, JUNGFRAU, MOENCH, MYTHEN3, GOTTHARD2, CHIPTESTBOARD] :setter: Not implemented """ @@ -2566,7 +2567,7 @@ class Detector(CppDetectorApi): Note ----- - By default, the on-chip gain switching is active during the entire exposure. This mode disables the on-chip gain switching comparator automatically after 93.75% of exposure time (only for longer than 100us). The % is only for chipv1.0, the duration can be set for chipv1.1.\n + By default, the on-chip gain switching is active during the entire exposure. This mode disables the on-chip gain switching comparator automatically and the duration is set using compdisabletime.\n Default is 0 or this mode disabled (comparator enabled throughout). 1 enables mode. 0 disables mode. """ return self.getAutoComparatorDisable() @@ -2580,10 +2581,6 @@ class Detector(CppDetectorApi): def compdisabletime(self): """[Jungfrau] Time before end of exposure when comparator is disabled. - Note - ----- - It is only possible for chipv1.1. - :getter: always returns in seconds. To get in DurationWrapper, use getComparatorDisableTime Example @@ -2913,7 +2910,7 @@ class Detector(CppDetectorApi): @property @element def timing_info_decoder(self): - """[Jungfrau] [Jungfrau] Advanced Command and only for SWISSFEL and SHINE. Sets the bunch id or timing info decoder. Default is SWISSFEL. + """[Jungfrau] [Jungfrau] Advanced Command and only for SWISSFEL and SHINE. Sets the bunch id or timing info decoder. Default is SWISSFEL. Only allowed for pcbv2.0. Enum: timingInfoDecoder """ return self.getTimingInfoDecoder() @@ -3308,7 +3305,11 @@ class Detector(CppDetectorApi): @property @element def runclk(self): - """[Ctb] Run clock in MHz.""" + """ + [Ctb] Sets Run clock frequency in MHz. \n + [Xilinx Ctb] Sets Run clock frequency in kHz. + """ + return self.getRUNClock() @runclk.setter @@ -3389,7 +3390,11 @@ class Detector(CppDetectorApi): @property @element def dbitclk(self): - """[Ctb] Clock for latching the digital bits in MHz.""" + """ + [Ctb] Sets clock for latching the digital bits in MHz. \n + [Xilinx Ctb] clock for latching the digital bits in kHz. + """ + return self.getDBITClock() @dbitclk.setter @@ -3467,6 +3472,16 @@ class Detector(CppDetectorApi): def rx_dbitoffset(self, value): ut.set_using_dict(self.setRxDbitOffset, value) + @property + @element + def rx_dbitreorder(self): + """[Ctb] Reorder digital data to group together all samples per signal. Default is 1. Setting to 0 means 'do not reorder' and to keep what the board spits out, which is that all signals in a sample are grouped together.""" + return self.getRxDbitReorder() + + @rx_dbitreorder.setter + def rx_dbitreorder(self, value): + ut.set_using_dict(self.setRxDbitReorder, value) + @property @element def maxadcphaseshift(self): @@ -3479,15 +3494,13 @@ class Detector(CppDetectorApi): @property @element def adcphase(self): - """[Gotthard][Jungfrau][Moench][CTB] Sets phase shift of ADC clock. + """[Jungfrau][Moench][CTB] Sets phase shift of ADC clock. Note ----- [Jungfrau][Moench] Absolute phase shift. Changing Speed also resets adcphase to recommended defaults.\n - [Ctb] Absolute phase shift. Changing adcclk also resets adcphase and sets it to previous values.\n - [Gotthard] Relative phase shift. + [Ctb] Absolute phase shift. Changing adcclk also resets adcphase and sets it to previous values. - :getter: Not implemented for Gotthard """ return self.getADCPhase() @@ -3508,7 +3521,11 @@ class Detector(CppDetectorApi): @property @element def adcclk(self): - """[Ctb] Sets ADC clock frequency in MHz. """ + """ + [Ctb] Sets ADC clock frequency in MHz. \n + [Xilinx Ctb] Sets ADC clock frequency in kHz. + """ + return self.getADCClock() @adcclk.setter @@ -3702,7 +3719,13 @@ class Detector(CppDetectorApi): @property def patwaittime(self): """ - [Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles of loop level provided. + [Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles of loop level provided. + + Info + ---- + + :getter: Always return in clock cycles. To get in DurationWrapper, use getPatternWaitInterval + :setter: Accepts either a value in clock cycles or a time unit (timedelta, DurationWrapper) Example ------- @@ -3713,41 +3736,85 @@ class Detector(CppDetectorApi): 0: 5 1: 20 2: 30 + >>> # using timedelta (up to microseconds precision) + >>> from datetime import timedelta + >>> d.patwaittime[0] = timedelta(seconds=1, microseconds=3) + >>> + >>> # using DurationWrapper to set in seconds + >>> from slsdet import DurationWrapper + >>> d.patwaittime[0] = DurationWrapper(1.2) + >>> + >>> # using DurationWrapper to set in ns + >>> t = DurationWrapper() + >>> t.set_count(500) + >>> d.patwaittime = t + >>> + >>> # to get in clock cycles + >>> d.patwaittime + 1000 + >>> + >>> d.getPatternWaitInterval(0) + sls::DurationWrapper(total_seconds: 1.23 count: 1230000000) """ return PatWaitTimeProxy(self) - @property - @element - def patwaittime0(self): - """[Ctb][Mythen3][Xilinx Ctb] Wait 0 time in clock cycles.""" - return self.getPatternWaitTime(0) - @patwaittime0.setter - def patwaittime0(self, nclk): - nclk = ut.merge_args(0, nclk) - ut.set_using_dict(self.setPatternWaitTime, *nclk) + def create_patwaittime_property(level): + docstring_template =""" + Deprecated command. Use patwaittime instead. + [Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles of loop level {level} provided. - @property - @element - def patwaittime1(self): - """[Ctb][Mythen3][Xilinx Ctb] Wait 1 time in clock cycles.""" - return self.getPatternWaitTime(1) + Info + ---- - @patwaittime1.setter - def patwaittime1(self, nclk): - nclk = ut.merge_args(1, nclk) - ut.set_using_dict(self.setPatternWaitTime, *nclk) + :getter: Always return in clock cycles. To get in DurationWrapper, use getPatternWaitInterval + :setter: Accepts either a value in clock cycles or a time unit (timedelta, DurationWrapper) + + Example + ------- + >>> d.patwaittime{level} = 5 + >>> d.patwaittime{level} + 5 + >>> # using timedelta (up to microseconds precision) + >>> from datetime import timedelta + >>> d.patwaittime{level} = timedelta(seconds=1, microseconds=3) + >>> + >>> # using DurationWrapper to set in seconds + >>> from slsdet import DurationWrapper + >>> d.patwaittime{level} = DurationWrapper(1.2) + >>> + >>> # using DurationWrapper to set in ns + >>> t = DurationWrapper() + >>> t.set_count(500) + >>> d.patwaittime{level} = t + >>> + >>> # to get in clock cycles + >>> d.patwaittime{level} + 1000 + >>> + >>> d.getPatternWaitInterval(level) + sls::DurationWrapper(total_seconds: 1.23 count: 1230000000) + """ + @property + @element + def patwaittime(self): + return self.getPatternWaitClocks(level) - @property - @element - def patwaittime2(self): - """[Ctb][Mythen3][Xilinx Ctb] Wait 2 time in clock cycles.""" - return self.getPatternWaitTime(2) + @patwaittime.setter + def patwaittime(self, value): + if isinstance(value, (int, float)) and not isinstance(value, bool): + nclk = ut.merge_args(level, value) + ut.set_using_dict(self.setPatternWaitClocks, level, *nclk) + else: + ut.set_time_using_dict(self.setPatternWaitInterval, level, value) + + patwaittime.__doc__ = docstring_template.format(level=level) - @patwaittime2.setter - def patwaittime2(self, nclk): - nclk = ut.merge_args(2, nclk) - ut.set_using_dict(self.setPatternWaitTime, *nclk) + return patwaittime + + patwaittime0 = create_patwaittime_property(0) + patwaittime1 = create_patwaittime_property(1) + patwaittime2 = create_patwaittime_property(2) @property @@ -4038,27 +4105,6 @@ class Detector(CppDetectorApi): return ClkDivProxy(self) - """ - ---------------------------<<>>--------------------------- - """ - - @property - def exptimel(self): - """[Gotthard] Exposure time left for current frame. - - :getter: always returns in seconds. To get in DurationWrapper, use getExptimeLeft - :setter: Not Implemented - - Example - ----------- - >>> d.exptimel - 181.23 - >>> d.getExptimeLeft() - [sls::DurationWrapper(total_seconds: 181.23 count: 181230000000)] - """ - t = self.getExptimeLeft() - return reduce_time(t) - """ ---------------------------<<>>--------------------------- diff --git a/python/slsdet/eiger.py b/python/slsdet/eiger.py index a65532677..db12b7909 100755 --- a/python/slsdet/eiger.py +++ b/python/slsdet/eiger.py @@ -11,7 +11,7 @@ Created on Wed Dec 6 11:51:18 2017 from .detector import Detector from .temperature import Temperature, DetectorTemperature from .dacs import DetectorDacs -import _slsdet +from . import _slsdet dacIndex = _slsdet.slsDetectorDefs.dacIndex from .detector_property import DetectorProperty diff --git a/python/slsdet/enums.py b/python/slsdet/enums.py index 02e3c5126..41dcd5dec 100644 --- a/python/slsdet/enums.py +++ b/python/slsdet/enums.py @@ -15,8 +15,8 @@ if dt === detectorType.EIGER: """ -import _slsdet +from . import _slsdet for name, cls in _slsdet.slsDetectorDefs.__dict__.items(): if isinstance(cls, type): - exec(f'{name} = {cls.__module__}.{cls.__qualname__}') + exec(f'{name} = _slsdet.{cls.__qualname__}') diff --git a/python/slsdet/gaincaps.py b/python/slsdet/gaincaps.py index ab3acd381..900503624 100644 --- a/python/slsdet/gaincaps.py +++ b/python/slsdet/gaincaps.py @@ -1,6 +1,6 @@ -import _slsdet +from . import _slsdet gc = _slsdet.slsDetectorDefs.M3_GainCaps diff --git a/python/slsdet/gotthard.py b/python/slsdet/gotthard.py deleted file mode 100644 index 9468c78a3..000000000 --- a/python/slsdet/gotthard.py +++ /dev/null @@ -1,53 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -""" -This file contains the specialization for the Moench detector -""" - - -from .detector import Detector, freeze -from .dacs import DetectorDacs -import _slsdet -dacIndex = _slsdet.slsDetectorDefs.dacIndex -from .detector_property import DetectorProperty - -# @freeze - -# vref_ds, vcascn_pb, vcascp_pb, vout_cm, vcasc_out, vin_cm, vref_comp, ib_test_c -class GotthardDacs(DetectorDacs): - _dacs = [('vref_ds', dacIndex.VREF_DS, 0, 4000, 660), - ('vcascn_pb', dacIndex.VCASCN_PB, 0, 4000, 650), - ('vcascp_pb,', dacIndex.VCASCP_PB, 0, 4000, 1480), - ('vout_cm', dacIndex.VOUT_CM, 0, 4000, 1520), - ('vcasc_out', dacIndex.VCASC_OUT, 0, 4000, 1320), - ('vin_cm', dacIndex.VIN_CM, 0, 4000, 1350), - ('vref_comp', dacIndex.VREF_COMP, 0, 4000, 350), - ('ib_test_c', dacIndex.IB_TESTC, 0, 4000, 2001), - ] - _dacnames = [_d[0] for _d in _dacs] - -#vthreshold?? - - -@freeze -class Gotthard(Detector): - """ - Subclassing Detector to set up correct dacs and detector specific - functions. - """ - _detector_dynamic_range = [16] - - - _settings = ['standard', 'highgain', 'lowgain', 'veryhighgain', 'verylowgain'] - """available settings for Eiger, note almost always standard""" - - def __init__(self, id=0): - super().__init__(id) - self._frozen = False - self._dacs = GotthardDacs(self) - - @property - def dacs(self): - return self._dacs \ No newline at end of file diff --git a/python/slsdet/gotthard2.py b/python/slsdet/gotthard2.py index bdb36097f..fb2786faf 100644 --- a/python/slsdet/gotthard2.py +++ b/python/slsdet/gotthard2.py @@ -11,7 +11,7 @@ from .detector import Detector, freeze # from .adcs import Adc, DetectorAdcs from .dacs import DetectorDacs -import _slsdet +from . import _slsdet dacIndex = _slsdet.slsDetectorDefs.dacIndex from .detector_property import DetectorProperty diff --git a/python/slsdet/jungfrau.py b/python/slsdet/jungfrau.py index 9da5b7771..1021a55f1 100644 --- a/python/slsdet/jungfrau.py +++ b/python/slsdet/jungfrau.py @@ -11,7 +11,7 @@ from .detector import Detector, freeze # from .adcs import Adc, DetectorAdcs from .dacs import DetectorDacs -import _slsdet +from . import _slsdet dacIndex = _slsdet.slsDetectorDefs.dacIndex from .detector_property import DetectorProperty @@ -24,7 +24,7 @@ class JungfrauDacs(DetectorDacs): ('vdd_prot', dacIndex.VDD_PROT, 0, 4000, 3000), ('vin_com', dacIndex.VIN_COM, 0, 4000, 1053), ('vref_prech', dacIndex.VREF_PRECH, 0, 4000, 1450), - ('vb_pixbuff', dacIndex.VB_PIXBUF, 0, 4000, 750), + ('vb_pixbuf', dacIndex.VB_PIXBUF, 0, 4000, 750), ('vb_ds', dacIndex.VB_DS, 0, 4000, 1000), ('vref_ds', dacIndex.VREF_DS, 0, 4000, 480), ('vref_comp', dacIndex.VREF_COMP, 0, 4000, 420), diff --git a/python/slsdet/moench.py b/python/slsdet/moench.py index 6ed49a43d..7e93bee65 100644 --- a/python/slsdet/moench.py +++ b/python/slsdet/moench.py @@ -9,7 +9,7 @@ This file contains the specialization for the Moench detector from .detector import Detector, freeze from .dacs import DetectorDacs -import _slsdet +from . import _slsdet dacIndex = _slsdet.slsDetectorDefs.dacIndex from .detector_property import DetectorProperty diff --git a/python/slsdet/mythen3.py b/python/slsdet/mythen3.py index 369d6ac99..14e1294ea 100644 --- a/python/slsdet/mythen3.py +++ b/python/slsdet/mythen3.py @@ -11,7 +11,7 @@ from .detector import Detector, freeze # from .adcs import Adc, DetectorAdcs from .dacs import DetectorDacs -import _slsdet +from . import _slsdet dacIndex = _slsdet.slsDetectorDefs.dacIndex gc_enums = _slsdet.slsDetectorDefs.M3_GainCaps from .detector_property import DetectorProperty diff --git a/python/slsdet/pattern.py b/python/slsdet/pattern.py index a2d80fdfe..273865c65 100644 --- a/python/slsdet/pattern.py +++ b/python/slsdet/pattern.py @@ -1,8 +1,8 @@ # SPDX-License-Identifier: LGPL-3.0-or-other # Copyright (C) 2021 Contributors to the SLS Detector Package -import _slsdet +from . import _slsdet -from _slsdet import Pattern +from ._slsdet import Pattern class patternParameters(_slsdet.patternParameters): diff --git a/python/slsdet/powers.py b/python/slsdet/powers.py index 8de1781c7..a513eedbe 100755 --- a/python/slsdet/powers.py +++ b/python/slsdet/powers.py @@ -3,7 +3,7 @@ from .detector_property import DetectorProperty from functools import partial import numpy as np -import _slsdet +from . import _slsdet from .detector import freeze dacIndex = _slsdet.slsDetectorDefs.dacIndex class Power(DetectorProperty): diff --git a/python/slsdet/proxy.py b/python/slsdet/proxy.py index cd10cb38a..c0aa57900 100644 --- a/python/slsdet/proxy.py +++ b/python/slsdet/proxy.py @@ -3,7 +3,7 @@ from .utils import element_if_equal from .enums import dacIndex from .defines import M3_MAX_PATTERN_LEVELS, MAX_PATTERN_LEVELS -from _slsdet import slsDetectorDefs +from ._slsdet import slsDetectorDefs detectorType = slsDetectorDefs.detectorType @@ -275,10 +275,13 @@ class PatWaitTimeProxy: self.det = det def __getitem__(self, key): - return element_if_equal(self.det.getPatternWaitTime(key)) + return element_if_equal(self.det.getPatternWaitClocks(key)) def __setitem__(self, key, value): - set_proxy_using_dict(self.det.setPatternWaitTime, key, value) + if isinstance(value, (int, float)) and not isinstance(value, bool): + set_proxy_using_dict(self.det.setPatternWaitClocks, key, value) + else: + set_proxy_using_dict(self.det.setPatternWaitInterval, key, value) def __repr__(self): max_levels = MAX_PATTERN_LEVELS diff --git a/python/slsdet/utils.py b/python/slsdet/utils.py index 89a7651bc..9181298e5 100755 --- a/python/slsdet/utils.py +++ b/python/slsdet/utils.py @@ -6,7 +6,7 @@ but not directly used in controlling the detector """ from collections import namedtuple -import _slsdet #C++ lib +from . import _slsdet #C++ lib import functools import datetime as dt import pathlib @@ -281,6 +281,6 @@ def hostname_list(args): def validate_port(value): - if value <= 0 or value > 65535: - raise ValueError("port must be in range 1 - 65535") + if value < 1024 or value > 65535: + raise ValueError("port must be in range 1024 - 65535") diff --git a/python/src/detector.cpp b/python/src/detector.cpp index 5ca05412b..6c202eaba 100644 --- a/python/src/detector.cpp +++ b/python/src/detector.cpp @@ -25,6 +25,9 @@ void init_det(py::module &m) { (void (*)(const int, const int)) & sls::freeSharedMemory, py::arg() = 0, py::arg() = -1); + m.def("getUserDetails", (std::string(*)(const int)) & sls::getUserDetails, + py::arg() = 0); + py::class_ CppDetectorApi(m, "CppDetectorApi"); CppDetectorApi.def(py::init()); @@ -109,6 +112,13 @@ void init_det(py::module &m) { (Result(Detector::*)(sls::Positions) const) & Detector::getModuleSize, py::arg() = Positions{}); + CppDetectorApi.def("getPortPerModuleGeometry", + (defs::xy(Detector::*)() const) & + Detector::getPortPerModuleGeometry); + CppDetectorApi.def("getPortSize", + (Result(Detector::*)(sls::Positions) const) & + Detector::getPortSize, + py::arg() = Positions{}); CppDetectorApi.def("getDetectorSize", (defs::xy(Detector::*)() const) & Detector::getDetectorSize); CppDetectorApi.def("setDetectorSize", @@ -924,15 +934,14 @@ void init_det(py::module &m) { (void (Detector::*)(bool, sls::Positions)) & Detector::setRxArping, py::arg(), py::arg() = Positions{}); - CppDetectorApi.def("getIndividualRxROIs", - (Result(Detector::*)(sls::Positions) const) & - Detector::getIndividualRxROIs, - py::arg()); CppDetectorApi.def("getRxROI", - (defs::ROI(Detector::*)() const) & Detector::getRxROI); - CppDetectorApi.def( - "setRxROI", (void (Detector::*)(const defs::ROI)) & Detector::setRxROI, - py::arg()); + (std::vector(Detector::*)(int) const) & + Detector::getRxROI, + py::arg() = -1); + CppDetectorApi.def("setRxROI", + (void (Detector::*)(const std::vector &)) & + Detector::setRxROI, + py::arg()); CppDetectorApi.def("clearRxROI", (void (Detector::*)()) & Detector::clearRxROI); CppDetectorApi.def( @@ -1293,20 +1302,6 @@ void init_det(py::module &m) { (void (Detector::*)(defs::collectionMode, sls::Positions)) & Detector::setCollectionMode, py::arg(), py::arg() = Positions{}); - CppDetectorApi.def("getROI", - (Result(Detector::*)(sls::Positions) const) & - Detector::getROI, - py::arg() = Positions{}); - CppDetectorApi.def("setROI", - (void (Detector::*)(defs::ROI, int)) & Detector::setROI, - py::arg(), py::arg()); - CppDetectorApi.def( - "clearROI", (void (Detector::*)(sls::Positions)) & Detector::clearROI, - py::arg() = Positions{}); - CppDetectorApi.def("getExptimeLeft", - (Result(Detector::*)(sls::Positions) const) & - Detector::getExptimeLeft, - py::arg() = Positions{}); CppDetectorApi.def("getNumberOfBursts", (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfBursts, @@ -1357,10 +1352,11 @@ void init_det(py::module &m) { (void (Detector::*)(const int, const std::string &, sls::Positions)) & Detector::setVetoFile, py::arg(), py::arg(), py::arg() = Positions{}); - CppDetectorApi.def("getBurstMode", - (Result(Detector::*)(sls::Positions)) & - Detector::getBurstMode, - py::arg() = Positions{}); + CppDetectorApi.def( + "getBurstMode", + (Result(Detector::*)(sls::Positions) const) & + Detector::getBurstMode, + py::arg() = Positions{}); CppDetectorApi.def("setBurstMode", (void (Detector::*)(defs::burstMode, sls::Positions)) & Detector::setBurstMode, @@ -1678,6 +1674,14 @@ void init_det(py::module &m) { (void (Detector::*)(int, sls::Positions)) & Detector::setRxDbitOffset, py::arg(), py::arg() = Positions{}); + CppDetectorApi.def("getRxDbitReorder", + (Result(Detector::*)(sls::Positions) const) & + Detector::getRxDbitReorder, + py::arg() = Positions{}); + CppDetectorApi.def("setRxDbitReorder", + (void (Detector::*)(bool, sls::Positions)) & + Detector::setRxDbitReorder, + py::arg(), py::arg() = Positions{}); CppDetectorApi.def("setDigitalIODelay", (void (Detector::*)(uint64_t, int, sls::Positions)) & Detector::setDigitalIODelay, @@ -1861,13 +1865,22 @@ void init_det(py::module &m) { Detector::setPatternWaitAddr, py::arg(), py::arg(), py::arg() = Positions{}); CppDetectorApi.def( - "getPatternWaitTime", + "getPatternWaitClocks", (Result(Detector::*)(int, sls::Positions) const) & - Detector::getPatternWaitTime, + Detector::getPatternWaitClocks, py::arg(), py::arg() = Positions{}); - CppDetectorApi.def("setPatternWaitTime", + CppDetectorApi.def("setPatternWaitClocks", (void (Detector::*)(int, uint64_t, sls::Positions)) & - Detector::setPatternWaitTime, + Detector::setPatternWaitClocks, + py::arg(), py::arg(), py::arg() = Positions{}); + CppDetectorApi.def( + "getPatternWaitInterval", + (Result(Detector::*)(int, sls::Positions) const) & + Detector::getPatternWaitInterval, + py::arg(), py::arg() = Positions{}); + CppDetectorApi.def("setPatternWaitInterval", + (void (Detector::*)(int, sls::ns, sls::Positions)) & + Detector::setPatternWaitInterval, py::arg(), py::arg(), py::arg() = Positions{}); CppDetectorApi.def("getPatternMask", (Result(Detector::*)(sls::Positions)) & @@ -2053,7 +2066,5 @@ void init_det(py::module &m) { (Result(Detector::*)(sls::Positions) const) & Detector::getMeasurementTime, py::arg() = Positions{}); - CppDetectorApi.def("getUserDetails", (std::string(Detector::*)() const) & - Detector::getUserDetails); ; } diff --git a/python/src/detector_in.cpp b/python/src/detector_in.cpp index e19f3c103..2c7d4440f 100644 --- a/python/src/detector_in.cpp +++ b/python/src/detector_in.cpp @@ -19,6 +19,8 @@ void init_det(py::module &m) { using sls::Result; m.def("freeSharedMemory", (void (*)(const int, const int)) &sls::freeSharedMemory, py::arg() = 0, py::arg() = -1); + + m.def("getUserDetails", (std::string (*)(const int)) &sls::getUserDetails, py::arg() = 0); py::class_ CppDetectorApi(m, "CppDetectorApi"); CppDetectorApi.def(py::init()); diff --git a/python/src/duration.cpp b/python/src/duration.cpp index db6da3d06..ed8927c90 100644 --- a/python/src/duration.cpp +++ b/python/src/duration.cpp @@ -1,3 +1,4 @@ +#include #include "py_headers.h" #include "DurationWrapper.h" @@ -19,4 +20,25 @@ void init_duration(py::module &m) { << " count: " << self.count() << ")"; return ss.str(); }); + + m.def( + "test_return_DurationWrapper", + []() { + DurationWrapper t(1.3); + return t; + }, + R"( + Test function to return a DurationWrapper object. Ensures that the automatic conversion in typecaster.h works. + )"); + + m.def( + "test_duration_to_ns", + [](const std::chrono::nanoseconds t) { + //Duration wrapper is used to be able to convert from time in python to chrono::nanoseconds + //return count to have something to test + return t.count(); + }, + R"( + Test function convert DurationWrapper or number to chrono::ns. Ensures that the automatic conversion in typecaster.h works. + )"); // default value to test the default constructor } diff --git a/python/src/enums.cpp b/python/src/enums.cpp index 69633825f..f7302df80 100644 --- a/python/src/enums.cpp +++ b/python/src/enums.cpp @@ -121,13 +121,9 @@ void init_enums(py::module &m) { .value("VTHRESHOLD", slsDetectorDefs::dacIndex::VTHRESHOLD) .value("IO_DELAY", slsDetectorDefs::dacIndex::IO_DELAY) .value("VREF_DS", slsDetectorDefs::dacIndex::VREF_DS) - .value("VCASCN_PB", slsDetectorDefs::dacIndex::VCASCN_PB) - .value("VCASCP_PB", slsDetectorDefs::dacIndex::VCASCP_PB) .value("VOUT_CM", slsDetectorDefs::dacIndex::VOUT_CM) - .value("VCASC_OUT", slsDetectorDefs::dacIndex::VCASC_OUT) .value("VIN_CM", slsDetectorDefs::dacIndex::VIN_CM) .value("VREF_COMP", slsDetectorDefs::dacIndex::VREF_COMP) - .value("IB_TESTC", slsDetectorDefs::dacIndex::IB_TESTC) .value("VB_COMP", slsDetectorDefs::dacIndex::VB_COMP) .value("VDD_PROT", slsDetectorDefs::dacIndex::VDD_PROT) .value("VIN_COM", slsDetectorDefs::dacIndex::VIN_COM) diff --git a/python/src/pattern.cpp b/python/src/pattern.cpp index ca671c66c..67447fff3 100644 --- a/python/src/pattern.cpp +++ b/python/src/pattern.cpp @@ -20,8 +20,10 @@ void init_pattern(py::module &m) { }); py::class_ Pattern(m, "Pattern"); - Pattern.def(py::init()); - Pattern.def("load", &sls::Pattern::load); - Pattern.def("data", (pat * (sls::Pattern::*)()) & sls::Pattern::data, + Pattern.def(py::init()) + .def("load", &sls::Pattern::load) + .def("save", &sls::Pattern::save) + .def("str", &sls::Pattern::str) + .def("data", (pat * (sls::Pattern::*)()) & sls::Pattern::data, py::return_value_policy::reference); } diff --git a/python/src/typecaster.h b/python/src/typecaster.h index 5eba7b436..6412afa72 100644 --- a/python/src/typecaster.h +++ b/python/src/typecaster.h @@ -54,11 +54,16 @@ template <> struct type_caster { value = duration_cast(duration(PyFloat_AsDouble(src.ptr()))); return true; } + // If invoked with an int we assume it is nanoseconds and convert, same as in chrono.h + if (PyLong_Check(src.ptr())) { + value = duration_cast(duration(PyLong_AsLongLong(src.ptr()))); + return true; + } // Lastly if we were actually called with a DurationWrapper object we get // the number of nanoseconds and create a std::chrono::nanoseconds from it - py::object py_cls = py::module::import("_slsdet").attr("DurationWrapper"); + py::object py_cls = py::module::import("slsdet._slsdet").attr("DurationWrapper"); if (py::isinstance(src, py_cls)){ sls::DurationWrapper *cls = src.cast(); value = nanoseconds(cls->count()); @@ -77,7 +82,7 @@ template <> struct type_caster { * set the count from chrono::nanoseconds and return */ static handle cast(std::chrono::nanoseconds src, return_value_policy /* policy */, handle /* parent */) { - py::object py_cls = py::module::import("_slsdet").attr("DurationWrapper"); + py::object py_cls = py::module::import("slsdet._slsdet").attr("DurationWrapper"); py::object* obj = new py::object; *obj = py_cls(); sls::DurationWrapper *dur = obj->cast(); diff --git a/python/tests/test_DurationWrapper.py b/python/tests/test_DurationWrapper.py new file mode 100644 index 000000000..f6902da26 --- /dev/null +++ b/python/tests/test_DurationWrapper.py @@ -0,0 +1,58 @@ +import pytest + +from slsdet import DurationWrapper + +#import the compiled extension to use test functions for the automatic conversion +from slsdet import _slsdet + + +def test_default_construction_of_DurationWrapper(): + """Test default construction of DurationWrapper""" + t = DurationWrapper() + assert t.count() == 0 + assert t.total_seconds() == 0 + +def test_construction_of_DurationWrapper(): + """Test construction of DurationWrapper with total_seconds""" + t = DurationWrapper(5) + assert t.count() == 5e9 + assert t.total_seconds() == 5 + +def test_set_count_on_DurationWrapper(): + """Test set_count on DurationWrapper""" + t = DurationWrapper() + t.set_count(10) + assert t.count() == 10 + assert t.total_seconds() == 10e-9 + t.set_count(0) + assert t.count() == 0 + assert t.total_seconds() == 0 + + +def test_return_a_DurationWrapper_from_cpp(): + """Test returning a DurationWrapper from C++""" + t = _slsdet.test_return_DurationWrapper() + assert t.count() == 1.3e9 + assert t.total_seconds() == 1.3 + +def test_call_a_cpp_function_with_a_duration_wrapper(): + """C++ functions can accept a DurationWrapper""" + t = DurationWrapper(5) + assert _slsdet.test_duration_to_ns(t) == 5e9 + +def test_call_a_cpp_function_converting_number_to_DurationWrapper(): + """int and float can be converted to std::chrono::nanoseconds""" + assert _slsdet.test_duration_to_ns(0) == 0 + assert _slsdet.test_duration_to_ns(3) == 3e9 + assert _slsdet.test_duration_to_ns(1.3) == 1.3e9 + assert _slsdet.test_duration_to_ns(10e-9) == 10 + +def test_call_a_cpp_function_with_datetime_timedelta(): + """datetime.timedelta can be converted to std::chrono::nanoseconds""" + import datetime + t = datetime.timedelta(seconds=5) + assert _slsdet.test_duration_to_ns(t) == 5e9 + t = datetime.timedelta(seconds=0) + assert _slsdet.test_duration_to_ns(t) == 0 + t = datetime.timedelta(seconds=1.3) + assert _slsdet.test_duration_to_ns(t) == 1.3e9 \ No newline at end of file diff --git a/python/tests/test_PatternGenerator.py b/python/tests/test_PatternGenerator.py new file mode 100644 index 000000000..b8a36e64a --- /dev/null +++ b/python/tests/test_PatternGenerator.py @@ -0,0 +1,152 @@ +import pytest +from slsdet import PatternGenerator + + +def apply_detconf(p): + """ + Hacky workaround to apply detConf_mh02 to a pattern + """ + DACMON = 0 + cnt_en_3 = 1 + pulse_counter_en = 2 + cnt_en_1 = 3 + par_load = 4 + pulse_mux_ctr = 5 + reset_cnt = 6 + reset_periphery = 7 + config_load = 8 + cnt_en_0 = 9 + tbl = 10 + clk_ext = 11 + trimbit_load_reg = 12 + store = 13 + data_in = 14 + en_pll_clk = 15 + cnt_en_2 = 16 + DACINT = 17 + data_out_slow = 18 #IN + COMP2_MON = 19 #IN + start_read = 20 + dac_store = 21 + CNT3_MON = 22 #IN + EN_PIX_DIG_MON = 23 + clk_sel = 24 + BUSY = 25 #IN + COMP3_MON = 26 #IN + CNT2_MON = 27 #IN + + dbit_ena=62 #FIFO LATCH + adc_ena=63 #ADC ENABLE + + #FPGA input/ouutputs + p.setoutput(DACMON) + p.setoutput(cnt_en_3) + p.setoutput(pulse_counter_en) + p.setoutput(cnt_en_1) + p.setoutput(par_load) + p.setoutput(pulse_mux_ctr) + p.setoutput(reset_cnt) + p.setoutput(reset_periphery) + p.setoutput(cnt_en_0) + p.setoutput(tbl) + p.setoutput(clk_ext) + p.setoutput(config_load) + p.setoutput(trimbit_load_reg) + p.setoutput(store) + p.setoutput(data_in) + p.setoutput(en_pll_clk) + p.setoutput(cnt_en_2) + p.setoutput(DACINT) + p.setinput(data_out_slow) + p.setinput(COMP2_MON) + p.setoutput(start_read) + p.setoutput(dac_store) + p.setinput(CNT3_MON) + p.setoutput(EN_PIX_DIG_MON) + p.setoutput(clk_sel) + p.setinput(BUSY) + p.setinput(COMP3_MON) + p.setinput(CNT2_MON) + + #system signals + p.setoutput(adc_ena) + # FIFO LATCH + p.setoutput(dbit_ena) + return p + + + + + +def test_first_two_PW(): + p = PatternGenerator() + + #The pattern is created with a single empty word + assert p.pattern.limits[0] == 0 + assert p.pattern.limits[1] == 0 + + p.SB(8) + p.PW() + + #When doing the first PW the empty word is overwritten + assert p.pattern.limits[0] == 0 + assert p.pattern.limits[1] == 0 + assert p.pattern.word[0] == 256 + + p.SB(9) + p.PW() + + #When doing the second PW we add a new word + assert p.pattern.limits[0] == 0 + assert p.pattern.limits[1] == 1 + assert p.pattern.word[0] == 256 + assert p.pattern.word[1] == 768 + +def test_simple_pattern(): + """ + Using enable pll pattern for MH02 + """ + en_pll_clk = 15 + p = PatternGenerator() + p = apply_detconf(p) + p.SB(en_pll_clk) + p.PW() + p.PW() + + lines = str(p).split("\n") + + enable_pll_pattern = [ + "patword 0x0000 0x0000000000008000", + "patword 0x0001 0x0000000000008000", + "patioctrl 0xc000000001b3ffff", + "patlimits 0x0000 0x0001", + "patloop 0 0x1fff 0x1fff", + "patnloop 0 0", + "patloop 1 0x1fff 0x1fff", + "patnloop 1 0", + "patloop 2 0x1fff 0x1fff", + "patnloop 2 0", + "patloop 3 0x1fff 0x1fff", + "patnloop 3 0", + "patloop 4 0x1fff 0x1fff", + "patnloop 4 0", + "patloop 5 0x1fff 0x1fff", + "patnloop 5 0", + "patwait 0 0x1fff", + "patwaittime 0 0", + "patwait 1 0x1fff", + "patwaittime 1 0", + "patwait 2 0x1fff", + "patwaittime 2 0", + "patwait 3 0x1fff", + "patwaittime 3 0", + "patwait 4 0x1fff", + "patwaittime 4 0", + "patwait 5 0x1fff", + "patwaittime 5 0", + ] + + assert len(lines) == len(enable_pll_pattern) + + for i, line in enumerate(lines): + assert line == enable_pll_pattern[i] \ No newline at end of file diff --git a/python/tests/test_bits.py b/python/tests/test_bits.py new file mode 100644 index 000000000..e679ea656 --- /dev/null +++ b/python/tests/test_bits.py @@ -0,0 +1,50 @@ +from slsdet.bits import clearbit, clearbit_arr, setbit, setbit_arr +import numpy as np + + +def test_clearbit_on_python_int(): + val = 5 # 0b101 + r = clearbit(0, val) + assert r == 4 + assert val == 5 + +def test_setbit_on_python_int(): + val = 5 # 0b101 + r = setbit(1, val) + assert r == 7 + assert val == 5 + + +def test_setbit_doesnt_change_type(): + word = np.int32(5) + ret = setbit(0, word) + assert isinstance(ret, np.int32) + + +def test_clearbit_doesnt_change_type(): + word = np.uint8(5) + ret = clearbit(0, word) + assert isinstance(ret, np.uint8) + + + +def test_setbit_on_array_element(): + arr = np.zeros(10, dtype=np.uint64) + arr[5] = setbit(0, arr[5]) + arr[5] = setbit(1, arr[5]) + arr[5] = setbit(4, arr[5]) + assert arr[4] == 0 + assert arr[5] == 19 # 0b10011 + assert arr[6] == 0 + + +def test_setbit_arr(): + arr = np.zeros(10, dtype=np.int32) + setbit_arr(3, arr[3:9]) + assert all(arr == np.array((0, 0, 0, 8, 8, 8, 8, 8, 8, 0), dtype=np.int32)) + + +def test_clearbit_arr(): + arr = np.array((5, 5, 5), dtype=np.int8) + clearbit_arr(0, arr) + assert all(arr == (4, 4, 4)) \ No newline at end of file diff --git a/serverBin/ctbDetectorServer_developer b/serverBin/ctbDetectorServer_developer deleted file mode 120000 index 2304a2043..000000000 --- a/serverBin/ctbDetectorServer_developer +++ /dev/null @@ -1 +0,0 @@ -../slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer \ No newline at end of file diff --git a/serverBin/eigerDetectorServer_developer b/serverBin/eigerDetectorServer_developer deleted file mode 120000 index 117c94c37..000000000 --- a/serverBin/eigerDetectorServer_developer +++ /dev/null @@ -1 +0,0 @@ -../slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer \ No newline at end of file diff --git a/serverBin/gotthard2DetectorServer_developer b/serverBin/gotthard2DetectorServer_developer deleted file mode 120000 index 7c8e54bee..000000000 --- a/serverBin/gotthard2DetectorServer_developer +++ /dev/null @@ -1 +0,0 @@ -../slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer \ No newline at end of file diff --git a/serverBin/gotthardDetectorServer_developer b/serverBin/gotthardDetectorServer_developer deleted file mode 120000 index 28e8385e0..000000000 --- a/serverBin/gotthardDetectorServer_developer +++ /dev/null @@ -1 +0,0 @@ -../slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer \ No newline at end of file diff --git a/serverBin/jungfrauDetectorServer_developer b/serverBin/jungfrauDetectorServer_developer deleted file mode 120000 index 8ae22b591..000000000 --- a/serverBin/jungfrauDetectorServer_developer +++ /dev/null @@ -1 +0,0 @@ -../slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer \ No newline at end of file diff --git a/serverBin/moenchDetectorServer_developer b/serverBin/moenchDetectorServer_developer deleted file mode 120000 index 147ecfb53..000000000 --- a/serverBin/moenchDetectorServer_developer +++ /dev/null @@ -1 +0,0 @@ -../slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer \ No newline at end of file diff --git a/serverBin/mythen3DetectorServer_developer b/serverBin/mythen3DetectorServer_developer deleted file mode 120000 index cc8b2c91f..000000000 --- a/serverBin/mythen3DetectorServer_developer +++ /dev/null @@ -1 +0,0 @@ -../slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer \ No newline at end of file diff --git a/slsDetectorCalibration/dataStructures/gotthardDoubleModuleDataNew.h b/slsDetectorCalibration/dataStructures/gotthardDoubleModuleDataNew.h deleted file mode 100644 index 7e3a33930..000000000 --- a/slsDetectorCalibration/dataStructures/gotthardDoubleModuleDataNew.h +++ /dev/null @@ -1,155 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0-or-other -// Copyright (C) 2021 Contributors to the SLS Detector Package -#ifndef GOTTHARD2MODULEDATANEW_H -#define GOTTHARD2MODULEDATANEW_H -#include "gotthardModuleDataNew.h" - -class gotthardDoubleModuleDataNew : public slsDetectorData { - - private: - const int nModules; - const int offset; - int iframe; - - public: - /** - Implements the slsReceiverData structure for the gotthard read out by a module - i.e. using the slsReceiver (1x1280 pixels, 2 packets 1286 large etc.) \param c - crosstalk parameter for the output buffer - - */ - - gotthardDoubleModuleDataNew(int off = 24 * 2, int nmod = 2) - : slsDetectorData(1280 * nmod, 1, nmod * (1280 * 2 + off)), - nModules(nmod), offset(off), iframe(0) { - -#ifdef BCHIP074_BCHIP075 - cout << "This is a bchip074-bchip075 system " << endl; -#endif - - uint16_t **dMask; - int **dMap; - int ix, iy; - int ypixels = 1; - int xpixels = 1280 * nmod; - int imod, ipix; - dMask = new uint16_t *[1]; - dMap = new int *[1]; - dMap[0] = new int[1280 * nmod]; - dMask[0] = new uint16_t[1280 * nmod]; - - for (int ix = 0; ix < xpixels; ix++) { - imod = ix % 2; - if (imod == 0) - ipix = ix / 2; - else - ipix = 1280 - 1 - ix / 2; - if (imod == 0) - dMap[0][ix] = ipix * 2 + offset; - else - dMap[0][ix] = 1280 * 2 + 2 * offset + - ipix * 2; // dataSize-2-ix;//+2*offset; - // dMap[0][ix] = 2*ipix+offset*(imod+1)+1280*2*imod; - dMask[0][ix] = 0x0; -#ifdef BCHIP074_BCHIP075 - int ibad = ix / 2 + 1280 * imod; - if ((ibad >= 128 * 4 && ibad < 128 * 5) || - (ibad >= 9 * 128 && ibad < 10 * 128) || - (ibad >= (1280 + 128 * 4) && ibad < ibad >= (1280 + 128 * 6))) - dataROIMask[0][ix] = 0; -#endif - } - - setDataMap(dMap); - setDataMask(dMask); - }; - - /** - - Returns the frame number for the given dataset. - \param buff pointer to the dataset - \returns frame number - - */ - - int getFrameNumber(char *buff) { - if (offset >= sizeof(sls_detector_header)) - return ((sls_detector_header *)buff)->frameNumber; - return iframe; - }; //*((int*)(buff+5))&0xffffff;}; - - /** - gets the packets number (last packet is labelled with 0 and is replaced with - 40) \param buff pointer to the memory \returns packet number - - */ - - int getPacketNumber(char *buff) { - if (offset >= sizeof(sls_detector_header)) - return ((sls_detector_header *)buff)->packetNumber; - }; - - /** - - Loops over a memory slot until a complete frame is found (i.e. all - packets 0 to nPackets, same frame number). purely virtual func \param - data pointer to the memory to be analyzed \param ndata reference to the - amount of data found for the frame, in case the frame is incomplete at - the end of the memory slot \param dsize size of the memory slot to be - analyzed \returns pointer to the beginning of the last good frame (might - be incomplete if ndata smaller than dataSize), or NULL if no frame is - found - - */ - virtual char *findNextFrame(char *data, int &ndata, int dsize) { - if (dsize < dataSize) - ndata = dsize; - else - ndata = dataSize; - return data; - } - - virtual char *readNextFrame(ifstream &filebin) { - int ff = -1, np = -1; - return readNextFrame(filebin, ff, np); - }; - - virtual char *readNextFrame(ifstream &filebin, int &ff) { - int np = -1; - return readNextFrame(filebin, ff, np); - }; - - virtual char *readNextFrame(ifstream &filebin, int &ff, int &np) { - char *data = new char[dataSize]; - char *d = readNextFrame(filebin, ff, np, data); - if (d == NULL) { - delete[] data; - data = NULL; - } - return data; - } - - virtual char *readNextFrame(ifstream &filebin, int &ff, int &np, - char *data) { - char *retval = 0; - int nd; - int fnum = -1; - np = 0; - int pn; - - // cout << dataSize << endl; - if (ff >= 0) - fnum = ff; - - if (filebin.is_open()) { - if (filebin.read(data, dataSize)) { - ff = getFrameNumber(data); - np = getPacketNumber(data); - return data; - } - } - return NULL; - }; -}; - -#endif diff --git a/slsDetectorCalibration/dataStructures/gotthardShortModuleData.h b/slsDetectorCalibration/dataStructures/gotthardShortModuleData.h deleted file mode 100644 index 533f56ddd..000000000 --- a/slsDetectorCalibration/dataStructures/gotthardShortModuleData.h +++ /dev/null @@ -1,105 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0-or-other -// Copyright (C) 2021 Contributors to the SLS Detector Package -#ifndef GOTTHARDSHORTMODULEDATA_H -#define GOTTHARDSHORTMODULEDATA_H -#include "slsReceiverData.h" - -class gotthardShortModuleData : public slsReceiverData { - public: - /** - Implements the slsReceiverData structure for the gotthard short read out by a - module i.e. using the slsReceiver (1x256 pixels, 1 packet 256 large etc.) - \param c crosstalk parameter for the output buffer - - */ - - gotthardShortModuleData(double c = 0) - : slsReceiverData(xpixels, ypixels, npackets, buffersize), - xtalk(c) { - - uint16_t **dMask; - int **dMap; - int ix, iy; - int offset = 2; - - dMask = new uint16_t *[ypixels]; - dMap = new int *[ypixels]; - for (int i = 0; i < ypixels; i++) { - dMap[i] = new int[xpixels]; - dMask[i] = new uint16_t[xpixels]; - } - - for (ix = 0; ix < ypixels; ++ix) - for (iy = 0; iy < xpixels; ++iy) - dMask[ix][iy] = 0x0; - - for (ix = 0; ix < ypixels; ++ix) - for (iy = 0; iy < xpixels; ++iy) { - dMap[ix][iy] = offset; - offset++; - } - - setDataMap(dMap); - setDataMask(dMask); - }; - - /** - - Returns the frame number for the given dataset. - \param buff pointer to the dataset - \returns frame number - - */ - - int getFrameNumber(char *buff) { return (*(int *)buff); }; - - /** - gets the packets number (last packet is labelled with 0 and is replaced with - 40) \param buff pointer to the memory \returns packet number - - */ - - int getPacketNumber(char *buff) { return 1; }; - - /** -returns the pixel value as double correcting for the output buffer crosstalk - \param data pointer to the memory - \param ix coordinate in the x direction - \param iy coordinate in the y direction - \returns channel value as double - - */ - double getValue(char *data, int ix, int iy = 0) { - // check how it is for gotthard - if (xtalk == 0) - return slsDetectorData::getValue(data, ix, iy); - else - return slsDetectorData::getValue(data, ix, iy) - - xtalk * - slsDetectorData::getValue(data, ix - 1, iy); - }; - - /** sets the output buffer crosstalk correction parameter - \param c output buffer crosstalk correction parameter to be set - \returns current value for the output buffer crosstalk correction parameter - - */ - double setXTalk(double c) { - xtalk = c; - return xtalk; - } - - /** gets the output buffer crosstalk parameter - \returns current value for the output buffer crosstalk correction parameter - */ - double getXTalk() { return xtalk; } - - private: - double xtalk; /**readFlatField(fname); diff --git a/slsDetectorCalibration/singlePhotonDetector.h b/slsDetectorCalibration/singlePhotonDetector.h index 61df4bbcd..6ea9ecb46 100644 --- a/slsDetectorCalibration/singlePhotonDetector.h +++ b/slsDetectorCalibration/singlePhotonDetector.h @@ -503,6 +503,7 @@ class singlePhotonDetector : public analogDetector { } #endif if (ee == PHOTON && val[iy * nx + ix] == max) { + good = 1; ee = PHOTON_MAX; // cout << "**" < { cout << max << " " << val[iy * nx + ix] << endl; } //else (clusters + nph)->print(); - good = 1; if (eMin > 0 && tot < eMin) good = 0; if (eMax > 0 && tot > eMax) diff --git a/slsDetectorGui/forms/form_plot.ui b/slsDetectorGui/forms/form_plot.ui index cfc799d54..66d6e64a8 100644 --- a/slsDetectorGui/forms/form_plot.ui +++ b/slsDetectorGui/forms/form_plot.ui @@ -457,7 +457,7 @@ <html><head/><body><p>If sub images have missing packets</p></body></html> - Complete Image + Qt::AlignCenter @@ -523,6 +523,7 @@ + Cantarell 10 diff --git a/slsDetectorGui/forms/form_tab_advanced.ui b/slsDetectorGui/forms/form_tab_advanced.ui index 6659c9770..c1de5deec 100755 --- a/slsDetectorGui/forms/form_tab_advanced.ui +++ b/slsDetectorGui/forms/form_tab_advanced.ui @@ -72,7 +72,7 @@ QTabWidget::North - 3 + 2 Qt::ElideLeft @@ -178,309 +178,6 @@ - - - false - - - - Cantarell - 10 - - - - Region of Interest - - - - - - - 0 - 0 - - - - - Cantarell - 10 - - - - X Min: - - - - - - - - 0 - 0 - - - - - 0 - 35 - - - - - 16777215 - 35 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Clear ROI at detector level</p><p>#clearroi#</p></body></html> - - - Clear ROI - - - - :/icons/images/erase.png:/icons/images/erase.png - - - - - - - - 120 - 0 - - - - - 120 - 25 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Set ROI at detector level</p><p>#roi#</p></body></html> - - - -1 - - - 1279 - - - -1 - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Set ROI at detector level</p><p>#roi#</p></body></html> - - - X Max: - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 120 - 0 - - - - - 120 - 25 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Set ROI at detector level</p><p>#roi#</p></body></html> - - - -1 - - - 1279 - - - -1 - - - - - - - - 0 - 0 - - - - - Cantarell - 10 - - - - Readout: - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - 0 - 0 - - - - - 0 - 35 - - - - - 16777215 - 35 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Set ROI at detector level</p><p>#roi#</p></body></html> - - - Set ROI - - - - :/icons/images/refresh.png:/icons/images/refresh.png - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - - 16777215 - 25 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Select readout to set ROI at detector level</p><p>#roi#</p></body></html> - - - - - @@ -2238,11 +1935,6 @@ Exposure Time of a sub frame. Only for Eiger in 32 bit mode spinSetAllTrimbits - comboReadout - spinXmin - spinXmax - btnSetRoi - btnClearRoi comboDetector spinControlPort spinStopPort diff --git a/slsDetectorGui/forms/form_tab_settings.ui b/slsDetectorGui/forms/form_tab_settings.ui index 39ba66947..025e44186 100755 --- a/slsDetectorGui/forms/form_tab_settings.ui +++ b/slsDetectorGui/forms/form_tab_settings.ui @@ -38,87 +38,21 @@ Form - - - - - 0 - 0 - - - - - 140 - 25 - - - - - 140 - 25 - - - - - Cantarell - 10 - - - - <html><head/><body><p>High Voltage</p><p> #highvoltage#</p></body></html> - - - - 0 - - - - - 90 - - - - - 110 - - - - - 120 - - - - - 150 - - - - - 180 - - - - - 200 - - - - - - + + - true + false - 110 - 0 + 140 + 25 - 110 - 16777215 + 140 + 25 @@ -128,52 +62,42 @@ - <html><head/><body><p>Settings of the detector. </p><p> #settings#</p></body></html> + <html><head/><body><p>Threshold energy of 2nd counter</p><p>#threshold#</p><p><br/></p></body></html> - - Settings: + + false + + + eV + + + -100000 + + + 100000 + + + 100 + + + -1 - - - - - 0 - 0 - - - - - Cantarell - 10 - - - - <html><head/><body><p>High Voltage</p><p> #highvoltage#</p></body></html> - - - High Voltage: - - - - - + + - Qt::Vertical - - - QSizePolicy::Expanding + Qt::Horizontal - 20 + 40 20 - + false @@ -201,29 +125,7 @@ - - - - - 0 - 0 - - - - - Cantarell - 10 - - - - <html><head/><body><p>High Voltage. Range: 60 - 200V. Swich off high voltage by setting to 0.</p><p>-1 corresponds to different values from detectors.</p><p>#highvoltage#</p></body></html> - - - High Voltage: - - - - + Qt::Horizontal @@ -239,97 +141,7 @@ - - - - false - - - - 50 - 16777215 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Enable 1st counter</p><p>#counters#</p></body></html> - - - 1 - - - true - - - - - - - false - - - - 110 - 0 - - - - - 110 - 16777215 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Threshold energy. The trim energy values need to be loaded first using &quot;trimen&quot;</p><p>#threshold#</p><p>#trimen#</p><p><br/></p></body></html> - - - Threshold: - - - - - - - false - - - - 110 - 0 - - - - - 110 - 16777215 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Dynamic Range of pixel/channel of detector</p><p>#dr#</p></body></html> - - - Dynamic Range: - - - - + @@ -369,8 +181,8 @@ - - + + false @@ -387,17 +199,222 @@ - <html><head/><body><p>Enable 2nd counter</p><p>#counters#</p></body></html> + <html><head/><body><p>Enable 1st counter</p><p>#counters#</p></body></html> - 2 + 1 true - + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 20 + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + false + + + + 140 + 25 + + + + + 140 + 25 + + + + + Cantarell + 10 + + + + <html><head/><body><p>Threshold energy of 3rd counter</p><p>#threshold#</p><p><br/></p></body></html> + + + false + + + eV + + + -100000 + + + 100000 + + + 100 + + + -1 + + + + + + + false + + + + 140 + 25 + + + + + 140 + 25 + + + + + Cantarell + 10 + + + + <html><head/><body><p>Threshold energy. The trim energy values need to be loaded first using &quot;trimen&quot;</p><p>#threshold#</p><p>#trimen#</p><p><br/></p></body></html> + + + false + + + eV + + + -100000 + + + 100000 + + + 100 + + + -1 + + + + + + + false + + + + 0 + 25 + + + + + 140 + 25 + + + + + Cantarell + 10 + + + + <html><head/><body><p>Dynamic Range of pixel/channel of detector</p><p>#dr#</p></body></html> + + + + 1.67772e+07 + + + + + 65535 + + + + + 4095 + + + + + 255 + + + + + 7 + + + + + + + + false + + + + 110 + 0 + + + + + 110 + 16777215 + + + + + Cantarell + 10 + + + + <html><head/><body><p>Enable counters</p><p>#counters#</p></body></html> + + + Counters: + + + + true @@ -542,7 +559,7 @@ - + true @@ -626,130 +643,7 @@ - - - - false - - - - 110 - 0 - - - - - 110 - 16777215 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Gain Mode of the detector</p><p>#gainmode#</p><p><br/></p><p>Fix G0 is to be used with utmost caution. Can damage the detector!</p></body></html> - - - Gain Mode: - - - - - - - false - - - - 140 - 25 - - - - - 140 - 25 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Threshold energy. The trim energy values need to be loaded first using &quot;trimen&quot;</p><p>#threshold#</p><p>#trimen#</p><p><br/></p></body></html> - - - false - - - eV - - - -100000 - - - 100000 - - - 100 - - - -1 - - - - - - - false - - - - 140 - 25 - - - - - 140 - 25 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Threshold energy of 2nd counter</p><p>#threshold#</p><p><br/></p></body></html> - - - false - - - eV - - - -100000 - - - 100000 - - - 100 - - - -1 - - - - + false @@ -813,21 +707,15 @@ - - + + false - - - 140 - 25 - - - 140 - 25 + 50 + 16777215 @@ -837,112 +725,18 @@ - <html><head/><body><p>Threshold energy of 3rd counter</p><p>#threshold#</p><p><br/></p></body></html> + <html><head/><body><p>Enable 2nd counter</p><p>#counters#</p></body></html> - - false + + 2 - - eV - - - -100000 - - - 100000 - - - 100 - - - -1 + + true - - - - false - - - - 0 - 25 - - - - - 140 - 25 - - - - - Cantarell - 10 - - - - <html><head/><body><p>Dynamic Range of pixel/channel of detector</p><p>#dr#</p></body></html> - - - - 1.67772e+07 - - - - - 65535 - - - - - 4095 - - - - - 255 - - - - - 7 - - - - - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 20 - 20 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - + + false @@ -965,30 +759,147 @@ - <html><head/><body><p>Enable counters</p><p>#counters#</p></body></html> + <html><head/><body><p>Dynamic Range of pixel/channel of detector</p><p>#dr#</p></body></html> - Counters: + Dynamic Range: - - + + + + true + + + + 110 + 0 + + + + + 110 + 16777215 + + + + + Cantarell + 10 + + + + <html><head/><body><p>Settings of the detector. </p><p> #settings#</p></body></html> + + + Settings: + + + + + Qt::Horizontal + + QSizePolicy::Fixed + - 40 + 20 20 + + + + false + + + + 110 + 0 + + + + + 110 + 16777215 + + + + + Cantarell + 10 + + + + <html><head/><body><p>Threshold energy. The trim energy values need to be loaded first using &quot;trimen&quot;</p><p>#threshold#</p><p>#trimen#</p><p><br/></p></body></html> + + + Threshold: + + + + + + + false + + + + 110 + 0 + + + + + 110 + 16777215 + + + + + Cantarell + 10 + + + + <html><head/><body><p>Gain Mode of the detector</p><p>#gainmode#</p><p><br/></p><p>Fix G0 is to be used with utmost caution. Can damage the detector!</p></body></html> + + + Gain Mode: + + + + + + + + 0 + 0 + + + + + Cantarell + 10 + + + + <html><head/><body><p>High Voltage. Range: 60 - 200V. Swich off high voltage by setting to 0.</p><p>-1 corresponds to different values from detectors.</p><p>#highvoltage#</p></body></html> + + + High Voltage: + + + - comboHV spinHV comboSettings comboGainMode diff --git a/slsDetectorGui/include/qDefs.h b/slsDetectorGui/include/qDefs.h index 491fc38e0..375d62d6c 100644 --- a/slsDetectorGui/include/qDefs.h +++ b/slsDetectorGui/include/qDefs.h @@ -61,7 +61,9 @@ class qDefs : public QWidget { } } - template struct NonDeduced { using type = CT; }; + template struct NonDeduced { + using type = CT; + }; template static void HandleExceptions(const std::string emsg, const std::string src, S *s, RT (S::*somefunc)(CT...), diff --git a/slsDetectorGui/include/qDrawPlot.h b/slsDetectorGui/include/qDrawPlot.h index 3dd42244e..c4b3b2a9d 100644 --- a/slsDetectorGui/include/qDrawPlot.h +++ b/slsDetectorGui/include/qDrawPlot.h @@ -40,6 +40,7 @@ class qDrawPlot : public QWidget, private Ui::PlotObject { void SetDataCallBack(bool enable); void SetBinary(bool enable, int from = 0, int to = 0); void StartAcquisition(); + void UpdateROI(); public slots: void SetPersistency(int val); @@ -123,7 +124,7 @@ class qDrawPlot : public QWidget, private Ui::PlotObject { QString zTitle2d{"Intensity"}; QString plotTitle{""}; QString indexTitle{""}; - bool completeImage{false}; + bool completeImage{true}; bool xyRangeChanged{false}; double xyRange[4]{0, 0, 0, 0}; bool isXYRange[4]{false, false, false, false}; @@ -166,8 +167,8 @@ class qDrawPlot : public QWidget, private Ui::PlotObject { int64_t currentFrame{0}; mutable std::mutex mPlots; int64_t currentAcqIndex{0}; - slsDetectorDefs::ROI rxRoi{}; - bool isRxRoiDisplayed{false}; + bool hasRoi{false}; + bool roiDisplayInitialized{false}; bool isGapPixels{false}; unsigned int nPixelsX{0}; @@ -176,6 +177,7 @@ class qDrawPlot : public QWidget, private Ui::PlotObject { uint32_t gainMask{0}; int gainOffset{0}; bool gotthard25; + std::vector roi{1}; }; } // namespace sls diff --git a/slsDetectorGui/include/qTabAdvanced.h b/slsDetectorGui/include/qTabAdvanced.h index 13d3100f0..2c5460207 100644 --- a/slsDetectorGui/include/qTabAdvanced.h +++ b/slsDetectorGui/include/qTabAdvanced.h @@ -38,9 +38,6 @@ class qTabAdvanced : public QWidget, private Ui::TabAdvancedObject { void SetRxrUDPMAC(bool force = false); void ForceSetRxrUDPMAC(); void SetRxrZMQPort(int port); - void GetROI(); - void ClearROI(); - void SetROI(); void SetAllTrimbits(); void SetNumStoragecells(int value); void SetSubExposureTime(); diff --git a/slsDetectorGui/slsDetectorPlotting/include/SlsQt1DPlot.h b/slsDetectorGui/slsDetectorPlotting/include/SlsQt1DPlot.h index 9dfdee151..878a43b81 100644 --- a/slsDetectorGui/slsDetectorPlotting/include/SlsQt1DPlot.h +++ b/slsDetectorGui/slsDetectorPlotting/include/SlsQt1DPlot.h @@ -5,6 +5,8 @@ #include "SlsQt1DZoomer.h" #include "sls/ansi.h" +#include "sls/sls_detector_defs.h" + #include #include #include @@ -141,8 +143,9 @@ class SlsQt1DPlot : public QwtPlot { void SetLogX(bool yes = 1); void SetLogY(bool yes = 1); - void EnableRoiBox(std::array roi); - void DisableRoiBox(); + void EnableRoiBoxes(std::vector roi, int ymin, + int ymax); + void DisableRoiBoxes(); private: bool gainPlot{false}; @@ -169,6 +172,7 @@ class SlsQt1DPlot : public QwtPlot { friend void SlsQtH1D::Attach(SlsQt1DPlot *p); friend void SlsQtH1D::Detach(SlsQt1DPlot *p); + std::vector> roiBoxes{}; QwtPlotShapeItem *roiBox{nullptr}; signals: diff --git a/slsDetectorGui/slsDetectorPlotting/include/SlsQt2DPlot.h b/slsDetectorGui/slsDetectorPlotting/include/SlsQt2DPlot.h index 4c55db6af..f7142b6eb 100644 --- a/slsDetectorGui/slsDetectorPlotting/include/SlsQt2DPlot.h +++ b/slsDetectorGui/slsDetectorPlotting/include/SlsQt2DPlot.h @@ -3,6 +3,8 @@ #pragma once #include "SlsQt2DHist.h" #include "SlsQt2DZoomer.h" +#include "sls/sls_detector_defs.h" + #include #include #include @@ -71,8 +73,8 @@ class SlsQt2DPlot : public QwtPlot { void SetLogz(bool enable, bool isMin, bool isMax, double min, double max); void SetZRange(bool isMin, bool isMax, double min, double max); void LogZ(bool on = 1); - void EnableRoiBox(std::array roi); - void DisableRoiBox(); + void EnableRoiBoxes(std::vector roi); + void DisableRoiBoxes(); public slots: void showSpectrogram(bool on); @@ -101,7 +103,7 @@ class SlsQt2DPlot : public QwtPlot { QList contourLevelsLog; bool disableZoom{false}; int isLog; - QwtPlotShapeItem *roiBox{nullptr}; + std::vector> roiBoxes{}; }; } // namespace sls diff --git a/slsDetectorGui/slsDetectorPlotting/src/SlsQt1DPlot.cpp b/slsDetectorGui/slsDetectorPlotting/src/SlsQt1DPlot.cpp index 55716cc33..8ae58d4b2 100644 --- a/slsDetectorGui/slsDetectorPlotting/src/SlsQt1DPlot.cpp +++ b/slsDetectorGui/slsDetectorPlotting/src/SlsQt1DPlot.cpp @@ -462,24 +462,26 @@ void SlsQt1DPlot::SetLog(int axisId, bool yes) { Update(); } -void SlsQt1DPlot::EnableRoiBox(std::array roi) { - if (roiBox == nullptr) { - roiBox = new QwtPlotShapeItem(); - roiBox->attach(this); - roiBox->setPen(QColor(Qt::yellow), 2.0, Qt::SolidLine); +void SlsQt1DPlot::EnableRoiBoxes(std::vector roi, + int ymin, int ymax) { + roiBoxes.clear(); + for (auto &r : roi) { + auto box = std::make_unique(); + box->setPen(QColor(Qt::yellow), 2.0, Qt::SolidLine); + // TopLeft - BottomRight (max points are +1 on graph) + QRectF myRect(QPointF(r.xmin, ymin), QPointF(r.xmax - 1, ymax - 1)); + box->setRect(myRect); + box->attach(this); + roiBoxes.push_back(std::move(box)); } - - // TopLeft - BottomRight (max points are +1 on graph) - QRect myRect(QPoint(roi[0], roi[2]), QPoint(roi[1] - 1, roi[3] - 1)); - roiBox->setRect(QRectF(myRect)); replot(); } -void SlsQt1DPlot::DisableRoiBox() { - if (roiBox != nullptr) { - roiBox->detach(); - replot(); +void SlsQt1DPlot::DisableRoiBoxes() { + for (auto &r : roiBoxes) { + r->detach(); } + replot(); } void SlsQt1DPlot::SetZoomX(const QRectF &rect) { diff --git a/slsDetectorGui/slsDetectorPlotting/src/SlsQt2DPlot.cpp b/slsDetectorGui/slsDetectorPlotting/src/SlsQt2DPlot.cpp index 3418abf08..ecd7b6eb3 100644 --- a/slsDetectorGui/slsDetectorPlotting/src/SlsQt2DPlot.cpp +++ b/slsDetectorGui/slsDetectorPlotting/src/SlsQt2DPlot.cpp @@ -350,25 +350,25 @@ void SlsQt2DPlot::showSpectrogram(bool on) { Update(); } -void SlsQt2DPlot::EnableRoiBox(std::array roi) { - if (roiBox == nullptr) { - roiBox = new QwtPlotShapeItem(); +void SlsQt2DPlot::EnableRoiBoxes(std::vector roi) { + roiBoxes.clear(); + for (auto &r : roi) { + auto box = std::make_unique(); + box->setPen(QColor(Qt::yellow), 2.0, Qt::SolidLine); + // TopLeft - BottomRight (max points are +1 on graph) + QRectF myRect(QPointF(r.xmin, r.ymin), QPointF(r.xmax - 1, r.ymax - 1)); + box->setRect(myRect); + box->attach(this); + roiBoxes.push_back(std::move(box)); } - roiBox->setPen(QColor(Qt::yellow), 2.0, Qt::SolidLine); - - // TopLeft - BottomRight (max points are +1 on graph) - QRect myRect(QPoint(roi[0], roi[2]), QPoint(roi[1] - 1, roi[3] - 1)); - roiBox->setRect(QRectF(myRect)); - - roiBox->attach(this); replot(); } -void SlsQt2DPlot::DisableRoiBox() { - if (roiBox != nullptr) { - roiBox->detach(); - replot(); +void SlsQt2DPlot::DisableRoiBoxes() { + for (auto &r : roiBoxes) { + r->detach(); } + replot(); } } // namespace sls diff --git a/slsDetectorGui/src/qDetectorMain.cpp b/slsDetectorGui/src/qDetectorMain.cpp index 9e9f02931..438707c36 100644 --- a/slsDetectorGui/src/qDetectorMain.cpp +++ b/slsDetectorGui/src/qDetectorMain.cpp @@ -192,7 +192,6 @@ void qDetectorMain::SetUpDetector(const std::string &config_file, int multiID) { actionLoadTrimbits->setEnabled(true); actionSaveTrimbits->setEnabled(true); break; - case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::JUNGFRAU: case slsDetectorDefs::MOENCH: case slsDetectorDefs::GOTTHARD2: @@ -405,12 +404,12 @@ void qDetectorMain::ExecuteUtilities(QAction *action) { void qDetectorMain::ExecuteHelp(QAction *action) { if (action == actionAbout) { - LOG(logINFO) << "About Common GUI for Jungfrau, Eiger, Mythen3, " - "Gotthard, Gotthard2 and Moench detectors"; + LOG(logDEBUG) << "About Common GUI for Jungfrau, Eiger, Mythen3, " + "Gotthard2 and Moench detectors"; - std::string clientVersion = "unknown"; + std::string packageVersion = "unknown"; try { - clientVersion = det->getClientVersion(); + packageVersion = det->getPackageVersion(); } CATCH_DISPLAY("Could not get client version.", "qDetectorMain::ExecuteHelp") @@ -419,12 +418,12 @@ void qDetectorMain::ExecuteHelp(QAction *action) { qDefs::INFORMATION, "

" - "SLS Detector Client version: " + - clientVersion + + "SLS Detector Package: v" + + packageVersion + "

" "Common GUI to control the SLS Detectors: " - "Jungfrau, Eiger, Mythen3, Gotthard, Gotthard2 and " + "Jungfrau, Eiger, Mythen3, Gotthard2 and " "Moench.

" "It can be operated in parallel with the command " @@ -540,6 +539,7 @@ void qDetectorMain::EnableTabs(bool enable) { tabDeveloper->Refresh(); tabPlot->Refresh(); + plot->UpdateROI(); plot->StartAcquisition(); } else { // to enable scan box tabPlot->Refresh(); diff --git a/slsDetectorGui/src/qDrawPlot.cpp b/slsDetectorGui/src/qDrawPlot.cpp index 8617c8206..e967862a3 100644 --- a/slsDetectorGui/src/qDrawPlot.cpp +++ b/slsDetectorGui/src/qDrawPlot.cpp @@ -83,9 +83,7 @@ void qDrawPlot::SetupWidgetWindow() { fileSaveName = "Image"; } - gotthard25 = ((detType == slsDetectorDefs::GOTTHARD2 || - detType == slsDetectorDefs::GOTTHARD) && - det->size() == 2); + gotthard25 = (detType == slsDetectorDefs::GOTTHARD2 && det->size() == 2); SetupPlots(); SetDataCallBack(true); @@ -107,7 +105,7 @@ void qDrawPlot::SetupPlots() { LOG(logINFO) << "nPixelsY:" << nPixelsY; widgetStatistics->hide(); - lblCompleteImage->hide(); + lblCompleteImage->show(); lblInCompleteImage->hide(); lblRxRoiEnabled->hide(); @@ -610,7 +608,6 @@ void qDrawPlot::StartAcquisition() { currentFrame = 0; boxPlot->setTitle("Old Plot"); det->clearAcquiringFlag(); // (from previous exit) or if running - isRxRoiDisplayed = false; // ensure data streaming in receiver (if plot enabled) if (isPlot) { @@ -634,6 +631,34 @@ void qDrawPlot::StartAcquisition() { LOG(logDEBUG) << "End of Starting Acquisition in qDrawPlot"; } +void qDrawPlot::UpdateROI() { + try { + std::lock_guard lock(mPlots); + roi = det->getRxROI(); + roiDisplayInitialized = false; + // roi enabled + if (roi.size() > 1 || !roi[0].completeRoi()) { + hasRoi = true; + // update gap pixels + // hardcoded gap pixels because only for eiger and jungfrau + if (isGapPixels) { + for (auto &r : roi) { + r.xmin += ((r.xmin / 1024) * 6 + (r.xmin / 256) * 2); + r.xmax += ((r.xmax / 1024) * 6 + (r.xmax / 256) * 2); + r.ymin += ((r.ymin / 512) * 34 + (r.ymin / 256) * 2); + r.ymax += ((r.ymax / 512) * 34 + (r.ymax / 256) * 2); + } + LOG(logINFO) + << "Roi recalculated with gap pixels: " << ToString(roi); + } + } else { + hasRoi = false; + } + LOG(logDEBUG) << "Roi: " << ToString(roi); + } + CATCH_DISPLAY("Could not get reciver ROI.", "qDrawPlot::UpdateRoi") +} + void qDrawPlot::AcquireThread() { LOG(logDEBUG) << "Acquire Thread"; std::string mess; @@ -711,7 +736,6 @@ void qDrawPlot::GetData(detectorData *data, uint64_t frameIndex, << " \t dynamic range: " << data->dynamicRange << std::endl << " \t file index: " << data->fileIndex << std::endl << " \t complete image: " << data->completeImage << std::endl - << " \t rx Roi: " << ToString(data->rxRoi) << std::endl << " ]"; progress = data->progressIndex; @@ -719,22 +743,6 @@ void qDrawPlot::GetData(detectorData *data, uint64_t frameIndex, currentFrame = frameIndex; LOG(logDEBUG) << "[ Progress:" << progress << "%, Frame:" << currentFrame << " ]"; - if (!isRxRoiDisplayed) { - rxRoi.xmin = data->rxRoi[0]; - rxRoi.xmax = data->rxRoi[1]; - rxRoi.ymin = data->rxRoi[2]; - rxRoi.ymax = data->rxRoi[3]; - // only for 2d anyway - if (isGapPixels) { - rxRoi.xmin += ((rxRoi.xmin / 1024) * 6 + (rxRoi.xmin / 256) * 2); - rxRoi.xmax += ((rxRoi.xmax / 1024) * 6 + (rxRoi.xmax / 256) * 2); - rxRoi.ymin += ((rxRoi.ymin / 512) * 34 + (rxRoi.ymin / 256) * 2); - rxRoi.ymax += ((rxRoi.ymax / 512) * 34 + (rxRoi.ymax / 256) * 2); - LOG(logINFO) << "Rx_roi recalculated with gap pixels: " - << ToString(rxRoi); - } - LOG(logDEBUG) << "Rx_roi: " << ToString(rxRoi); - } // 1d check if npixelX has changed (m3 for different counters enabled) if (is1d && static_cast(nPixelsX) != data->nx) { @@ -973,30 +981,27 @@ void qDrawPlot::Update1dPlot() { xyRangeChanged = false; } plot1d->DisableZoom(disableZoom); - if (!isRxRoiDisplayed) { - isRxRoiDisplayed = true; - if (rxRoi.completeRoi()) { - plot1d->DisableRoiBox(); + if (!roiDisplayInitialized) { + roiDisplayInitialized = true; + if (!hasRoi) { + plot1d->DisableRoiBoxes(); if (isGainDataExtracted) { - gainplot1d->DisableRoiBox(); + gainplot1d->DisableRoiBoxes(); } lblRxRoiEnabled->hide(); } else { - plot1d->EnableRoiBox(std::array{ - rxRoi.xmin, rxRoi.xmax, (int)plot1d->GetYMinimum(), - (int)plot1d->GetYMaximum()}); + plot1d->EnableRoiBoxes(roi, (int)plot1d->GetYMinimum(), + (int)plot1d->GetYMaximum()); if (isGainDataExtracted) { - gainplot1d->EnableRoiBox( - std::array{rxRoi.xmin, rxRoi.xmax, 0, 3}); + gainplot1d->EnableRoiBoxes(roi, 0, 3); } lblRxRoiEnabled->show(); } } // ymin and ymax could change (so replot roi every time) - if (!rxRoi.completeRoi()) { - plot1d->EnableRoiBox(std::array{rxRoi.xmin, rxRoi.xmax, - (int)plot1d->GetYMinimum(), - (int)plot1d->GetYMaximum()}); + if (hasRoi) { + plot1d->EnableRoiBoxes(roi, (int)plot1d->GetYMinimum(), + (int)plot1d->GetYMaximum()); } } @@ -1027,18 +1032,18 @@ void qDrawPlot::Update2dPlot() { } plot2d->DisableZoom(disableZoom); plot2d->SetZRange(isZRange[0], isZRange[1], zRange[0], zRange[1]); - if (!isRxRoiDisplayed) { - isRxRoiDisplayed = true; - if (rxRoi.completeRoi()) { - plot2d->DisableRoiBox(); + if (!roiDisplayInitialized) { + roiDisplayInitialized = true; + if (!hasRoi) { + plot2d->DisableRoiBoxes(); if (isGainDataExtracted) { - gainplot2d->DisableRoiBox(); + gainplot2d->DisableRoiBoxes(); } lblRxRoiEnabled->hide(); } else { - plot2d->EnableRoiBox(rxRoi.getIntArray()); + plot2d->EnableRoiBoxes(roi); if (isGainDataExtracted) { - gainplot2d->EnableRoiBox(rxRoi.getIntArray()); + gainplot2d->EnableRoiBoxes(roi); } lblRxRoiEnabled->show(); } diff --git a/slsDetectorGui/src/qTabAdvanced.cpp b/slsDetectorGui/src/qTabAdvanced.cpp index a00d518cc..742295521 100644 --- a/slsDetectorGui/src/qTabAdvanced.cpp +++ b/slsDetectorGui/src/qTabAdvanced.cpp @@ -28,9 +28,6 @@ void qTabAdvanced::SetupWidgetWindow() { spinSubDeadTime->setEnabled(true); comboSubDeadTimeUnit->setEnabled(true); break; - case slsDetectorDefs::GOTTHARD: - tab_roi->setEnabled(true); - break; case slsDetectorDefs::MYTHEN3: tab_trimming->setEnabled(true); lblDiscardBits->setEnabled(true); @@ -114,14 +111,6 @@ void qTabAdvanced::Initialization() { connect(spinRxrZMQPort, SIGNAL(valueChanged(int)), this, SLOT(SetRxrZMQPort(int))); - // roi - if (tab_roi->isEnabled()) { - connect(comboReadout, SIGNAL(currentIndexChanged(int)), this, - SLOT(GetROI())); - connect(btnSetRoi, SIGNAL(clicked()), this, SLOT(SetROI())); - connect(btnClearRoi, SIGNAL(clicked()), this, SLOT(ClearROI())); - } - // storage cells if (lblNumStoragecells->isEnabled()) { connect(spinNumStoragecells, SIGNAL(valueChanged(int)), this, @@ -173,23 +162,16 @@ void qTabAdvanced::PopulateDetectors() { LOG(logDEBUG) << "Populating detectors"; disconnect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(SetDetector())); - disconnect(comboReadout, SIGNAL(currentIndexChanged(int)), this, - SLOT(GetROI())); comboDetector->clear(); - comboReadout->clear(); auto res = det->getHostname(); for (auto &it : res) { comboDetector->addItem(QString(it.c_str())); - comboReadout->addItem(QString(it.c_str())); } comboDetector->setCurrentIndex(0); - comboReadout->setCurrentIndex(0); connect(comboDetector, SIGNAL(currentIndexChanged(int)), this, SLOT(SetDetector())); - connect(comboReadout, SIGNAL(currentIndexChanged(int)), this, - SLOT(GetROI())); } void qTabAdvanced::GetControlPort() { @@ -570,40 +552,6 @@ void qTabAdvanced::SetRxrZMQPort(int port) { &qTabAdvanced::GetRxrZMQPort) } -void qTabAdvanced::GetROI() { - LOG(logDEBUG) << "Getting ROI"; - try { - slsDetectorDefs::ROI roi = - det->getROI({comboReadout->currentIndex()})[0]; - spinXmin->setValue(roi.xmin); - spinXmax->setValue(roi.xmax); - } - CATCH_DISPLAY("Could not get ROI.", "qTabAdvanced::GetROI") -} - -void qTabAdvanced::ClearROI() { - LOG(logINFO) << "Clearing ROI"; - spinXmin->setValue(-1); - spinXmax->setValue(-1); - SetROI(); - LOG(logDEBUG) << "ROIs cleared"; -} - -void qTabAdvanced::SetROI() { - - slsDetectorDefs::ROI roi(spinXmin->value(), spinXmax->value()); - - // set roi - LOG(logINFO) << "Setting ROI: [" << roi.xmin << ", " << roi.xmax << "]"; - try { - det->setROI(roi, {comboReadout->currentIndex()}); - } - CATCH_DISPLAY("Could not set these ROIs.", "qTabAdvanced::SetROI") - - // update corrected list - GetROI(); -} - void qTabAdvanced::GetAllTrimbits() { LOG(logDEBUG) << "Getting all trimbits value"; disconnect(spinSetAllTrimbits, SIGNAL(valueChanged(int)), this, @@ -831,11 +779,6 @@ void qTabAdvanced::Refresh() { // update all network widgets SetDetector(); - // roi - if (tab_roi->isEnabled()) { - GetROI(); - } - // storage cells if (lblNumStoragecells->isEnabled()) { GetNumStoragecells(); diff --git a/slsDetectorGui/src/qTabDeveloper.cpp b/slsDetectorGui/src/qTabDeveloper.cpp index 7acfb5585..45b0c0753 100644 --- a/slsDetectorGui/src/qTabDeveloper.cpp +++ b/slsDetectorGui/src/qTabDeveloper.cpp @@ -34,15 +34,6 @@ void qTabDeveloper::SetupWidgetWindow() { new qDacWidget(this, det, false, sls::ToString(it), it)); } break; - case slsDetectorDefs::GOTTHARD: - ind = slsDetectorDefs::TEMPERATURE_ADC; - adcWidgets.push_back( - new qDacWidget(this, det, false, sls::ToString(ind), ind)); - ind = slsDetectorDefs::TEMPERATURE_FPGA; - adcWidgets.push_back( - new qDacWidget(this, det, false, sls::ToString(ind), ind)); - break; - case slsDetectorDefs::JUNGFRAU: ind = slsDetectorDefs::TEMPERATURE_ADC; adcWidgets.push_back( diff --git a/slsDetectorGui/src/qTabPlot.cpp b/slsDetectorGui/src/qTabPlot.cpp index 35d35add7..436a3dff4 100644 --- a/slsDetectorGui/src/qTabPlot.cpp +++ b/slsDetectorGui/src/qTabPlot.cpp @@ -47,7 +47,6 @@ void qTabPlot::SetupWidgetWindow() { // enabling according to det type is1d = false; switch (det->getDetectorType().squash()) { - case slsDetectorDefs::GOTTHARD: case slsDetectorDefs::MYTHEN3: is1d = true; break; diff --git a/slsDetectorGui/src/qTabSettings.cpp b/slsDetectorGui/src/qTabSettings.cpp index 9b6945f90..ae86b77a5 100644 --- a/slsDetectorGui/src/qTabSettings.cpp +++ b/slsDetectorGui/src/qTabSettings.cpp @@ -18,8 +18,6 @@ qTabSettings::qTabSettings(QWidget *parent, Detector *detector) qTabSettings::~qTabSettings() {} void qTabSettings::SetupWidgetWindow() { - comboHV->hide(); - lblComboHV->hide(); lblSpinHV->hide(); spinHV->hide(); hvmin = HV_MIN; @@ -100,9 +98,6 @@ void qTabSettings::SetupWidgetWindow() { } else if (detType == slsDetectorDefs::MOENCH) { lblSpinHV->show(); spinHV->show(); - } else if (detType == slsDetectorDefs::GOTTHARD) { - comboHV->show(); - lblComboHV->show(); } else if (detType == slsDetectorDefs::GOTTHARD2) { lblSpinHV->show(); spinHV->show(); @@ -189,8 +184,6 @@ void qTabSettings::ShowFixG0(bool expertMode) { void qTabSettings::Initialization() { // High voltage - connect(comboHV, SIGNAL(currentIndexChanged(int)), this, - SLOT(SetHighVoltage())); connect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage())); // Settings @@ -231,12 +224,10 @@ void qTabSettings::Initialization() { void qTabSettings::GetHighVoltage() { // not enabled for eiger - if (!comboHV->isVisible() && !spinHV->isVisible()) + if (!spinHV->isVisible()) return; LOG(logDEBUG) << "Getting High Voltage"; disconnect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage())); - disconnect(comboHV, SIGNAL(currentIndexChanged(int)), this, - SLOT(SetHighVoltage())); try { Result retvals = det->getHighVoltage(); @@ -258,55 +249,19 @@ void qTabSettings::GetHighVoltage() { master_retvals.tsquash("Inconsistent values for high voltage."); } - // spinHV - if (spinHV->isVisible()) { - if (retval != 0 && retval < hvmin && retval > HV_MAX) { - throw RuntimeError(std::string("Unknown High Voltage: ") + - std::to_string(retval)); - } - spinHV->setValue(retval); - } - // combo HV - else { - switch (retval) { - case 0: - comboHV->setCurrentIndex(HV_0); - break; - case 90: - comboHV->setCurrentIndex(HV_90); - break; - case 110: - comboHV->setCurrentIndex(HV_110); - break; - case 120: - comboHV->setCurrentIndex(HV_120); - break; - case 150: - comboHV->setCurrentIndex(HV_150); - break; - case 180: - comboHV->setCurrentIndex(HV_180); - break; - case 200: - comboHV->setCurrentIndex(HV_200); - break; - default: - throw RuntimeError(std::string("Unknown High Voltage: ") + - std::to_string(retval)); - } + if (retval != 0 && retval < hvmin && retval > HV_MAX) { + throw RuntimeError(std::string("Unknown High Voltage: ") + + std::to_string(retval)); } + spinHV->setValue(retval); } CATCH_DISPLAY("Could not get high voltage.", "qTabSettings::GetHighVoltage") connect(spinHV, SIGNAL(valueChanged(int)), this, SLOT(SetHighVoltage())); - connect(comboHV, SIGNAL(currentIndexChanged(int)), this, - SLOT(SetHighVoltage())); } void qTabSettings::SetHighVoltage() { - int val = (comboHV->isVisible() ? comboHV->currentText().toInt() - : spinHV->value()); + int val = spinHV->value(); LOG(logINFO) << "Setting high voltage:" << val; - try { det->setHighVoltage(val); } diff --git a/slsDetectorServers/CMakeLists.txt b/slsDetectorServers/CMakeLists.txt index 703cd77f0..9d1db734c 100644 --- a/slsDetectorServers/CMakeLists.txt +++ b/slsDetectorServers/CMakeLists.txt @@ -13,7 +13,6 @@ install(TARGETS slsProjectCSettings add_subdirectory(ctbDetectorServer) add_subdirectory(xilinx_ctbDetectorServer) add_subdirectory(eigerDetectorServer) -add_subdirectory(gotthardDetectorServer) add_subdirectory(jungfrauDetectorServer) add_subdirectory(mythen3DetectorServer) add_subdirectory(gotthard2DetectorServer) diff --git a/slsDetectorServers/compileAllServers.sh b/slsDetectorServers/compileAllServers.sh old mode 100644 new mode 100755 index eec8907bf..284f6dfa6 --- a/slsDetectorServers/compileAllServers.sh +++ b/slsDetectorServers/compileAllServers.sh @@ -1,17 +1,19 @@ # SPDX-License-Identifier: LGPL-3.0-or-other # Copyright (C) 2021 Contributors to the SLS Detector Package -# empty branch = developer branch in updateAPIVersion.sh -branch="" det_list=("ctbDetectorServer - gotthardDetectorServer gotthard2DetectorServer jungfrauDetectorServer mythen3DetectorServer moenchDetectorServer - xilinx_ctbDetectorServer" + xilinx_ctbDetectorServer" ) -usage="\nUsage: compileAllServers.sh [server|all(opt)] [branch(opt)]. \n\tNo arguments mean all servers with 'developer' branch. \n\tNo 'branch' input means 'developer branch'" +usage="\nUsage: compileAllServers.sh [server|all(opt)] [update_api(opt)]. \n\tNo arguments mean all servers with 'developer' branch. \n\tupdate_api if true updates the api to version in VERSION file" + +update_api=true +target=version + + # arguments if [ $# -eq 0 ]; then @@ -35,15 +37,12 @@ elif [ $# -eq 1 ] || [ $# -eq 2 ]; then declare -a det=("${1}") #echo "Compiling only $1" fi - # branch + if [ $# -eq 2 ]; then - # arg in list - if [[ $det_list == *$2* ]]; then - echo -e "Invalid argument 2: $2. $usage" - return 1 + update_api=$2 + if not $update_api ; then + target=clean fi - branch+=$2 - #echo "with branch $branch" fi else echo -e "Too many arguments.$usage" @@ -54,6 +53,9 @@ declare -a deterror=("OK" "OK" "OK" "OK" "OK" "OK") echo -e "list is ${det[@]}" +if $update_api; then + echo "updating api to $(cat ../VERSION)" +fi # compile each server idet=0 for i in ${det[@]} @@ -63,14 +65,13 @@ do echo -e "Compiling $dir [$file]" cd $dir make clean - if make version API_BRANCH=$branch; then + if make $target; then deterror[$idet]="OK" else deterror[$idet]="FAIL" fi mv bin/$dir bin/$file git add -f bin/$file - cp bin/$file /tftpboot/ cd .. echo -e "\n\n" ((++idet)) diff --git a/slsDetectorServers/compileAllServers_noAPIUpdate.sh b/slsDetectorServers/compileAllServers_noAPIUpdate.sh deleted file mode 100644 index ecfbdf6fb..000000000 --- a/slsDetectorServers/compileAllServers_noAPIUpdate.sh +++ /dev/null @@ -1,87 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package - -# empty branch = developer branch in updateAPIVersion.sh -branch="" -det_list=("ctbDetectorServer" - "gotthardDetectorServer" - "gotthard2DetectorServer" - "jungfrauDetectorServer" - "mythen3DetectorServer" - "moenchDetectorServer" - "xilinx_ctbDetectorServer" - ) -usage="\nUsage: compileAllServers.sh [server|all(opt)] [branch(opt)]. \n\tNo arguments mean all servers with 'developer' branch. \n\tNo 'branch' input means 'developer branch'" - -# arguments -if [ $# -eq 0 ]; then - # no argument, all servers - declare -a det=${det_list[@]} - echo "Compiling all servers" -elif [ $# -eq 1 ] || [ $# -eq 2 ]; then - # 'all' servers - if [[ $1 == "all" ]]; then - declare -a det=${det_list[@]} - echo "Compiling all servers" - else - # only one server - # arg not in list - if [[ $det_list != *$1* ]]; then - echo -e "Invalid argument 1: $1. $usage" - return -1 - fi - declare -a det=("${1}") - #echo "Compiling only $1" - fi - # branch - if [ $# -eq 2 ]; then - # arg in list - if [[ $det_list == *$2* ]]; then - echo -e "Invalid argument 2: $2. $usage" - return -1 - fi - branch+=$2 - #echo "with branch $branch" - fi -else - echo -e "Too many arguments.$usage" - return -1 -fi - -declare -a deterror=("OK" "OK" "OK" "OK" "OK" "OK") - -echo -e "list is ${det[@]}" - -# compile each server -idet=0 -for i in ${det[@]} -do - dir=$i - file="${i}_developer" - echo -e "Compiling $dir [$file]" - cd $dir - make clean - if make API_BRANCH=$branch; then - deterror[$idet]="OK" - else - deterror[$idet]="FAIL" - fi - mv bin/$dir bin/$file - git add -f bin/$file - cp bin/$file /tftpboot/ - cd .. - echo -e "\n\n" - ((++idet)) -done - -echo -e "Results:" -idet=0 -for i in ${det[@]} -do - printf "%s\t\t= %s\n" "$i" "${deterror[$idet]}" - ((++idet)) -done - - - - diff --git a/slsDetectorServers/compileEigerServer.sh b/slsDetectorServers/compileEigerServer.sh old mode 100644 new mode 100755 index 35aff3f80..f5873dff8 --- a/slsDetectorServers/compileEigerServer.sh +++ b/slsDetectorServers/compileEigerServer.sh @@ -3,21 +3,31 @@ deterror="OK" dir="eigerDetectorServer" file="${dir}_developer" -branch="" + +usage="\nUsage: compileAllServers.sh [update_api(opt)]. \n\t update_api if true updates the api to version in VERSION file" + +update_api=true +target=version # arguments if [ $# -eq 1 ]; then - branch+=$1 - #echo "with branch $branch" + update_api=$1 + if not $update_api ; then + target=clean + + fi elif [ ! $# -eq 0 ]; then - echo -e "Only one optional argument allowed for branch." + echo -e "Only one optional argument allowed for update_api." return -1 fi +if $update_api; then + echo "updating api to $(cat ../VERSION)" +fi + echo -e "Compiling $dir [$file]" cd $dir -make clean -if make version API_BRANCH=$branch; then +if make $target; then deterror="OK" else deterror="FAIL" @@ -25,7 +35,6 @@ fi mv bin/$dir bin/$file git add -f bin/$file -cp bin/$file /tftpboot/ cd .. echo -e "\n\n" printf "Result:\t\t= %s\n" "${deterror}" diff --git a/slsDetectorServers/ctbDetectorServer/Makefile b/slsDetectorServers/ctbDetectorServer/Makefile index 5bdb5679d..0b56dd825 100755 --- a/slsDetectorServers/ctbDetectorServer/Makefile +++ b/slsDetectorServers/ctbDetectorServer/Makefile @@ -25,11 +25,10 @@ version: clean versioning $(PROGS) boot: $(OBJS) -version_branch=$(API_BRANCH) version_name=APICTB version_path=slsDetectorServers/ctbDetectorServer versioning: - cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path) $(version_branch); tput sgr0;` + cd ../../ && echo $(PWD) && echo `tput setaf 6; python updateAPIVersion.py $(version_name) $(version_path); tput sgr0;` $(PROGS): $(OBJS) diff --git a/slsDetectorServers/ctbDetectorServer/RegisterDefs.h b/slsDetectorServers/ctbDetectorServer/RegisterDefs.h index cd525124a..ebae6819f 100644 --- a/slsDetectorServers/ctbDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/ctbDetectorServer/RegisterDefs.h @@ -5,6 +5,7 @@ /* Definitions for FPGA */ #define MEM_MAP_SHIFT 1 +#define REG_OFFSET (2) /* FPGA Version RO register */ #define FPGA_VERSION_REG (0x00 << MEM_MAP_SHIFT) @@ -65,8 +66,8 @@ (0x000000FF << STATUS_PT_CNTRL_STTS_OFF_OFST) #define STATUS_IDLE_MSK (0x677FF) -/* Look at me RO register TODO */ -#define LOOK_AT_ME_REG (0x03 << MEM_MAP_SHIFT) +/* Register containing the git hash of the FPGA firmware */ +#define FIRMWARE_GIT_HASH_REG (0x03 << MEM_MAP_SHIFT) /* System Status RO register */ #define SYSTEM_STATUS_REG (0x04 << MEM_MAP_SHIFT) @@ -119,7 +120,7 @@ #define MOD_SERIAL_NUMBER_VRSN_MSK (0x0000003F << MOD_SERIAL_NUMBER_VRSN_OFST) /* API Version RO register */ -#define API_VERSION_REG (0x0F << MEM_MAP_SHIFT) +#define API_VERSION_REG (0x0B << MEM_MAP_SHIFT) #define API_VERSION_OFST (0) #define API_VERSION_MSK (0x00FFFFFF << API_VERSION_OFST) @@ -128,24 +129,24 @@ /* Time from Start 64 bit RO register. t = GCLK x 50 ns. Reset using * CONTROL_CRST. TODO */ -#define TIME_FROM_START_LSB_REG (0x10 << MEM_MAP_SHIFT) -#define TIME_FROM_START_MSB_REG (0x11 << MEM_MAP_SHIFT) +#define TIME_FROM_START_LSB_REG (0x97 << MEM_MAP_SHIFT) +#define TIME_FROM_START_MSB_REG (0x98 << MEM_MAP_SHIFT) /* Delay Left 64 bit RO register. t = DLY x 50 ns. TODO */ -#define DELAY_LEFT_LSB_REG (0x12 << MEM_MAP_SHIFT) -#define DELAY_LEFT_MSB_REG (0x13 << MEM_MAP_SHIFT) +#define DELAY_LEFT_LSB_REG (0x8D << MEM_MAP_SHIFT) +#define DELAY_LEFT_MSB_REG (0x8E << MEM_MAP_SHIFT) /* Triggers Left 64 bit RO register TODO */ -#define CYCLES_LEFT_LSB_REG (0x14 << MEM_MAP_SHIFT) -#define CYCLES_LEFT_MSB_REG (0x15 << MEM_MAP_SHIFT) +#define CYCLES_LEFT_LSB_REG (0x8F << MEM_MAP_SHIFT) +#define CYCLES_LEFT_MSB_REG (0x90 << MEM_MAP_SHIFT) /* Frames Left 64 bit RO register TODO */ -#define FRAMES_LEFT_LSB_REG (0x16 << MEM_MAP_SHIFT) -#define FRAMES_LEFT_MSB_REG (0x17 << MEM_MAP_SHIFT) +#define FRAMES_LEFT_LSB_REG (0x91 << MEM_MAP_SHIFT) +#define FRAMES_LEFT_MSB_REG (0x92 << MEM_MAP_SHIFT) /* Period Left 64 bit RO register. t = T x 50 ns. TODO */ -#define PERIOD_LEFT_LSB_REG (0x18 << MEM_MAP_SHIFT) -#define PERIOD_LEFT_MSB_REG (0x19 << MEM_MAP_SHIFT) +#define PERIOD_LEFT_LSB_REG (0x93 << MEM_MAP_SHIFT) +#define PERIOD_LEFT_MSB_REG (0x94 << MEM_MAP_SHIFT) /* Exposure Time Left 64 bit RO register */ // #define EXPTIME_LEFT_LSB_REG (0x1A << MEM_MAP_SHIFT) // Not @@ -160,34 +161,34 @@ //// Not used in FW /* Data In 64 bit RO register TODO */ -#define DATA_IN_LSB_REG (0x1E << MEM_MAP_SHIFT) -#define DATA_IN_MSB_REG (0x1F << MEM_MAP_SHIFT) +#define DATA_IN_LSB_REG (0x10 << MEM_MAP_SHIFT) +#define DATA_IN_MSB_REG (0x11 << MEM_MAP_SHIFT) /* Pattern Out 64 bit RO register */ -#define PATTERN_OUT_LSB_REG (0x20 << MEM_MAP_SHIFT) -#define PATTERN_OUT_MSB_REG (0x21 << MEM_MAP_SHIFT) +#define PATTERN_OUT_LSB_REG (0x80 << MEM_MAP_SHIFT) +#define PATTERN_OUT_MSB_REG (0x81 << MEM_MAP_SHIFT) /* Frame number of next acquisition register (64 bit register) */ -#define NEXT_FRAME_NUMB_LOCAL_LSB_REG (0x22 << MEM_MAP_SHIFT) -#define NEXT_FRAME_NUMB_LOCAL_MSB_REG (0x23 << MEM_MAP_SHIFT) +#define NEXT_FRAME_NUMB_LOCAL_LSB_REG (0x12 << MEM_MAP_SHIFT) +#define NEXT_FRAME_NUMB_LOCAL_MSB_REG (0x13 << MEM_MAP_SHIFT) /* Frames From Start PG 64 bit RO register. Reset using CONTROL_CRST. TODO */ -#define FRAMES_FROM_START_PG_LSB_REG (0x24 << MEM_MAP_SHIFT) -#define FRAMES_FROM_START_PG_MSB_REG (0x25 << MEM_MAP_SHIFT) +#define FRAMES_FROM_START_PG_LSB_REG (0x99 << MEM_MAP_SHIFT) +#define FRAMES_FROM_START_PG_MSB_REG (0x9A << MEM_MAP_SHIFT) /* Start Frame Time (Measurement Time) 64 bit register (timestamp at a frame * start until reset) TODO */ -#define START_FRAME_TIME_LSB_REG (0x26 << MEM_MAP_SHIFT) -#define START_FRAME_TIME_MSB_REG (0x27 << MEM_MAP_SHIFT) +#define START_FRAME_TIME_LSB_REG (0x9B << MEM_MAP_SHIFT) +#define START_FRAME_TIME_MSB_REG (0x9C << MEM_MAP_SHIFT) /* Power Status RO register */ -#define POWER_STATUS_REG (0x29 << MEM_MAP_SHIFT) +#define POWER_STATUS_REG (0x18 << MEM_MAP_SHIFT) #define POWER_STATUS_ALRT_OFST (27) #define POWER_STATUS_ALRT_MSK (0x0000001F << POWER_STATUS_ALRT_OFST) /* FIFO Transceiver In Status RO register */ -#define FIFO_TIN_STATUS_REG (0x30 << MEM_MAP_SHIFT) +#define FIFO_TIN_STATUS_REG (0x1A << MEM_MAP_SHIFT) #define FIFO_TIN_STATUS_FIFO_EMPTY_1_OFST (4) #define FIFO_TIN_STATUS_FIFO_EMPTY_1_MSK (0x00000001 << FIFO_TIN_STATUS_FIFO_EMPTY_1_OFST) #define FIFO_TIN_STATUS_FIFO_EMPTY_2_OFST (5) @@ -198,23 +199,54 @@ #define FIFO_TIN_STATUS_FIFO_EMPTY_4_MSK (0x00000001 << FIFO_TIN_STATUS_FIFO_EMPTY_4_OFST) #define FIFO_TIN_STATUS_FIFO_EMPTY_ALL_MSK (0x0000000F << FIFO_TIN_STATUS_FIFO_EMPTY_1_OFST) +/* FIFO Transceiver Fill level RO register */ +#define FIFO_TIN_FILL_REG (0x25 << MEM_MAP_SHIFT) +#define FIFO_TIN_FILL_FIFO_1_OFST (0) +#define FIFO_TIN_FILL_FIFO_1_MSK (0x00003FFF << FIFO_TIN_FILL_FIFO__1_OFST) +#define FIFO_TIN_FILL_FIFO_2_OFST (16) +#define FIFO_TIN_FILL_FIFO_2_MSK (0x00003FFF << FIFO_TIN_FILL_FIFO__2_OFST) + +/* FIFO ADC Fill level RO register */ +#define FIFO_ADC_FILL_REG (0x26 << MEM_MAP_SHIFT) +#define FIFO_ADC_FILL_FIFO_OFST (0) +#define FIFO_ADC_FILL_FIFO_MSK (0x00003FFF << FIFO_ADC_FILL_FIFO_OFST) + +/* Enable continuos readout register */ +#define CONTINUOUS_RO_ENABLE_REG (0x27 << MEM_MAP_SHIFT) +#define CONTINUOUS_RO_ADC_ENABLE_OFST (0) +#define CONTINUOUS_RO_TIN_ENABLE_OFST (1) +#define CONTINUOUS_RO_DBIT_ENABLE_OFST (2) +#define CONTINUOUS_RO_ADC_ENABLE_MSK (0x00000001 << CONTINUOUS_RO_ADC_ENABLE_OFST) +#define CONTINUOUS_RO_TIN_ENABLE_MSK (0x00000001 << CONTINUOUS_RO_TIN_ENABLE_OFST) +#define CONTINUOUS_RO_DBIT_ENABLE_MSK (0x00000001 << CONTINUOUS_RO_DBIT_ENABLE_OFST) +#define DBIT_INJECT_COUNTER_ENA_OFST (3) // continuously injects fake-data into the dbit fifo when enabled. +#define DBIT_INJECT_COUNTER_ENA_MSK (0x00000001 << DBIT_INJECT_COUNTER_ENA_OFST) +#define DBIT_INJECT_COUNTER_CLKDIV_OFST (8) // Additional clock divider for fake-data injection +#define DBIT_INJECT_COUNTER_CLKDIV_MSK (0x000000FF << DBIT_INJECT_COUNTER_CLKDIV_OFST) + +/* 64-bit FPGA chip ID. Unique for every device. read-only */ +#define FPGA_chipID_0_REG (0x28 << MEM_MAP_SHIFT) +#define FPGA_chipID_1_REG (0x29 << MEM_MAP_SHIFT) + /* FIFO Transceiver In 64 bit RO register */ -#define FIFO_TIN_LSB_REG (0x31 << MEM_MAP_SHIFT) -#define FIFO_TIN_MSB_REG (0x32 << MEM_MAP_SHIFT) +#define FIFO_TIN_LSB_REG (0x1B << MEM_MAP_SHIFT) +#define FIFO_TIN_MSB_REG (0x1C << MEM_MAP_SHIFT) /* FIFO Digital In Status RO register */ -#define FIFO_DIN_STATUS_REG (0x3B << MEM_MAP_SHIFT) +#define FIFO_DIN_STATUS_REG (0x1D << MEM_MAP_SHIFT) +#define FIFO_DIN_STATUS_FIFO_FILL_OFST (0) +#define FIFO_DIN_STATUS_FIFO_FILL_MSK (0x00003FFF) #define FIFO_DIN_STATUS_FIFO_FULL_OFST (30) #define FIFO_DIN_STATUS_FIFO_FULL_MSK (0x00000001 << FIFO_DIN_STATUS_FIFO_FULL_OFST) #define FIFO_DIN_STATUS_FIFO_EMPTY_OFST (31) #define FIFO_DIN_STATUS_FIFO_EMPTY_MSK (0x00000001 << FIFO_DIN_STATUS_FIFO_EMPTY_OFST) /* FIFO Digital In 64 bit RO register */ -#define FIFO_DIN_LSB_REG (0x3C << MEM_MAP_SHIFT) -#define FIFO_DIN_MSB_REG (0x3D << MEM_MAP_SHIFT) +#define FIFO_DIN_LSB_REG (0x1E << MEM_MAP_SHIFT) +#define FIFO_DIN_MSB_REG (0x1F << MEM_MAP_SHIFT) /* SPI (Serial Peripheral Interface) DAC, HV RW register */ -#define SPI_REG (0x40 << MEM_MAP_SHIFT) +#define SPI_REG (0x20 << MEM_MAP_SHIFT) #define SPI_DAC_SRL_DGTL_OTPT_OFST (0) #define SPI_DAC_SRL_DGTL_OTPT_MSK (0x00000001 << SPI_DAC_SRL_DGTL_OTPT_OFST) @@ -230,7 +262,7 @@ #define SPI_HV_SRL_CS_OTPT_MSK (0x00000001 << SPI_HV_SRL_CS_OTPT_OFST) /* ADC SPI (Serial Peripheral Interface) RW register */ -#define ADC_SPI_REG (0x41 << MEM_MAP_SHIFT) +#define ADC_SPI_REG (0x21 << MEM_MAP_SHIFT) #define ADC_SPI_SRL_CLK_OTPT_OFST (0) #define ADC_SPI_SRL_CLK_OTPT_MSK (0x00000001 << ADC_SPI_SRL_CLK_OTPT_OFST) @@ -240,7 +272,7 @@ #define ADC_SPI_SRL_CS_OTPT_MSK (0x0000000F << ADC_SPI_SRL_CS_OTPT_OFST) /* ADC Offset RW register */ -#define ADC_OFFSET_REG (0x42 << MEM_MAP_SHIFT) +#define ADC_OFFSET_REG (0x22 << MEM_MAP_SHIFT) #define ADC_OFFSET_ADC_PPLN_OFST (0) #define ADC_OFFSET_ADC_PPLN_MSK (0x000000FF << ADC_OFFSET_ADC_PPLN_OFST) @@ -248,7 +280,7 @@ #define ADC_OFFSET_DBT_PPLN_MSK (0x000000FF << ADC_OFFSET_DBT_PPLN_OFST) /* ADC Port Invert RW register */ -#define ADC_PORT_INVERT_REG (0x43 << MEM_MAP_SHIFT) +#define ADC_PORT_INVERT_REG (0x23 << MEM_MAP_SHIFT) #define ADC_PORT_INVERT_0_INPT_OFST (0) #define ADC_PORT_INVERT_0_INPT_MSK (0x000000FF << ADC_PORT_INVERT_0_INPT_OFST) @@ -260,7 +292,7 @@ #define ADC_PORT_INVERT_3_INPT_MSK (0x000000FF << ADC_PORT_INVERT_3_INPT_OFST) /* Dummy RW register */ -#define DUMMY_REG (0x44 << MEM_MAP_SHIFT) +#define DUMMY_REG (0x24 << MEM_MAP_SHIFT) #define DUMMY_FIFO_CHNNL_SLCT_OFST (0) #define DUMMY_FIFO_CHNNL_SLCT_MSK (0x0000003F << DUMMY_FIFO_CHNNL_SLCT_OFST) @@ -273,46 +305,8 @@ #define DUMMY_TRNSCVR_FIFO_RD_STRBE_OFST (14) #define DUMMY_TRNSCVR_FIFO_RD_STRBE_MSK (0x00000001 << DUMMY_TRNSCVR_FIFO_RD_STRBE_OFST) -/* Receiver IP Address RW register */ -#define RX_IP_REG (0x45 << MEM_MAP_SHIFT) - -/* UDP Port RW register */ -#define UDP_PORT_REG (0x46 << MEM_MAP_SHIFT) - -#define UDP_PORT_RX_OFST (0) -#define UDP_PORT_RX_MSK (0x0000FFFF << UDP_PORT_RX_OFST) -#define UDP_PORT_TX_OFST (16) -#define UDP_PORT_TX_MSK (0x0000FFFF << UDP_PORT_TX_OFST) - -/* Receiver Mac Address 64 bit RW register */ -#define RX_MAC_LSB_REG (0x47 << MEM_MAP_SHIFT) -#define RX_MAC_MSB_REG (0x48 << MEM_MAP_SHIFT) - -#define RX_MAC_LSB_OFST (0) -#define RX_MAC_LSB_MSK (0xFFFFFFFF << RX_MAC_LSB_OFST) -#define RX_MAC_MSB_OFST (0) -#define RX_MAC_MSB_MSK (0x0000FFFF << RX_MAC_MSB_OFST) - -/* Detector/ Transmitter Mac Address 64 bit RW register */ -#define TX_MAC_LSB_REG (0x49 << MEM_MAP_SHIFT) -#define TX_MAC_MSB_REG (0x4A << MEM_MAP_SHIFT) - -#define TX_MAC_LSB_OFST (0) -#define TX_MAC_LSB_MSK (0xFFFFFFFF << TX_MAC_LSB_OFST) -#define TX_MAC_MSB_OFST (0) -#define TX_MAC_MSB_MSK (0x0000FFFF << TX_MAC_MSB_OFST) - -/* Detector/ Transmitter IP Address RW register */ -#define TX_IP_REG (0x4B << MEM_MAP_SHIFT) - -/* Detector/ Transmitter IP Checksum RW register */ -#define TX_IP_CHECKSUM_REG (0x4C << MEM_MAP_SHIFT) - -#define TX_IP_CHECKSUM_OFST (0) -#define TX_IP_CHECKSUM_MSK (0x0000FFFF << TX_IP_CHECKSUM_OFST) - /* Configuration RW register */ -#define CONFIG_REG (0x4D << MEM_MAP_SHIFT) +#define CONFIG_REG (0x2D << MEM_MAP_SHIFT) #define CONFIG_LED_DSBL_OFST (0) #define CONFIG_LED_DSBL_MSK (0x00000001 << CONFIG_LED_DSBL_OFST) @@ -327,7 +321,7 @@ #define CONFIG_GB10_SND_UDP_MSK (0x00000001 << CONFIG_GB10_SND_UDP_OFST) /* External Signal RW register */ -#define EXT_SIGNAL_REG (0x4E << MEM_MAP_SHIFT) +#define EXT_SIGNAL_REG (0x2E << MEM_MAP_SHIFT) #define EXT_SIGNAL_OFST (0) #define EXT_SIGNAL_MSK (0x00000001 << EXT_SIGNAL_OFST) @@ -335,7 +329,7 @@ #define EXT_SIGNAL_TRGGR_VAL ((0x1 << EXT_SIGNAL_OFST) & EXT_SIGNAL_MSK) /* Control RW register */ -#define CONTROL_REG (0x4F << MEM_MAP_SHIFT) +#define CONTROL_REG (0x2F << MEM_MAP_SHIFT) #define CONTROL_STRT_ACQSTN_OFST (0) #define CONTROL_STRT_ACQSTN_MSK (0x00000001 << CONTROL_STRT_ACQSTN_OFST) @@ -375,10 +369,10 @@ #define CONTROL_CLR_ACQSTN_FIFO_MSK (0x00000001 << CONTROL_CLR_ACQSTN_FIFO_OFST) /* Reconfiguratble PLL Paramater RW register */ -#define PLL_PARAM_REG (0x50 << MEM_MAP_SHIFT) +#define PLL_PARAM_REG (0x30 << MEM_MAP_SHIFT) /* Reconfiguratble PLL Control RW regiser */ -#define PLL_CNTRL_REG (0x51 << MEM_MAP_SHIFT) +#define PLL_CNTRL_REG (0x31 << MEM_MAP_SHIFT) #define PLL_CNTRL_RCNFG_PRMTR_RST_OFST (0) #define PLL_CNTRL_RCNFG_PRMTR_RST_MSK \ @@ -390,8 +384,15 @@ #define PLL_CNTRL_ADDR_OFST (16) #define PLL_CNTRL_ADDR_MSK (0x0000003F << PLL_CNTRL_ADDR_OFST) +/* Streaming Control RW regiser */ +#define STREAMING_CTRL_REG (0x3D << MEM_MAP_SHIFT) +#define STREAMING_CTRL_ENA_OFST (15) +#define STREAMING_CTRL_ENA_MSK (0x00000001 << STREAMING_CTRL_ENA_OFST) +#define STREAMING_CTRL_SELECT_OFST (0) +#define STREAMING_CTRL_SELECT_MSK (0x0000003F << STREAMING_CTRL_SELECT_OFST) + /* Pattern Control RW register */ -#define PATTERN_CNTRL_REG (0x52 << MEM_MAP_SHIFT) +#define PATTERN_CNTRL_REG (0x88 << MEM_MAP_SHIFT) #define PATTERN_CNTRL_WR_OFST (0) #define PATTERN_CNTRL_WR_MSK (0x00000001 << PATTERN_CNTRL_WR_OFST) @@ -401,70 +402,31 @@ #define PATTERN_CNTRL_ADDR_MSK (0x00001FFF << PATTERN_CNTRL_ADDR_OFST) /* Pattern Limit RW regiser */ -#define PATTERN_LIMIT_REG (0x53 << MEM_MAP_SHIFT) +#define PATTERN_LIMIT_REG (0x89 << MEM_MAP_SHIFT) #define PATTERN_LIMIT_STRT_OFST (0) #define PATTERN_LIMIT_STRT_MSK (0x00001FFF << PATTERN_LIMIT_STRT_OFST) #define PATTERN_LIMIT_STP_OFST (16) #define PATTERN_LIMIT_STP_MSK (0x00001FFF << PATTERN_LIMIT_STP_OFST) -/* Pattern Loop 0 Address RW regiser */ -#define PATTERN_LOOP_0_ADDR_REG (0x54 << MEM_MAP_SHIFT) +/** Pattern Loop and Wait Definitions, 5 regs each */ +#define PATTERN_LOOPDEF_BASE (0xA0 << MEM_MAP_SHIFT) +#define PATTERN_LOOP_ADDR_WORD_OFST (0) +#define PATTERN_LOOP_ITERATION_WORD_OFST (1) +#define PATTERN_WAIT_ADDR_WORD_OFST (2) +#define PATTERN_WAIT_TIMER_LSB_WORD_OFST (3) +#define PATTERN_WAIT_TIMER_MSB_WORD_OFST (4) +#define PATTERN_LOOPDEF_NWORDS_OFST (5) -#define PATTERN_LOOP_0_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_0_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_0_ADDR_STRT_OFST) -#define PATTERN_LOOP_0_ADDR_STP_OFST (16) -#define PATTERN_LOOP_0_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_0_ADDR_STP_OFST) - -/* Pattern Loop 0 Iteration RW regiser */ -#define PATTERN_LOOP_0_ITERATION_REG (0x55 << MEM_MAP_SHIFT) - -/* Pattern Loop 1 Address RW regiser */ -#define PATTERN_LOOP_1_ADDR_REG (0x56 << MEM_MAP_SHIFT) - -#define PATTERN_LOOP_1_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_1_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_1_ADDR_STRT_OFST) -#define PATTERN_LOOP_1_ADDR_STP_OFST (16) -#define PATTERN_LOOP_1_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_1_ADDR_STP_OFST) - -/* Pattern Loop 1 Iteration RW regiser */ -#define PATTERN_LOOP_1_ITERATION_REG (0x57 << MEM_MAP_SHIFT) - -/* Pattern Loop 2 Address RW regiser */ -#define PATTERN_LOOP_2_ADDR_REG (0x58 << MEM_MAP_SHIFT) - -#define PATTERN_LOOP_2_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_2_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_2_ADDR_STRT_OFST) -#define PATTERN_LOOP_2_ADDR_STP_OFST (16) -#define PATTERN_LOOP_2_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_2_ADDR_STP_OFST) - -/* Pattern Loop 2 Iteration RW regiser */ -#define PATTERN_LOOP_2_ITERATION_REG (0x59 << MEM_MAP_SHIFT) - -/* Pattern Wait 0 RW regiser */ -#define PATTERN_WAIT_0_ADDR_REG (0x5A << MEM_MAP_SHIFT) - -#define PATTERN_WAIT_0_ADDR_OFST (0) -#define PATTERN_WAIT_0_ADDR_MSK (0x00001FFF << PATTERN_WAIT_0_ADDR_OFST) -// FIXME: is mask 3FF - -/* Pattern Wait 1 RW regiser */ -#define PATTERN_WAIT_1_ADDR_REG (0x5B << MEM_MAP_SHIFT) - -#define PATTERN_WAIT_1_ADDR_OFST (0) -#define PATTERN_WAIT_1_ADDR_MSK (0x00001FFF << PATTERN_WAIT_1_ADDR_OFST) - -/* Pattern Wait 2 RW regiser */ -#define PATTERN_WAIT_2_ADDR_REG (0x5C << MEM_MAP_SHIFT) - -#define PATTERN_WAIT_2_ADDR_OFST (0) -#define PATTERN_WAIT_2_ADDR_MSK (0x00001FFF << PATTERN_WAIT_2_ADDR_OFST) +#define PATTERN_WAIT_ADDR_OFST (0) +#define PATTERN_WAIT_ADDR_MSK (0x00001FFF << PATTERN_WAIT_ADDR_OFST) +#define PATTERN_LOOP_ADDR_STRT_OFST (0) +#define PATTERN_LOOP_ADDR_STRT_MSK (0x00001FFF << PATTERN_LOOP_ADDR_STRT_OFST) +#define PATTERN_LOOP_ADDR_STP_OFST (16) +#define PATTERN_LOOP_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_ADDR_STP_OFST) /* Samples RW register */ -#define SAMPLES_REG (0x5D << MEM_MAP_SHIFT) +#define SAMPLES_REG (0x32 << MEM_MAP_SHIFT) #define SAMPLES_DIGITAL_OFST (0) #define SAMPLES_DIGITAL_MSK (0x0000FFFF << SAMPLES_DIGITAL_OFST) @@ -472,7 +434,7 @@ #define SAMPLES_ANALOG_MSK (0x0000FFFF << SAMPLES_ANALOG_OFST) /** Power RW register */ -#define POWER_REG (0x5E << MEM_MAP_SHIFT) +#define POWER_REG (0x33 << MEM_MAP_SHIFT) #define POWER_ENBL_VLTG_RGLTR_OFST (16) #define POWER_ENBL_VLTG_RGLTR_MSK (0x0000001F << POWER_ENBL_VLTG_RGLTR_OFST) @@ -480,25 +442,25 @@ #define POWER_HV_INTERNAL_SLCT_MSK (0x00000001 << POWER_HV_INTERNAL_SLCT_OFST) /* Number of samples from transceiver RW register */ -#define SAMPLES_TRANSCEIVER_REG (0x5F << MEM_MAP_SHIFT) +#define SAMPLES_TRANSCEIVER_REG (0x34 << MEM_MAP_SHIFT) #define SAMPLES_TRANSCEIVER_OFST (0) #define SAMPLES_TRANSCEIVER_MSK (0x0000FFFF << SAMPLES_TRANSCEIVER_OFST) /* Delay 64 bit RW register. t = DLY x 50 ns. */ -#define DELAY_LSB_REG (0x60 << MEM_MAP_SHIFT) -#define DELAY_MSB_REG (0x61 << MEM_MAP_SHIFT) +#define DELAY_LSB_REG (0x8D << MEM_MAP_SHIFT) +#define DELAY_MSB_REG (0x8E << MEM_MAP_SHIFT) /* Triggers 64 bit RW register */ -#define CYCLES_LSB_REG (0x62 << MEM_MAP_SHIFT) -#define CYCLES_MSB_REG (0x63 << MEM_MAP_SHIFT) +#define CYCLES_LSB_REG (0x8F << MEM_MAP_SHIFT) +#define CYCLES_MSB_REG (0x90 << MEM_MAP_SHIFT) /* Frames 64 bit RW register */ -#define FRAMES_LSB_REG (0x64 << MEM_MAP_SHIFT) -#define FRAMES_MSB_REG (0x65 << MEM_MAP_SHIFT) +#define FRAMES_LSB_REG (0x91 << MEM_MAP_SHIFT) +#define FRAMES_MSB_REG (0x92 << MEM_MAP_SHIFT) /* Period 64 bit RW register */ -#define PERIOD_LSB_REG (0x66 << MEM_MAP_SHIFT) -#define PERIOD_MSB_REG (0x67 << MEM_MAP_SHIFT) +#define PERIOD_LSB_REG (0x93 << MEM_MAP_SHIFT) +#define PERIOD_MSB_REG (0x94 << MEM_MAP_SHIFT) /* Period 64 bit RW register */ // #define EXPTIME_LSB_REG (0x68 << MEM_MAP_SHIFT) // @@ -513,33 +475,15 @@ /* Pattern IO Control 64 bit RW regiser * Each bit configured as output(1)/ input(0) */ -#define PATTERN_IO_CNTRL_LSB_REG (0x6C << MEM_MAP_SHIFT) -#define PATTERN_IO_CNTRL_MSB_REG (0x6D << MEM_MAP_SHIFT) - -/* Pattern IO Clock Control 64 bit RW regiser - * When bit n enabled (1), clocked output for DIO[n] (T run clock) - * When bit n disabled (0), Dio[n] driven by its pattern output */ -#define PATTERN_IO_CLK_CNTRL_LSB_REG (0x6E << MEM_MAP_SHIFT) -#define PATTERN_IO_CLK_CNTRL_MSB_REG (0x6F << MEM_MAP_SHIFT) +#define PATTERN_IO_CNTRL_LSB_REG (0x8A << MEM_MAP_SHIFT) +#define PATTERN_IO_CNTRL_MSB_REG (0x8B << MEM_MAP_SHIFT) /* Pattern In 64 bit RW register */ -#define PATTERN_IN_LSB_REG (0x70 << MEM_MAP_SHIFT) -#define PATTERN_IN_MSB_REG (0x71 << MEM_MAP_SHIFT) - -/* Pattern Wait Timer 0 64 bit RW register. t = PWT1 x T run clock */ -#define PATTERN_WAIT_TIMER_0_LSB_REG (0x72 << MEM_MAP_SHIFT) -#define PATTERN_WAIT_TIMER_0_MSB_REG (0x73 << MEM_MAP_SHIFT) - -/* Pattern Wait Timer 1 64 bit RW register. t = PWT2 x T run clock */ -#define PATTERN_WAIT_TIMER_1_LSB_REG (0x74 << MEM_MAP_SHIFT) -#define PATTERN_WAIT_TIMER_1_MSB_REG (0x75 << MEM_MAP_SHIFT) - -/* Pattern Wait Timer 2 64 bit RW register. t = PWT3 x T run clock */ -#define PATTERN_WAIT_TIMER_2_LSB_REG (0x76 << MEM_MAP_SHIFT) -#define PATTERN_WAIT_TIMER_2_MSB_REG (0x77 << MEM_MAP_SHIFT) +#define PATTERN_IN_LSB_REG (0x82 << MEM_MAP_SHIFT) +#define PATTERN_IN_MSB_REG (0x83 << MEM_MAP_SHIFT) /* Readout enable RW register */ -#define READOUT_10G_ENABLE_REG (0x79 << MEM_MAP_SHIFT) +#define READOUT_10G_ENABLE_REG (0x3C << MEM_MAP_SHIFT) #define READOUT_10G_ENABLE_ANLG_OFST (0) #define READOUT_10G_ENABLE_ANLG_MSK (0x000000FF << READOUT_10G_ENABLE_ANLG_OFST) @@ -550,7 +494,7 @@ (0x0000000F << READOUT_10G_ENABLE_TRNSCVR_OFST) /* Digital Bit External Trigger RW register */ -#define DBIT_EXT_TRG_REG (0x7B << MEM_MAP_SHIFT) +#define DBIT_EXT_TRG_REG (0x3E << MEM_MAP_SHIFT) #define DBIT_EXT_TRG_SRC_OFST (0) #define DBIT_EXT_TRG_SRC_MSK (0x0000003F << DBIT_EXT_TRG_SRC_OFST) @@ -558,7 +502,7 @@ #define DBIT_EXT_TRG_OPRTN_MD_MSK (0x00000001 << DBIT_EXT_TRG_OPRTN_MD_OFST) /* Pin Delay 0 RW register */ -#define OUTPUT_DELAY_0_REG (0x7C << MEM_MAP_SHIFT) +#define OUTPUT_DELAY_0_REG (0x3F << MEM_MAP_SHIFT) #define OUTPUT_DELAY_0_OTPT_STTNG_STEPS (25) #define OUTPUT_DELAY_0_OTPT_STTNG_OFST \ (0) // t = OTPT_STTNG * 25 ps, max for Cyclone V = 775 ps @@ -574,87 +518,21 @@ /* Pin Delay 1 RW register * Each bit configured as enable for dynamic output delay configuration */ -#define PIN_DELAY_1_REG (0x7D << MEM_MAP_SHIFT) +#define PIN_DELAY_1_REG (0x40 << MEM_MAP_SHIFT) /** Pattern Mask 64 bit RW regiser */ -#define PATTERN_MASK_LSB_REG (0x80 << MEM_MAP_SHIFT) -#define PATTERN_MASK_MSB_REG (0x81 << MEM_MAP_SHIFT) +#define PATTERN_MASK_LSB_REG (0x84 << MEM_MAP_SHIFT) +#define PATTERN_MASK_MSB_REG (0x85 << MEM_MAP_SHIFT) /** Pattern Set 64 bit RW regiser */ -#define PATTERN_SET_LSB_REG (0x82 << MEM_MAP_SHIFT) -#define PATTERN_SET_MSB_REG (0x83 << MEM_MAP_SHIFT) - -/* Pattern Loop 3 Address RW regiser */ -#define PATTERN_LOOP_3_ADDR_REG (0x84 << MEM_MAP_SHIFT) - -#define PATTERN_LOOP_3_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_3_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_3_ADDR_STRT_OFST) -#define PATTERN_LOOP_3_ADDR_STP_OFST (16) -#define PATTERN_LOOP_3_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_3_ADDR_STP_OFST) - -/* Pattern Loop 3 Iteration RW regiser */ -#define PATTERN_LOOP_3_ITERATION_REG (0x85 << MEM_MAP_SHIFT) - -/* Pattern Loop 4 Address RW regiser */ -#define PATTERN_LOOP_4_ADDR_REG (0x86 << MEM_MAP_SHIFT) - -#define PATTERN_LOOP_4_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_4_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_4_ADDR_STRT_OFST) -#define PATTERN_LOOP_4_ADDR_STP_OFST (16) -#define PATTERN_LOOP_4_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_4_ADDR_STP_OFST) - -/* Pattern Loop 4 Iteration RW regiser */ -#define PATTERN_LOOP_4_ITERATION_REG (0x87 << MEM_MAP_SHIFT) - -/* Pattern Loop 5 Address RW regiser */ -#define PATTERN_LOOP_5_ADDR_REG (0x88 << MEM_MAP_SHIFT) - -#define PATTERN_LOOP_5_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_5_ADDR_STRT_MSK \ - (0x00001FFF << PATTERN_LOOP_5_ADDR_STRT_OFST) -#define PATTERN_LOOP_5_ADDR_STP_OFST (16) -#define PATTERN_LOOP_5_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_5_ADDR_STP_OFST) - -/* Pattern Loop 5 Iteration RW regiser */ -#define PATTERN_LOOP_5_ITERATION_REG (0x89 << MEM_MAP_SHIFT) - -/* Pattern Wait 3 RW regiser */ -#define PATTERN_WAIT_3_ADDR_REG (0x8A << MEM_MAP_SHIFT) - -#define PATTERN_WAIT_3_ADDR_OFST (0) -#define PATTERN_WAIT_3_ADDR_MSK (0x00001FFF << PATTERN_WAIT_3_ADDR_OFST) - -/* Pattern Wait 4 RW regiser */ -#define PATTERN_WAIT_4_ADDR_REG (0x8B << MEM_MAP_SHIFT) - -#define PATTERN_WAIT_4_ADDR_OFST (0) -#define PATTERN_WAIT_4_ADDR_MSK (0x00001FFF << PATTERN_WAIT_4_ADDR_OFST) - -/* Pattern Wait 5 RW regiser */ -#define PATTERN_WAIT_5_ADDR_REG (0x8C << MEM_MAP_SHIFT) - -#define PATTERN_WAIT_5_ADDR_OFST (0) -#define PATTERN_WAIT_5_ADDR_MSK (0x00001FFF << PATTERN_WAIT_5_ADDR_OFST) - -/* Pattern Wait Timer 3 64 bit RW register. t = PWT1 x T run clock */ -#define PATTERN_WAIT_TIMER_3_LSB_REG (0x8D << MEM_MAP_SHIFT) -#define PATTERN_WAIT_TIMER_3_MSB_REG (0x8E << MEM_MAP_SHIFT) - -/* Pattern Wait Timer 4 64 bit RW register. t = PWT1 x T run clock */ -#define PATTERN_WAIT_TIMER_4_LSB_REG (0x8F << MEM_MAP_SHIFT) -#define PATTERN_WAIT_TIMER_4_MSB_REG (0x90 << MEM_MAP_SHIFT) - -/* Pattern Wait Timer 5 64 bit RW register. t = PWT1 x T run clock */ -#define PATTERN_WAIT_TIMER_5_LSB_REG (0x91 << MEM_MAP_SHIFT) -#define PATTERN_WAIT_TIMER_5_MSB_REG (0x92 << MEM_MAP_SHIFT) +#define PATTERN_SET_LSB_REG (0x86 << MEM_MAP_SHIFT) +#define PATTERN_SET_MSB_REG (0x87 << MEM_MAP_SHIFT) /* Slow ADC SPI Value RO register */ -#define ADC_SLOW_DATA_REG (0x93 << MEM_MAP_SHIFT) +#define ADC_SLOW_DATA_REG (0x41 << MEM_MAP_SHIFT) /* Slow ADC SPI Value Config register */ -#define ADC_SLOW_CFG_REG (0x94 << MEM_MAP_SHIFT) +#define ADC_SLOW_CFG_REG (0x42 << MEM_MAP_SHIFT) /** Read back CFG Register */ #define ADC_SLOW_CFG_RB_OFST (2) #define ADC_SLOW_CFG_RB_MSK (0x00000001 << ADC_SLOW_CFG_RB_OFST) @@ -733,7 +611,7 @@ ((0x1 << ADC_SLOW_CFG_CFG_OFST) & ADC_SLOW_CFG_CFG_MSK) /* Slow ADC SPI Value Control register */ -#define ADC_SLOW_CTRL_REG (0x95 << MEM_MAP_SHIFT) +#define ADC_SLOW_CTRL_REG (0x43 << MEM_MAP_SHIFT) #define ADC_SLOW_CTRL_STRT_OFST (0) #define ADC_SLOW_CTRL_STRT_MSK (0x00000001 << ADC_SLOW_CTRL_STRT_OFST) diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index d2b865387..34fc895ae 100755 Binary files a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer and b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer differ diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index a23be7a45..e7f914ca1 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -15,6 +15,8 @@ #include "loadPattern.h" #include +#include +#include #include #include // usleep #ifdef VIRTUAL @@ -51,12 +53,12 @@ int dataBytes = 0; int analogDataBytes = 0; int digitalDataBytes = 0; int transceiverDataBytes = 0; -char *analogData = 0; -char *digitalData = 0; -char *transceiverData = 0; -char volatile *analogDataPtr = 0; -char volatile *digitalDataPtr = 0; -char volatile *transceiverDataPtr = 0; +char *analogData = NULL; +char *digitalData = NULL; +char *transceiverData = NULL; +char volatile *analogDataPtr = NULL; +char volatile *digitalDataPtr = NULL; +char volatile *transceiverDataPtr = NULL; char udpPacketData[UDP_PACKET_DATA_BYTES + sizeof(sls_detector_header)]; uint32_t adcEnableMask_1g = BIT32_MSK; // 10g readout @@ -92,6 +94,10 @@ void basictests() { LOG(logINFOBLUE, ("********* Chip Test Board Virtual Server *********\n")); #else LOG(logINFOBLUE, ("************* Chip Test Board Server *************\n")); + initError = enableBlackfinAMCExternalAccessExtension(initErrorMessage); + if (initError == FAIL) { + return; + } initError = defineGPIOpins(initErrorMessage); if (initError == FAIL) { return; @@ -437,6 +443,32 @@ uint32_t getDetectorIP() { return res; } +int enableBlackfinAMCExternalAccessExtension(char *mess) { + unsigned int value; + const char *file_path = BFIN_AMC_ACCESS_EXTENSION_FNAME; + FILE *file = fopen(file_path, "r"); + if (!file) { + strcpy(mess, "Failed to enable blackfin AMC access extension. Could " + "not read EBIU_AMBCTL1\n"); + LOG(logERROR, (mess)); + return FAIL; + } + fscanf(file, "%x", &value); + fclose(file); + + value |= BFIN_AMC_ACCESS_EXTENSION_ENA_VAL; + file = fopen(file_path, "w"); + if (!file) { + strcpy(mess, "Failed to enable blackfin AMC access extension. Could " + "not write EBIU_AMBCTL1\n"); + LOG(logERROR, (mess)); + return FAIL; + } + fprintf(file, "0x%x", value); + fclose(file); + return OK; +} + /* initialization */ void initControlServer() { @@ -475,21 +507,15 @@ void setupDetector() { analogDataBytes = 0; digitalDataBytes = 0; transceiverDataBytes = 0; - if (analogData) { - free(analogData); - analogData = 0; - } - if (digitalData) { - free(digitalData); - digitalData = 0; - } - if (transceiverData) { - free(transceiverData); - transceiverData = 0; - } - analogDataPtr = 0; - digitalDataPtr = 0; - transceiverData = 0; + free(analogData); + analogData = NULL; + free(digitalData); + digitalData = NULL; + free(transceiverData); + transceiverData = NULL; + analogDataPtr = NULL; + digitalDataPtr = NULL; + transceiverData = NULL; { for (int i = 0; i < NUM_CLOCKS; ++i) { clkPhase[i] = 0; @@ -640,22 +666,15 @@ int updateDatabytesandAllocateRAM() { return FAIL; } // clear RAM - if (analogData) { - free(analogData); - analogData = 0; - } - if (digitalData) { - free(digitalData); - digitalData = 0; - } - if (transceiverData) { - free(transceiverData); - transceiverData = 0; - } + free(analogData); + analogData = NULL; + free(digitalData); + digitalData = NULL; + free(transceiverData); + transceiverData = NULL; // allocate RAM if (analogDataBytes) { analogData = malloc(analogDataBytes); - // cannot malloc if (analogData == NULL) { LOG(logERROR, ("Can not allocate analog data RAM for even 1 frame. " "Probable cause: Memory Leak.\n")); @@ -665,7 +684,6 @@ int updateDatabytesandAllocateRAM() { } if (digitalDataBytes) { digitalData = malloc(digitalDataBytes); - // cannot malloc if (digitalData == NULL) { LOG(logERROR, ("Can not allocate digital data RAM for even 1 frame. " @@ -677,7 +695,6 @@ int updateDatabytesandAllocateRAM() { } if (transceiverDataBytes) { transceiverData = malloc(transceiverDataBytes); - // cannot malloc if (transceiverData == NULL) { LOG(logERROR, ("Can not allocate transceiver data RAM for even 1 frame. " @@ -1110,26 +1127,17 @@ int setNumTransceiverSamples(int val) { int getNumTransceiverSamples() { return ntSamples; } int setExpTime(int64_t val) { - if (val < 0) { - LOG(logERROR, ("Invalid exptime: %lld ns\n", (long long int)val)); - return FAIL; - } - LOG(logINFO, ("Setting exptime %lld ns\n", (long long int)val)); - val *= (1E-3 * clkFrequency[RUN_CLK]); - setPatternWaitTime(0, val); + setPatternWaitInterval(0, val); // validate for tolerance int64_t retval = getExpTime(); - val /= (1E-3 * clkFrequency[RUN_CLK]); if (val != retval) { return FAIL; } return OK; } -int64_t getExpTime() { - return getPatternWaitTime(0) / (1E-3 * clkFrequency[RUN_CLK]); -} +int64_t getExpTime() { return getPatternWaitInterval(0); } int setPeriod(int64_t val) { if (val < 0) { @@ -2209,7 +2217,8 @@ int startStateMachine() { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); sharedMemory_setStatus(IDLE); return FAIL; - } + } else + pthread_detach(pthread_virtual_tid); LOG(logINFOGREEN, ("Virtual Acquisition started\n")); return OK; #endif @@ -2281,11 +2290,23 @@ void *start_timer(void *arg) { int packetsPerFrame = ceil((double)imageSize / (double)dataSize); // Generate Data - char imageData[imageSize]; + char *imageData = (char *)malloc(imageSize); memset(imageData, 0, imageSize); + + if (imageData == NULL) { + LOG(logERROR, ("Can not allocate image Data RAM." + "Probable cause: Memory Leak.\n")); + return NULL; + } + /* for (int i = 0; i < imageSize; i += sizeof(uint16_t)) { *((uint16_t *)(imageData + i)) = i; } + */ + + for (int i = 0; i < imageSize; i += 2 * sizeof(uint64_t)) { + *((uint64_t *)(imageData + i)) = 0xffffffffffffffff; + } // Send data uint64_t frameNr = 0; @@ -2342,6 +2363,8 @@ void *start_timer(void *arg) { setNextFrameNumber(frameNr + numFrames); } + free(imageData); + closeUDPSocket(0); sharedMemory_setStatus(IDLE); diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h index 683338861..ab899fdb9 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h @@ -54,6 +54,7 @@ #define DEFAULT_ADC_CLK (40) // 20 #define DEFAULT_SYNC_CLK (40) // 20 #define DEFAULT_DBIT_CLK (200) +#define NS_TO_CLK_CYCLE (1E-3) // ns to MHz #define DEFAULT_TRANSCEIVER_MASK (0x3) #define MAX_TRANSCEIVER_MASK (0xF) diff --git a/slsDetectorServers/eigerDetectorServer/9mhvserial_bf.c b/slsDetectorServers/eigerDetectorServer/9mhvserial_bf.c index d5651ec7b..f67a46dbf 100644 --- a/slsDetectorServers/eigerDetectorServer/9mhvserial_bf.c +++ b/slsDetectorServers/eigerDetectorServer/9mhvserial_bf.c @@ -17,7 +17,7 @@ #define BUFFERSIZE 16 #define I2C_DEVICE_FILE "/dev/i2c-0" #define I2C_DEVICE_ADDRESS 0x4C -//#define I2C_DEVICE_ADDRESS 0x48 +// #define I2C_DEVICE_ADDRESS 0x48 #define I2C_REGISTER_ADDRESS 0x40 int i2c_open(const char *file, unsigned int addr) { diff --git a/slsDetectorServers/eigerDetectorServer/Beb.c b/slsDetectorServers/eigerDetectorServer/Beb.c index 82d82f697..9299340b9 100644 --- a/slsDetectorServers/eigerDetectorServer/Beb.c +++ b/slsDetectorServers/eigerDetectorServer/Beb.c @@ -46,17 +46,27 @@ int Beb_deactivated_left_datastream = 1; int Beb_deactivated_right_datastream = 1; int Beb_deactivated_num_destinations = 1; -void Beb_Beb() { +int Beb_Beb() { Beb_send_ndata = 0; Beb_send_buffer_size = 1026; + Beb_send_data_raw = malloc((Beb_send_buffer_size + 1) * sizeof(unsigned int)); + if (Beb_send_data_raw == NULL) { + LOG(logERROR, ("Could not allocate memory for beb (send_data_raw)\n")); + return 0; + } Beb_send_data = &Beb_send_data_raw[1]; Beb_recv_ndata = 0; Beb_recv_buffer_size = 1026; + Beb_recv_data_raw = malloc((Beb_recv_buffer_size + 1) * sizeof(unsigned int)); + if (Beb_recv_data_raw == NULL) { + LOG(logERROR, ("Could not allocate memory for beb (recv_data_raw)\n")); + return 0; + } Beb_recv_data = &Beb_recv_data_raw[1]; udp_header = (struct udp_header_type){ @@ -83,6 +93,7 @@ void Beb_Beb() { Beb_ClearHeaderData(1); Beb_bit_mode = 4; + return 1; } void Beb_ClearHeaderData(int ten_gig) { diff --git a/slsDetectorServers/eigerDetectorServer/Beb.h b/slsDetectorServers/eigerDetectorServer/Beb.h index ab84584ea..6d046a093 100644 --- a/slsDetectorServers/eigerDetectorServer/Beb.h +++ b/slsDetectorServers/eigerDetectorServer/Beb.h @@ -6,7 +6,7 @@ #include "slsDetectorServer_defs.h" #include -void Beb_Beb(); +int Beb_Beb(); void Beb_ClearHeaderData(int ten_gig); int Beb_SetUpUDPHeader(unsigned int header_number, int ten_gig, uint64_t src_mac, uint32_t src_ip, uint16_t src_port, diff --git a/slsDetectorServers/eigerDetectorServer/FebControl.c b/slsDetectorServers/eigerDetectorServer/FebControl.c index d318dc8c8..f0b96d487 100644 --- a/slsDetectorServers/eigerDetectorServer/FebControl.c +++ b/slsDetectorServers/eigerDetectorServer/FebControl.c @@ -57,11 +57,19 @@ int Feb_Control_FebControl(int normal) { Feb_Control_externalEnableMode = 0; Feb_Control_subFrameMode = 0; Feb_Control_trimbit_size = 263680; + Feb_Control_last_downloaded_trimbits = malloc(Feb_Control_trimbit_size * sizeof(int)); + if (Feb_Control_last_downloaded_trimbits == NULL) { + LOG(logERROR, + ("Could not allocate memory for last downloaded trimbits\n")); + return 0; + } Feb_Control_normal = normal; - Feb_Interface_SetAddress(Feb_Control_rightAddress, Feb_Control_leftAddress); + if (!Feb_Interface_SetAddress(Feb_Control_rightAddress, + Feb_Control_leftAddress)) + return 0; if (Feb_Control_activated) { return Feb_Interface_SetByteOrder(); } diff --git a/slsDetectorServers/eigerDetectorServer/FebInterface.c b/slsDetectorServers/eigerDetectorServer/FebInterface.c index c93aa6a44..6bd69afb1 100644 --- a/slsDetectorServers/eigerDetectorServer/FebInterface.c +++ b/slsDetectorServers/eigerDetectorServer/FebInterface.c @@ -22,34 +22,57 @@ unsigned int Feb_Interface_recv_buffer_size; unsigned int *Feb_Interface_recv_data_raw; unsigned int *Feb_Interface_recv_data; -void Feb_Interface_FebInterface() { +int Feb_Interface_FebInterface() { ll = &ll_local; Feb_Interface_nfebs = 0; Feb_Interface_feb_numb = 0; Feb_Interface_send_ndata = 0; Feb_Interface_send_buffer_size = 1026; + Feb_Interface_send_data_raw = malloc((Feb_Interface_send_buffer_size + 1) * sizeof(unsigned int)); + if (Feb_Interface_send_data_raw == NULL) { + LOG(logERROR, + ("Could not allocate memory for feb interface (send_data_raw)\n")); + return 0; + } Feb_Interface_send_data = &Feb_Interface_send_data_raw[1]; Feb_Interface_recv_ndata = 0; Feb_Interface_recv_buffer_size = 1026; + Feb_Interface_recv_data_raw = malloc((Feb_Interface_recv_buffer_size + 1) * sizeof(unsigned int)); + if (Feb_Interface_recv_data_raw == NULL) { + LOG(logERROR, + ("Could not allocate memory for feb interface (recv_data_raw)\n")); + + return 0; + } Feb_Interface_recv_data = &Feb_Interface_recv_data_raw[1]; Local_LocalLinkInterface( ll, XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_RIGHT_BASEADDR); + + return 1; } -void Feb_Interface_SetAddress(unsigned int leftAddr, unsigned int rightAddr) { - if (Feb_Interface_feb_numb) - free(Feb_Interface_feb_numb); +int Feb_Interface_SetAddress(unsigned int leftAddr, unsigned int rightAddr) { + free(Feb_Interface_feb_numb); Feb_Interface_nfebs = 2; + Feb_Interface_feb_numb = malloc(2 * sizeof(unsigned int)); + if (Feb_Interface_feb_numb == NULL) { + LOG(logERROR, + ("Could not allocate memory for feb interface (feb_numb)\n")); + Feb_Interface_nfebs = 0; + return 0; + } + Feb_Interface_feb_numb[0] = leftAddr; Feb_Interface_feb_numb[1] = rightAddr; + return 1; } int Feb_Interface_WriteTo(unsigned int ch) { diff --git a/slsDetectorServers/eigerDetectorServer/FebInterface.h b/slsDetectorServers/eigerDetectorServer/FebInterface.h index afff53a87..d8220237a 100644 --- a/slsDetectorServers/eigerDetectorServer/FebInterface.h +++ b/slsDetectorServers/eigerDetectorServer/FebInterface.h @@ -4,8 +4,8 @@ int Feb_Interface_WriteTo(unsigned int ch); int Feb_Interface_ReadFrom(unsigned int ch, unsigned int ntrys); -void Feb_Interface_FebInterface(); -void Feb_Interface_SetAddress(unsigned int leftAddr, unsigned int rightAddr); +int Feb_Interface_FebInterface(); +int Feb_Interface_SetAddress(unsigned int leftAddr, unsigned int rightAddr); int Feb_Interface_SetByteOrder(); int Feb_Interface_ReadRegister(unsigned int sub_num, unsigned int reg_num, unsigned int *value_read); diff --git a/slsDetectorServers/eigerDetectorServer/FebRegisterDefs.h b/slsDetectorServers/eigerDetectorServer/FebRegisterDefs.h index b1246db33..785a854af 100644 --- a/slsDetectorServers/eigerDetectorServer/FebRegisterDefs.h +++ b/slsDetectorServers/eigerDetectorServer/FebRegisterDefs.h @@ -98,8 +98,8 @@ // everything at ~200 kHz (200 kHz MHz ddr readout) #define DAQ_CHIP_CONTROLLER_SUPER_SLOW_SPEED 0x000c0000 -//#define DAQ_FIFO_ENABLE 0x00100000 commented out as it -// is not used anywhere +// #define DAQ_FIFO_ENABLE 0x00100000 commented out as it +// is not used anywhere #define DAQ_REG_CHIP_CMDS_INT_TRIGGER 0x00100000 // direct chip commands to the DAQ_REG_CHIP_CMDS register @@ -131,8 +131,9 @@ #define DAQ_NEXPOSURERS_ACTIVATE_AUTO_SUBIMAGING 0x20000000 #define DAQ_NEXPOSURERS_ACTIVATE_RATE_CORRECTION 0x40000000 -//#define DAQ_MASTER_HALF_MODULE 0x80000000 currently not -// used +// #define DAQ_MASTER_HALF_MODULE 0x80000000 currently +// not +// used // chips static bits #define DAQ_STATIC_BIT_PROGRAM 0x00000001 diff --git a/slsDetectorServers/eigerDetectorServer/Makefile b/slsDetectorServers/eigerDetectorServer/Makefile index 5d896249f..63910c6f9 100755 --- a/slsDetectorServers/eigerDetectorServer/Makefile +++ b/slsDetectorServers/eigerDetectorServer/Makefile @@ -25,11 +25,10 @@ version: clean versioning $(PROGS) #hv9m_blackfin_server boot: $(OBJS) -version_branch=$(API_BRANCH) version_name=APIEIGER version_path=slsDetectorServers/eigerDetectorServer versioning: - cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path) $(version_branch); tput sgr0;` + cd ../../ && echo $(PWD) && echo `tput setaf 6; python updateAPIVersion.py $(version_name) $(version_path); tput sgr0;` $(PROGS): $(OBJS) diff --git a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer index 90c21f8a3..9ff6d5fa9 100755 Binary files a/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer and b/slsDetectorServers/eigerDetectorServer/bin/eigerDetectorServer_developer differ diff --git a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c index 2a95f310b..f2290afbe 100644 --- a/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/eigerDetectorServer/slsDetectorFunctionList.c @@ -662,7 +662,15 @@ int checkCommandLineConfiguration() { #ifndef VIRTUAL void setupFebBeb() { sharedMemory_lockLocalLink(); - Feb_Interface_FebInterface(); + if (!Feb_Interface_FebInterface()) { + initError = FAIL; + sprintf(initErrorMessage, + "Could not intitalize eiger detector sever: feb interface\n"); + LOG(logERROR, (initErrorMessage)); + initCheckDone = 1; + sharedMemory_unlockLocalLink(); + return; + } if (!Feb_Control_FebControl(normal)) { initError = FAIL; sprintf(initErrorMessage, @@ -686,7 +694,14 @@ void setupFebBeb() { LOG(logDEBUG1, ("%s server: FEB Initialization done\n", isControlServer ? "Control" : "Stop")); Beb_SetTopVariable(top); - Beb_Beb(); + if (!Beb_Beb()) { + initError = FAIL; + sprintf(initErrorMessage, + "Could not intitalize eiger detector sever: beb\n"); + LOG(logERROR, (initErrorMessage)); + initCheckDone = 1; + return; + } LOG(logDEBUG1, ("%s server: BEB Initialization done\n", isControlServer ? "Control" : "Stop")); @@ -724,17 +739,23 @@ void setupFebBeb() { } #endif -void allocateDetectorStructureMemory() { - LOG(logINFO, ("This Server is for 1 Eiger half module (250k)\n\n")); - - // Allocation of memory +int allocateDetectorStructureMemory() { detectorModules = malloc(sizeof(sls_detector_module)); detectorChans = malloc(NCHIP * NCHAN * sizeof(int)); detectorDacs = malloc(NDAC * sizeof(int)); + if (detectorModules == NULL || detectorChans == NULL || + detectorDacs == NULL) { + initError = FAIL; + strcpy(initErrorMessage, + "Could not allocate memory for dacs or channels in detector\n"); + LOG(logERROR, (initErrorMessage)); + return FAIL; + } LOG(logDEBUG1, ("modules from 0x%x to 0x%x\n", detectorModules, detectorModules)); LOG(logDEBUG1, ("chans from 0x%x to 0x%x\n", detectorChans, detectorChans)); LOG(logDEBUG1, ("dacs from 0x%x to 0x%x\n", detectorDacs, detectorDacs)); + detectorModules->dacs = detectorDacs; detectorModules->chanregs = detectorChans; detectorModules->ndac = NDAC; @@ -748,14 +769,21 @@ void allocateDetectorStructureMemory() { detectorModules->eV[2] = -1; thisSettings = UNINITIALIZED; - // if trimval requested, should return -1 to acknowledge unknown + // initialize (trimbits at -1 for unknown) + for (int idac = 0; idac < (detectorModules)->ndac; ++idac) { + detectorDacs[idac] = 0; + } for (int ichan = 0; ichan < (detectorModules->nchan); ichan++) { *((detectorModules->chanregs) + ichan) = -1; } + return OK; } void setupDetector() { - allocateDetectorStructureMemory(); + LOG(logINFO, ("This Server is for 1 Eiger half module (250k)\n\n")); + + if (allocateDetectorStructureMemory() == FAIL) + return; // force top or master if in config file if (readConfigFile() == FAIL) @@ -2572,7 +2600,8 @@ int startStateMachine() { sharedMemory_setStatus(IDLE); sharedMemory_unlockAcqFlag(); return FAIL; - } + } else + pthread_detach(virtual_tid); LOG(logINFO, ("Virtual Acquisition started\n")); sharedMemory_unlockAcqFlag(); return OK; diff --git a/slsDetectorServers/eigerDetectorServer/xfs_types.h b/slsDetectorServers/eigerDetectorServer/xfs_types.h index 1c998bdc4..68d5321f6 100644 --- a/slsDetectorServers/eigerDetectorServer/xfs_types.h +++ b/slsDetectorServers/eigerDetectorServer/xfs_types.h @@ -2,7 +2,7 @@ // Copyright (C) 2021 Contributors to the SLS Detector Package #pragma once -//#include "types.h" +// #include "types.h" #include /******************************************************************************/ /* types */ diff --git a/slsDetectorServers/eigerDetectorServer/xparameters.h b/slsDetectorServers/eigerDetectorServer/xparameters.h index 4b3bf1312..66a4a4396 100644 --- a/slsDetectorServers/eigerDetectorServer/xparameters.h +++ b/slsDetectorServers/eigerDetectorServer/xparameters.h @@ -92,7 +92,7 @@ XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_BASEADDR #define XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_HIGHADDR 0xC410FFFF /* Definitions for a new memory */ -//#define XPAR_PLB_LL_NEW_MEMORY 0xD1000000//0xD1000084//0xC4200000 +// #define XPAR_PLB_LL_NEW_MEMORY 0xD1000000//0xD1000084//0xC4200000 /* Definitions for peripheral PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_RIGHT */ #define XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_RIGHT_BASEADDR 0xC4110000 diff --git a/slsDetectorServers/gotthard2DetectorServer/Makefile b/slsDetectorServers/gotthard2DetectorServer/Makefile index f5fa63f14..b5670a658 100755 --- a/slsDetectorServers/gotthard2DetectorServer/Makefile +++ b/slsDetectorServers/gotthard2DetectorServer/Makefile @@ -24,11 +24,10 @@ version: clean versioning $(PROGS) boot: $(OBJS) -version_branch=$(API_BRANCH) version_name=APIGOTTHARD2 version_path=slsDetectorServers/gotthard2DetectorServer versioning: - cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path) $(version_branch); tput sgr0;` + cd ../../ && echo $(PWD) && echo `tput setaf 6; python updateAPIVersion.py $(version_name) $(version_path); tput sgr0;` $(PROGS): $(OBJS) diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index e4f5ed96f..98bdbcde0 100755 Binary files a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer and b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer differ diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c index bcb3a8f87..199e26fab 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorFunctionList.c @@ -3326,11 +3326,12 @@ int *getBadChannels(int *numChannels) { if (*numChannels > 0) { // get list of bad channels retvals = malloc(*numChannels * sizeof(int)); - memset(retvals, 0, *numChannels * sizeof(int)); if (retvals == NULL) { + LOG(logERROR, ("Could not allocate memory to get bad channels\n")); *numChannels = -1; return NULL; } + memset(retvals, 0, *numChannels * sizeof(int)); int chIndex = 0; int numAddr = MASK_STRIP_NUM_REGS; // loop through registers @@ -3380,7 +3381,8 @@ int startStateMachine() { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); sharedMemory_setStatus(IDLE); return FAIL; - } + } else + pthread_detach(pthread_virtual_tid); LOG(logINFOGREEN, ("Virtual Acquisition started\n")); return OK; #endif diff --git a/slsDetectorServers/gotthardDetectorServer/.target-makefrag b/slsDetectorServers/gotthardDetectorServer/.target-makefrag deleted file mode 100755 index ce093ecac..000000000 --- a/slsDetectorServers/gotthardDetectorServer/.target-makefrag +++ /dev/null @@ -1 +0,0 @@ -AXIS_BUILDTYPE ?= cris-axis-linux-gnu diff --git a/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt b/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt deleted file mode 100644 index 0ab9c9d1f..000000000 --- a/slsDetectorServers/gotthardDetectorServer/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package -add_executable(gotthardDetectorServer_virtual - slsDetectorFunctionList.c - ../slsDetectorServer/src/slsDetectorServer.c - ../slsDetectorServer/src/slsDetectorServer_funcs.c - ../slsDetectorServer/src/communication_funcs.c - ../slsDetectorServer/src/blackfin.c - ../slsDetectorServer/src/AD9252.c - ../slsDetectorServer/src/AD9257.c - ../slsDetectorServer/src/LTC2620.c - ../slsDetectorServer/src/common.c - ../slsDetectorServer/src/commonServerFunctions.c - ../slsDetectorServer/src/programViaBlackfin.c - ../slsDetectorServer/src/communication_funcs_UDP.c - ../slsDetectorServer/src/sharedMemory.c - ../../slsSupportLib/src/md5.c -) - -include_directories( - ../slsDetectorServer/include - ../../slsSupportLib/include -) - -target_include_directories(gotthardDetectorServer_virtual - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} -) - -target_compile_definitions(gotthardDetectorServer_virtual - PUBLIC GOTTHARDD VIRTUAL STOP_SERVER -) - -target_link_libraries(gotthardDetectorServer_virtual - PUBLIC pthread rt slsProjectCSettings -) - -set_target_properties(gotthardDetectorServer_virtual PROPERTIES - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin -) - -install(TARGETS gotthardDetectorServer_virtual - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -) - -configure_file(config_gotthard.txt ${CMAKE_BINARY_DIR}/bin/config_gotthard.txt COPYONLY) \ No newline at end of file diff --git a/slsDetectorServers/gotthardDetectorServer/Makefile b/slsDetectorServers/gotthardDetectorServer/Makefile deleted file mode 100755 index 57ead7418..000000000 --- a/slsDetectorServers/gotthardDetectorServer/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package -current_dir = $(shell pwd) -main_inc = ../slsDetectorServer/include/ -main_src = ../slsDetectorServer/src/ -support_lib = ../../slsSupportLib/include/ -md5_dir = ../../slsSupportLib/src/ - -CROSS = bfin-uclinux- -CC = $(CROSS)gcc -CFLAGS += -Wall -std=gnu99 -DGOTTHARDD -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(current_dir) #-DVERBOSEI #-DVERBOSE -LDLIBS += -lm -lrt -pthread -PROGS = gotthardDetectorServer -DESTDIR ?= bin -INSTMODE = 0777 - -SRCS = slsDetectorFunctionList.c -SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)blackfin.c $(main_src)AD9252.c $(main_src)AD9257.c $(main_src)LTC2620.c $(main_src)programViaBlackfin.c $(main_src)common.c $(main_src)commonServerFunctions.c $(main_src)/sharedMemory.c $(md5_dir)md5.c -OBJS = $(SRCS:.c=.o) - -all: clean $(PROGS) -version: clean versioning $(PROGS) - -boot: $(OBJS) - -version_branch=$(API_BRANCH) -version_name=APIGOTTHARD -version_path=slsDetectorServers/gotthardDetectorServer -versioning: - cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path) $(version_branch); tput sgr0;` - - -$(PROGS): $(OBJS) -# echo $(OBJS) - mkdir -p $(DESTDIR) - $(CC) -o $@ $^ $(CFLAGS) $(LDLIBS) - mv $(PROGS) $(DESTDIR) - cp config_gotthard.txt $(DESTDIR) - rm *.gdb - rm $(main_src)*.o $(md5_dir)*.o - -clean: - rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb $(main_src)*.o $(md5_dir)*.o - - - - - diff --git a/slsDetectorServers/gotthardDetectorServer/RegisterDefs.h b/slsDetectorServers/gotthardDetectorServer/RegisterDefs.h deleted file mode 100644 index d04e80346..000000000 --- a/slsDetectorServers/gotthardDetectorServer/RegisterDefs.h +++ /dev/null @@ -1,394 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0-or-other -// Copyright (C) 2021 Contributors to the SLS Detector Package -#pragma once - -/* Definitions for FPGA*/ -#define MEM_MAP_SHIFT (11) - -/** Gain register */ -#define GAIN_REG (0x10 << MEM_MAP_SHIFT) - -#define GAIN_CONFGAIN_OFST (0) -#define GAIN_CONFGAIN_MSK (0x000000FF << GAIN_CONFGAIN_OFST) -#define GAIN_CONFGAIN_HGH_GAIN_VAL \ - ((0x0 << GAIN_CONFGAIN_OFST) & GAIN_CONFGAIN_MSK) -#define GAIN_CONFGAIN_DYNMC_GAIN_VAL \ - ((0x8 << GAIN_CONFGAIN_OFST) & GAIN_CONFGAIN_MSK) -#define GAIN_CONFGAIN_LW_GAIN_VAL \ - ((0x6 << GAIN_CONFGAIN_OFST) & GAIN_CONFGAIN_MSK) -#define GAIN_CONFGAIN_MDM_GAIN_VAL \ - ((0x2 << GAIN_CONFGAIN_OFST) & GAIN_CONFGAIN_MSK) -#define GAIN_CONFGAIN_VRY_HGH_GAIN_VAL \ - ((0x1 << GAIN_CONFGAIN_OFST) & GAIN_CONFGAIN_MSK) - -/** Flow Control register */ -//#define FLOW_CONTROL_REG (0x11 << MEM_MAP_SHIFT) - -/** Flow Status register */ -//#define FLOW_STATUS_REG (0x12 << MEM_MAP_SHIFT) - -/** Frame register */ -//#define FRAME_REG (0x13 << MEM_MAP_SHIFT) - -/** Multi Purpose register */ -#define MULTI_PURPOSE_REG (0x14 << MEM_MAP_SHIFT) - -#define PHS_STP_OFST (0) -#define PHS_STP_MSK (0x00000001 << PHS_STP_OFST) -#define RST_CNTR_OFST (2) -#define RST_CNTR_MSK (0x00000001 << RST_CNTR_OFST) -#define SW1_OFST (5) -#define SW1_MSK (0x00000001 << SW1_OFST) -#define WRT_BCK_OFST (6) -#define WRT_BCK_MSK (0x00000001 << WRT_BCK_OFST) -#define RST_OFST (7) -#define RST_MSK (0x00000001 << RST_OFST) -#define PLL_CLK_SL_OFST (8) -#define PLL_CLK_SL_MSK (0x00000007 << PLL_CLK_SL_OFST) -#define PLL_CLK_SL_MSTR_VAL ((0x1 << PLL_CLK_SL_OFST) & PLL_CLK_SL_MSK) -#define PLL_CLK_SL_MSTR_ADC_VAL ((0x2 << PLL_CLK_SL_OFST) & PLL_CLK_SL_MSK) -#define PLL_CLK_SL_SLV_VAL ((0x3 << PLL_CLK_SL_OFST) & PLL_CLK_SL_MSK) -#define PLL_CLK_SL_SLV_ADC_VAL ((0x4 << PLL_CLK_SL_OFST) & PLL_CLK_SL_MSK) -#define ENT_RSTN_OFST (11) -#define ENT_RSTN_MSK (0x00000001 << ENT_RSTN_OFST) -#define INT_RSTN_OFST (12) -#define INT_RSTN_MSK (0x00000001 << INT_RSTN_OFST) -#define DGTL_TST_OFST (14) -#define DGTL_TST_MSK (0x00000001 << DGTL_TST_OFST) -#define CHNG_AT_PWR_ON_OFST (15) // Not used in SW -#define CHNG_AT_PWR_ON_MSK (0x00000001 << CHNG_AT_PWR_ON_OFST) // Not used in SW -#define RST_TO_SW1_DLY_OFST (16) -#define RST_TO_SW1_DLY_MSK (0x0000000F << RST_TO_SW1_DLY_OFST) -#define STRT_ACQ_DLY_OFST (20) -#define STRT_ACQ_DLY_MSK (0x0000000F << STRT_ACQ_DLY_OFST) - -/** DAQ register */ -#define DAQ_REG (0x15 << MEM_MAP_SHIFT) - -#define DAQ_TKN_TMNG_OFST (0) -#define DAQ_TKN_TMNG_MSK (0x0000FFFF << DAQ_TKN_TMNG_OFST) -#define DAQ_TKN_TMNG_BRD_RVSN_1_VAL \ - ((0x1f16 << DAQ_TKN_TMNG_OFST) & DAQ_TKN_TMNG_MSK) -#define DAQ_TKN_TMNG_BRD_RVSN_2_VAL \ - ((0x1f10 << DAQ_TKN_TMNG_OFST) & DAQ_TKN_TMNG_MSK) -#define DAQ_PCKT_LNGTH_OFST (16) -#define DAQ_PCKT_LNGTH_MSK (0x0000FFFF << DAQ_PCKT_LNGTH_OFST) -#define DAQ_PCKT_LNGTH_NO_ROI_VAL \ - ((0x0013f << DAQ_PCKT_LNGTH_OFST) & DAQ_PCKT_LNGTH_MSK) -#define DAQ_PCKT_LNGTH_ROI_VAL \ - ((0x0007f << DAQ_PCKT_LNGTH_OFST) & DAQ_PCKT_LNGTH_MSK) - -/** Time From Start register */ -//#define TIME_FROM_START_REG (0x16 << MEM_MAP_SHIFT) - -/** DAC Control register */ -#define SPI_REG (0x17 << MEM_MAP_SHIFT) - -#define SPI_DAC_SRL_CS_OTPT_OFST (0) -#define SPI_DAC_SRL_CS_OTPT_MSK (0x00000001 << SPI_DAC_SRL_CS_OTPT_OFST) -#define SPI_DAC_SRL_CLK_OTPT_OFST (1) -#define SPI_DAC_SRL_CLK_OTPT_MSK (0x00000001 << SPI_DAC_SRL_CLK_OTPT_OFST) -#define SPI_DAC_SRL_DGTL_OTPT_OFST (2) -#define SPI_DAC_SRL_DGTL_OTPT_MSK (0x00000001 << SPI_DAC_SRL_DGTL_OTPT_OFST) - -/** ADC SPI register */ -#define ADC_SPI_REG (0x18 << MEM_MAP_SHIFT) - -#define ADC_SPI_SRL_CLK_OTPT_OFST (0) -#define ADC_SPI_SRL_CLK_OTPT_MSK (0x00000001 << ADC_SPI_SRL_CLK_OTPT_OFST) -#define ADC_SPI_SRL_DT_OTPT_OFST (1) -#define ADC_SPI_SRL_DT_OTPT_MSK (0x00000001 << ADC_SPI_SRL_DT_OTPT_OFST) -#define ADC_SPI_SRL_CS_OTPT_OFST (2) -#define ADC_SPI_SRL_CS_OTPT_MSK (0x0000001F << ADC_SPI_SRL_CS_OTPT_OFST) - -/** ADC Sync register */ -#define ADC_SYNC_REG (0x19 << MEM_MAP_SHIFT) - -#define ADC_SYNC_ENET_STRT_DLY_OFST (0) -#define ADC_SYNC_ENET_STRT_DLY_MSK (0x0000000F << ADC_SYNC_ENET_STRT_DLY_OFST) -#define ADC_SYNC_ENET_STRT_DLY_VAL \ - ((0x4 << ADC_SYNC_ENET_STRT_DLY_OFST) & ADC_SYNC_ENET_STRT_DLY_MSK) -#define ADC_SYNC_TKN1_HGH_DLY_OFST (4) -#define ADC_SYNC_TKN1_HGH_DLY_MSK (0x0000000F << ADC_SYNC_TKN1_HGH_DLY_OFST) -#define ADC_SYNC_TKN1_HGH_DLY_VAL \ - ((0x1 << ADC_SYNC_TKN1_HGH_DLY_OFST) & ADC_SYNC_TKN1_HGH_DLY_MSK) -#define ADC_SYNC_TKN2_HGH_DLY_OFST (8) -#define ADC_SYNC_TKN2_HGH_DLY_MSK (0x0000000F << ADC_SYNC_TKN2_HGH_DLY_OFST) -#define ADC_SYNC_TKN2_HGH_DLY_VAL \ - ((0x2 << ADC_SYNC_TKN2_HGH_DLY_OFST) & ADC_SYNC_TKN2_HGH_DLY_MSK) -#define ADC_SYNC_TKN1_LOW_DLY_OFST (12) -#define ADC_SYNC_TKN1_LOW_DLY_MSK (0x0000000F << ADC_SYNC_TKN1_LOW_DLY_OFST) -#define ADC_SYNC_TKN1_LOW_DLY_VAL \ - ((0x2 << ADC_SYNC_TKN1_LOW_DLY_OFST) & ADC_SYNC_TKN1_LOW_DLY_MSK) -#define ADC_SYNC_TKN2_LOW_DLY_OFST (16) -#define ADC_SYNC_TKN2_LOW_DLY_MSK (0x0000000F << ADC_SYNC_TKN2_LOW_DLY_OFST) -#define ADC_SYNC_TKN2_LOW_DLY_VAL \ - ((0x3 << ADC_SYNC_TKN2_LOW_DLY_OFST) & ADC_SYNC_TKN2_LOW_DLY_MSK) -// 0x32214 -#define ADC_SYNC_TKN_VAL \ - (ADC_SYNC_ENET_STRT_DLY_VAL | ADC_SYNC_TKN1_HGH_DLY_VAL | \ - ADC_SYNC_TKN2_HGH_DLY_VAL | ADC_SYNC_TKN1_LOW_DLY_VAL | \ - ADC_SYNC_TKN2_LOW_DLY_VAL) -#define ADC_SYNC_CLEAN_FIFOS_OFST (20) -#define ADC_SYNC_CLEAN_FIFOS_MSK (0x00000001 << ADC_SYNC_CLEAN_FIFOS_OFST) -#define ADC_SYNC_ENET_DELAY_OFST (24) -#define ADC_SYNC_ENET_DELAY_MSK (0x000000FF << ADC_SYNC_ENET_DELAY_OFST) -#define ADC_SYNC_ENET_DELAY_NO_ROI_VAL \ - ((0x88 << ADC_SYNC_ENET_DELAY_OFST) & ADC_SYNC_ENET_DELAY_MSK) -#define ADC_SYNC_ENET_DELAY_ROI_VAL \ - ((0x1b << ADC_SYNC_ENET_DELAY_OFST) & ADC_SYNC_ENET_DELAY_MSK) - -/** Time From Start register */ -//#define MU_TIME_REG (0x1a << MEM_MAP_SHIFT) - -/** Temperatre SPI In register */ -#define TEMP_SPI_IN_REG (0x1b << MEM_MAP_SHIFT) - -#define TEMP_SPI_IN_T1_CLK_OFST (0) -#define TEMP_SPI_IN_T1_CLK_MSK (0x00000001 << TEMP_SPI_IN_T1_CLK_OFST) -#define TEMP_SPI_IN_T1_CS_OFST (1) -#define TEMP_SPI_IN_T1_CS_MSK (0x00000001 << TEMP_SPI_IN_T1_CS_OFST) -#define TEMP_SPI_IN_T2_CLK_OFST (2) -#define TEMP_SPI_IN_T2_CLK_MSK (0x00000001 << TEMP_SPI_IN_T2_CLK_OFST) -#define TEMP_SPI_IN_T2_CS_OFST (3) -#define TEMP_SPI_IN_T2_CS_MSK (0x00000001 << TEMP_SPI_IN_T2_CS_OFST) -#define TEMP_SPI_IN_IDLE_MSK \ - (TEMP_SPI_IN_T1_CS_MSK | TEMP_SPI_IN_T2_CS_MSK | TEMP_SPI_IN_T1_CLK_MSK | \ - TEMP_SPI_IN_T2_CLK_MSK) - -/** Temperatre SPI Out register */ -#define TEMP_SPI_OUT_REG (0x1c << MEM_MAP_SHIFT) - -#define TEMP_SPI_OUT_T1_DT_OFST (0) -#define TEMP_SPI_OUT_T1_DT_MSK (0x00000001 << TEMP_SPI_OUT_T1_DT_OFST) -#define TEMP_SPI_OUT_T2_DT_OFST (1) -#define TEMP_SPI_OUT_T2_DT_MSK (0x00000001 << TEMP_SPI_OUT_T2_DT_OFST) - -/** TSE Configure register */ -#define TSE_CONF_REG (0x1d << MEM_MAP_SHIFT) - -/** SPI Configure register */ -#define ENET_CONF_REG (0x1e << MEM_MAP_SHIFT) - -/** Write TSE Shadow register */ -//#define WRITE_TSE_SHADOW_REG (0x1f << MEM_MAP_SHIFT) - -/** High Voltage register */ -#define HV_REG (0x20 << MEM_MAP_SHIFT) - -#define HV_ENBL_OFST (0) -#define HV_ENBL_MSK (0x00000001 << HV_ENBL_OFST) -#define HV_SEL_OFST (1) -#define HV_SEL_MSK (0x00000007 << HV_SEL_OFST) -#define HV_SEL_90_VAL ((0x0 << HV_SEL_OFST) & HV_SEL_MSK) -#define HV_SEL_110_VAL ((0x1 << HV_SEL_OFST) & HV_SEL_MSK) -#define HV_SEL_120_VAL ((0x2 << HV_SEL_OFST) & HV_SEL_MSK) -#define HV_SEL_150_VAL ((0x3 << HV_SEL_OFST) & HV_SEL_MSK) -#define HV_SEL_180_VAL ((0x4 << HV_SEL_OFST) & HV_SEL_MSK) -#define HV_SEL_200_VAL ((0x5 << HV_SEL_OFST) & HV_SEL_MSK) - -/** Dummy register */ -#define DUMMY_REG (0x21 << MEM_MAP_SHIFT) - -/** Firmware Version register */ -#define FPGA_VERSION_REG (0x22 << MEM_MAP_SHIFT) - -#define FPGA_VERSION_OFST (0) -#define FPGA_VERSION_MSK \ - (0x00FFFFFF << FPGA_VERSION_OFST) // to get in format yymmdd - -/* Fix Pattern register */ -#define FIX_PATT_REG (0x23 << MEM_MAP_SHIFT) - -#define FIX_PATT_VAL (0xACDC1980) - -/** 16 bit Control register */ -#define CONTROL_REG (0x24 << MEM_MAP_SHIFT) - -#define CONTROL_STRT_ACQ_OFST (0) -#define CONTROL_STRT_ACQ_MSK (0x00000001 << CONTROL_STRT_ACQ_OFST) -#define CONTROL_STP_ACQ_OFST (1) -#define CONTROL_STP_ACQ_MSK (0x00000001 << CONTROL_STP_ACQ_OFST) -#define CONTROL_STRT_FF_TST_OFST (2) // Not used in FW & SW -#define CONTROL_STRT_FF_TST_MSK (0x00000001 << CONTROL_STRT_FF_TST_OFST) -#define CONTROL_STP_FF_TST_OFST (3) // Not used in FW & SW -#define CONTROL_STP_FF_TST_MSK (0x00000001 << CONTROL_STP_FF_TST_OFST) -#define CONTROL_STRT_RDT_OFST (4) -#define CONTROL_STRT_RDT_MSK (0x00000001 << CONTROL_STRT_RDT_OFST) -#define CONTROL_STP_RDT_OFST (5) -#define CONTROL_STP_RDT_MSK (0x00000001 << CONTROL_STP_RDT_OFST) -#define CONTROL_STRT_EXPSR_OFST (6) -#define CONTROL_STRT_EXPSR_MSK (0x00000001 << CONTROL_STRT_EXPSR_OFST) -#define CONTROL_STP_EXPSR_OFST (7) -#define CONTROL_STP_EXPSR_MSK (0x00000001 << CONTROL_STP_EXPSR_OFST) -#define CONTROL_STRT_TRN_OFST (8) -#define CONTROL_STRT_TRN_MSK (0x00000001 << CONTROL_STRT_TRN_OFST) -#define CONTROL_STP_TRN_OFST (9) -#define CONTROL_STP_TRN_MSK (0x00000001 << CONTROL_STP_TRN_OFST) -#define CONTROL_SYNC_RST_OFST (10) -#define CONTROL_SYNC_RST_MSK (0x00000001 << CONTROL_SYNC_RST_OFST) - -/** Status register */ -#define STATUS_REG (0x25 << MEM_MAP_SHIFT) - -#define STATUS_RN_BSY_OFST (0) -#define STATUS_RN_BSY_MSK (0x00000001 << STATUS_RN_BSY_OFST) -#define STATUS_RDT_BSY_OFST (1) -#define STATUS_RDT_BSY_MSK (0x00000001 << STATUS_RDT_BSY_OFST) -#define STATUS_WTNG_FR_TRGGR_OFST (3) -#define STATUS_WTNG_FR_TRGGR_MSK (0x00000001 << STATUS_WTNG_FR_TRGGR_OFST) -#define STATUS_DLY_BFR_OFST (4) -#define STATUS_DLY_BFR_MSK (0x00000001 << STATUS_DLY_BFR_OFST) -#define STATUS_DLY_AFTR_OFST (5) -#define STATUS_DLY_AFTR_MSK (0x00000001 << STATUS_DLY_AFTR_OFST) -#define STATUS_EXPSNG_OFST (6) -#define STATUS_EXPSNG_MSK (0x00000001 << STATUS_EXPSNG_OFST) -#define STATUS_CNT_ENBL_OFST (7) -#define STATUS_CNT_ENBL_MSK (0x00000001 << STATUS_CNT_ENBL_OFST) -#define STATUS_RD_STT_OFST (8) -#define STATUS_RD_STT_MSK (0x00000007 << STATUS_RD_STT_OFST) -#define STATUS_RN_STT_OFST (12) -#define STATUS_RN_STT_MSK (0x00000007 << STATUS_RN_STT_OFST) -#define STATUS_SM_FF_FLL_OFST (15) -#define STATUS_SM_FF_FLL_MSK (0x00000001 << STATUS_SM_FF_FLL_OFST) -#define STATUS_ALL_FF_EMPTY_OFST (11) -#define STATUS_ALL_FF_EMPTY_MSK (0x00000001 << STATUS_ALL_FF_EMPTY_OFST) -#define STATUS_RN_MSHN_BSY_OFST (17) -#define STATUS_RN_MSHN_BSY_MSK (0x00000001 << STATUS_RN_MSHN_BSY_OFST) -#define STATUS_RD_MSHN_BSY_OFST (18) -#define STATUS_RD_MSHN_BSY_MSK (0x00000001 << STATUS_RD_MSHN_BSY_OFST) -#define STATUS_RN_FNSHD_OFST (20) -#define STATUS_RN_FNSHD_MSK (0x00000001 << STATUS_RN_FNSHD_OFST) -#define STATUS_IDLE_MSK (0x0000FFFF << 0) - -/** Config register */ -#define CONFIG_REG (0x26 << MEM_MAP_SHIFT) - -#define CONFIG_SLAVE_OFST (0) // Not used in FW & SW -#define CONFIG_SLAVE_MSK (0x00000001 << CONFIG_SLAVE_OFST) -#define CONFIG_MASTER_OFST (1) // Not used in FW & SW -#define CONFIG_MASTER_MSK (0x00000001 << CONFIG_MASTER_OFST) -#define CONFIG_TM_GT_ENBL_OFST (2) // Not used in FW & SW -#define CONFIG_TM_GT_ENBL_MSK (0x00000001 << CONFIG_TM_GT_ENBL_OFST) -#define CONFIG_CPU_RDT_OFST (12) -#define CONFIG_CPU_RDT_MSK (0x00000001 << CONFIG_CPU_RDT_OFST) -#define CONFIG_CNTNS_RDT_OFST (23) // Not used in FW & SW -#define CONFIG_CNTNS_RDT_MSK (0x00000001 << CONFIG_CNTNS_RDT_OFST) -#define CONFIG_ACCMLT_CNTS_OFST (24) // Not used in FW & SW -#define CONFIG_ACCMLT_CNTS_MSK (0x00000001 << CONFIG_ACCMLT_CNTS_OFST) - -/** External Signal register */ -#define EXT_SIGNAL_REG (0x27 << MEM_MAP_SHIFT) - -#define EXT_SIGNAL_OFST (0) -#define EXT_SIGNAL_MSK (0x00000007 << EXT_SIGNAL_OFST) -#define EXT_SIGNAL_OFF_VAL ((0x0 << EXT_SIGNAL_OFST) & EXT_SIGNAL_MSK) -#define EXT_SIGNAL_TRGGR_IN_RSNG_VAL ((0x3 << EXT_SIGNAL_OFST) & EXT_SIGNAL_MSK) -#define EXT_SIGNAL_TRGGR_IN_FLLNG_VAL \ - ((0x4 << EXT_SIGNAL_OFST) & EXT_SIGNAL_MSK) - -/** Look at me register */ -//#define LOOK_AT_ME_REG (0x28 << MEM_MAP_SHIFT) - -/** FPGA SVN register */ -//#define FPGA_SVN_REG (0x29 << MEM_MAP_SHIFT) - -/** Chip of Interest register */ -#define CHIP_OF_INTRST_REG (0x2a << MEM_MAP_SHIFT) - -#define CHIP_OF_INTRST_ADC_SEL_OFST (0) -#define CHIP_OF_INTRST_ADC_SEL_MSK (0x0000001F << CHIP_OF_INTRST_ADC_SEL_OFST) -#define CHIP_OF_INTRST_NUM_CHNNLS_OFST (16) -#define CHIP_OF_INTRST_NUM_CHNNLS_MSK \ - (0x0000FFFF << CHIP_OF_INTRST_NUM_CHNNLS_OFST) - -/** Out MUX register */ -//#define OUT_MUX_REG (0x2b << MEM_MAP_SHIFT) - -/** Board Version register */ -#define BOARD_REVISION_REG (0x2c << MEM_MAP_SHIFT) - -#define BOARD_REVISION_OFST (0) -#define BOARD_REVISION_MSK (0x0000FFFF << BOARD_REVISION_OFST) -#define DETECTOR_TYPE_OFST (16) -#define DETECTOR_TYPE_MSK (0x0000000F << DETECTOR_TYPE_OFST) -//#define DETECTOR_TYPE_GOTTHARD_VAL (??) -#define DETECTOR_TYPE_MOENCH_VAL (2) - -/** Memory Test register */ -//#define MEMORY_TEST_REG (0x2d << MEM_MAP_SHIFT) - -/** Hit Threshold register */ -//#define HIT_THRESHOLD_REG (0x2e << MEM_MAP_SHIFT) - -/** Hit Count register */ -//#define HIT_COUNT_REG (0x2f << MEM_MAP_SHIFT) - -/* 16 bit Fifo Data register */ -#define FIFO_DATA_REG (0x50 << MEM_MAP_SHIFT) // Not used in FW and SW (16bit) - -/** Dacs Set 1 register */ -//#define DACS_SET_1_REG (0x65 << MEM_MAP_SHIFT) - -/** Dacs Set 2 register */ -//#define DACS_SET_2_REG (0x66 << MEM_MAP_SHIFT) - -/** Dacs Set 3 register */ -//#define DACS_SET_3_REG (0x67 << MEM_MAP_SHIFT) - -/* Set Delay 64 bit register */ -#define SET_DELAY_LSB_REG (0x68 << MEM_MAP_SHIFT) -#define SET_DELAY_MSB_REG (0x69 << MEM_MAP_SHIFT) - -/* Get Delay 64 bit register */ -#define GET_DELAY_LSB_REG (0x6a << MEM_MAP_SHIFT) -#define GET_DELAY_MSB_REG (0x6b << MEM_MAP_SHIFT) - -/* Set Triggers 64 bit register */ -#define SET_TRAINS_LSB_REG (0x6c << MEM_MAP_SHIFT) -#define SET_TRAINS_MSB_REG (0x6d << MEM_MAP_SHIFT) - -/* Get Triggers 64 bit register */ -#define GET_TRAINS_LSB_REG (0x6e << MEM_MAP_SHIFT) -#define GET_TRAINS_MSB_REG (0x6f << MEM_MAP_SHIFT) - -/* Set Frames 64 bit register */ -#define SET_FRAMES_LSB_REG (0x70 << MEM_MAP_SHIFT) -#define SET_FRAMES_MSB_REG (0x71 << MEM_MAP_SHIFT) - -/* Get Frames 64 bit register */ -#define GET_FRAMES_LSB_REG (0x72 << MEM_MAP_SHIFT) -#define GET_FRAMES_MSB_REG (0x73 << MEM_MAP_SHIFT) - -/* Set Period 64 bit register */ -#define SET_PERIOD_LSB_REG (0x74 << MEM_MAP_SHIFT) -#define SET_PERIOD_MSB_REG (0x75 << MEM_MAP_SHIFT) - -/* Get Period 64 bit register */ -#define GET_PERIOD_LSB_REG (0x76 << MEM_MAP_SHIFT) -#define GET_PERIOD_MSB_REG (0x77 << MEM_MAP_SHIFT) - -/* Set Exptime 64 bit register */ -#define SET_EXPTIME_LSB_REG (0x78 << MEM_MAP_SHIFT) -#define SET_EXPTIME_MSB_REG (0x79 << MEM_MAP_SHIFT) - -/* Get Exptime 64 bit register */ -#define GET_EXPTIME_LSB_REG (0x7a << MEM_MAP_SHIFT) -#define GET_EXPTIME_MSB_REG (0x7b << MEM_MAP_SHIFT) - -/* Set Gates 64 bit register */ -//#define SET_GATES_LSB_REG (0x7c << MEM_MAP_SHIFT) -//#define SET_GATES_MSB_REG (0x7d << MEM_MAP_SHIFT) - -/* Set Gates 64 bit register */ -//#define GET_GATES_LSB_REG (0x7e << MEM_MAP_SHIFT) -//#define GET_GATES_MSB_REG (0x7f << MEM_MAP_SHIFT) - -/* Dark Image starting address */ -#define DARK_IMAGE_REG (0x81 << MEM_MAP_SHIFT) - -/* Gain Image starting address */ -#define GAIN_IMAGE_REG (0x82 << MEM_MAP_SHIFT) - -/* Counter Block Memory starting address */ -#define COUNTER_MEMORY_REG (0x85 << MEM_MAP_SHIFT) diff --git a/slsDetectorServers/gotthardDetectorServer/bin/config_gotthard.txt b/slsDetectorServers/gotthardDetectorServer/bin/config_gotthard.txt deleted file mode 100755 index 721434a75..000000000 --- a/slsDetectorServers/gotthardDetectorServer/bin/config_gotthard.txt +++ /dev/null @@ -1,23 +0,0 @@ -#masterflags (no_master, is_master, is_slave) -masterflags no_master - -#master default delay -masterdefaultdelay 70 - -#patternphase -patternphase 0 - -#adcphase -adcphase 0 - -#slave pattern phase -slavepatternphase 0 - -#slave adc phase -slaveadcphase 0 - -#rst to sw1 delay -rsttosw1delay 2 - -#start acquisition delay -startacqdelay 1 \ No newline at end of file diff --git a/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer b/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer deleted file mode 100755 index f36d43e15..000000000 Binary files a/slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServer_developer and /dev/null differ diff --git a/slsDetectorServers/gotthardDetectorServer/config_gotthard.txt b/slsDetectorServers/gotthardDetectorServer/config_gotthard.txt deleted file mode 100755 index 721434a75..000000000 --- a/slsDetectorServers/gotthardDetectorServer/config_gotthard.txt +++ /dev/null @@ -1,23 +0,0 @@ -#masterflags (no_master, is_master, is_slave) -masterflags no_master - -#master default delay -masterdefaultdelay 70 - -#patternphase -patternphase 0 - -#adcphase -adcphase 0 - -#slave pattern phase -slavepatternphase 0 - -#slave adc phase -slaveadcphase 0 - -#rst to sw1 delay -rsttosw1delay 2 - -#start acquisition delay -startacqdelay 1 \ No newline at end of file diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c deleted file mode 100644 index c9a88bd66..000000000 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorFunctionList.c +++ /dev/null @@ -1,1926 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0-or-other -// Copyright (C) 2021 Contributors to the SLS Detector Package -#include "slsDetectorFunctionList.h" -#include "RegisterDefs.h" -#include "clogger.h" -#include "common.h" -#include "sharedMemory.h" -#include "sls/versionAPI.h" - -#include "LTC2620.h" // dacs -#ifdef VIRTUAL -#include "communication_funcs_UDP.h" -#endif - -#include "string.h" -#include -#include // usleep -#ifdef VIRTUAL -#include -#include -#endif - -// Global variable from slsDetectorServer_funcs -extern int debugflag; -extern int updateFlag; -extern udpStruct udpDetails[MAX_UDP_DESTINATION]; -extern const enum detectorType myDetectorType; -extern int ignoreConfigFileFlag; - -// Variables that will be exported -int phaseShift = DEFAULT_PHASE_SHIFT; -int masterCommandLine = -1; - -// Global variable from communication_funcs.c -extern int isControlServer; -extern void getMacAddressinString(char *cmac, int size, uint64_t mac); -extern void getIpAddressinString(char *cip, uint32_t ip); - -int initError = OK; -int initCheckDone = 0; -char initErrorMessage[MAX_STR_LENGTH]; - -#ifdef VIRTUAL -pthread_t pthread_virtual_tid; -int highvoltage = 0; -int64_t virtual_currentFrameNumber = 2; -#endif -int detPos[2] = {}; - -int detectorFirstServer = 1; -int dacValues[NDAC] = {}; -int defaultDacValues[NDAC] = DEFAULT_DAC_VALS; -enum detectorSettings thisSettings = UNINITIALIZED; -enum externalSignalFlag signalMode = 0; - -// roi configuration -int adcConfigured = -1; -ROI rois; -int ipPacketSize = 0; -int udpPacketSize = 0; - -// master slave configuration (for 25um) -int master = 0; -int masterdefaultdelay = 62; -int patternphase = 0; -int adcphase = 0; -int slavepatternphase = 0; -int slaveadcphase = 0; -int rsttosw1delay = 2; -int startacqdelay = 1; - -int isInitCheckDone() { return initCheckDone; } - -int getInitResult(char **mess) { - *mess = initErrorMessage; - return initError; -} - -void basictests() { - initError = OK; - initCheckDone = 0; - memset(initErrorMessage, 0, MAX_STR_LENGTH); -#ifdef VIRTUAL - LOG(logINFOBLUE, ("******** Gotthard Virtual Server *****************\n")); -#else - LOG(logINFOBLUE, ("**************** Gotthard Server *****************\n")); -#endif - if (mapCSP0() == FAIL) { - strcpy(initErrorMessage, - "Could not map to memory. Cannot proceed. Check Firmware.\n"); - LOG(logERROR, (initErrorMessage)); - initError = FAIL; - return; - } -#ifndef VIRTUAL - // does check only if flag is 0 (by default), set by command line - if ((!debugflag) && (!updateFlag) && - ((checkType() == FAIL) || (testFpga() == FAIL) || - (testBus() == FAIL))) { - strcpy(initErrorMessage, "Could not pass basic tests of FPGA and bus. " - "Cannot proceed. Check Firmware.\n"); - LOG(logERROR, ("%s\n\n", initErrorMessage)); - initError = FAIL; - return; - } -#endif - char hversion[MAX_STR_LENGTH] = {0}; - memset(hversion, 0, MAX_STR_LENGTH); - getHardwareVersion(hversion); - uint32_t ipadd = getDetectorIP(); - uint64_t macadd = getDetectorMAC(); - int64_t fwversion = getFirmwareVersion(); - char swversion[MAX_STR_LENGTH] = {0}; - memset(swversion, 0, MAX_STR_LENGTH); - getServerVersion(swversion); - - LOG(logINFOBLUE, - ("**************************************************\n" - "Hardware Revision : %s\n" - - "Detector IP Addr : 0x%x\n" - "Detector MAC Addr : 0x%llx\n\n" - - "Firmware Version : 0x%llx\n" - "Software Version : %s\n" - "********************************************************\n", - hversion, - - ipadd, (long long unsigned int)macadd, - - (long long int)fwversion, swversion)); - -#ifndef VIRTUAL - if (!debugflag || updateFlag) { - LOG(logINFO, ("Basic Tests - success\n")); - } -#endif -} - -int checkType() { -#ifdef VIRTUAL - return OK; -#endif - u_int32_t type = - ((bus_r(BOARD_REVISION_REG) & DETECTOR_TYPE_MSK) >> DETECTOR_TYPE_OFST); - if (type == DETECTOR_TYPE_MOENCH_VAL) { - LOG(logERROR, - ("This is not a Gotthard firmware (read %d, expected ?)\n", type)); - return FAIL; - } - return OK; -} - -int testFpga() { -#ifdef VIRTUAL - return OK; -#endif - LOG(logINFO, ("Testing FPGA:\n")); - - // fixed pattern - int ret = OK; - u_int32_t val = bus_r(FIX_PATT_REG); - if (val == FIX_PATT_VAL) { - LOG(logINFO, ("Fixed pattern: successful match (0x%08x)\n", val)); - } else { - LOG(logERROR, - ("Fixed pattern does not match! Read 0x%08x, expected 0x%08x\n", - val, FIX_PATT_VAL)); - ret = FAIL; - } - - if (ret == OK) { - // dummy reg - LOG(logINFO, ("\tTesting Dummy Register:\n")); - u_int32_t addr = DUMMY_REG; - volatile u_int32_t val = 0, readval = 0; - int times = 1000 * 1000; - for (int i = 0; i < times; ++i) { - val = 0x5A5A5A5A - i; - bus_w(addr, val); - readval = bus_r(addr); - if (readval != val) { - LOG(logERROR, ("1:Mismatch! Loop(%d): Wrote 0x%x, read 0x%x\n", - i, val, readval)); - ret = FAIL; - break; - } - val = (i + (i << 10) + (i << 20)); - bus_w(addr, val); - readval = bus_r(addr); - if (readval != val) { - LOG(logERROR, ("2:Mismatch! Loop(%d): Wrote 0x%x, read 0x%x\n", - i, val, readval)); - ret = FAIL; - break; - } - val = 0x0F0F0F0F; - bus_w(addr, val); - readval = bus_r(addr); - if (readval != val) { - LOG(logERROR, ("3:Mismatch! Loop(%d): Wrote 0x%x, read 0x%x\n", - i, val, readval)); - ret = FAIL; - break; - } - val = 0xF0F0F0F0; - bus_w(addr, val); - readval = bus_r(addr); - if (readval != val) { - LOG(logERROR, ("4:Mismatch! Loop(%d): Wrote 0x%x, read 0x%x\n", - i, val, readval)); - ret = FAIL; - break; - } - } - bus_w(addr, 0); - if (ret == OK) { - LOG(logINFO, - ("Successfully tested FPGA Dummy Register %d times\n", times)); - } - } - - return ret; -} - -int testBus() { -#ifdef VIRTUAL - return OK; -#endif - LOG(logINFO, ("Testing Bus:\n")); - - int ret = OK; - u_int32_t addr = DUMMY_REG; - volatile u_int32_t val = 0, readval = 0; - int times = 1000 * 1000; - - for (int i = 0; i < times; ++i) { - val += 0xbbbbb; - bus_w(addr, val); - readval = bus_r(addr); - if (readval != val) { - LOG(logERROR, ("Mismatch! Loop(%d): Wrote 0x%x, read 0x%x\n", i, - val, readval)); - ret = FAIL; - } - } - - bus_w(addr, 0); - - if (ret == OK) { - LOG(logINFO, ("Successfully tested bus %d times\n", times)); - } - return ret; -} - -void setTestImageMode(int ival) { - uint32_t addr = MULTI_PURPOSE_REG; - if (ival >= 0) { - if (ival == 0) { - LOG(logINFO, ("Switching off Image Test Mode\n")); - bus_w(addr, bus_r(addr) & ~DGTL_TST_MSK); - } else { - LOG(logINFO, ("Switching on Image Test Mode\n")); - bus_w(addr, bus_r(addr) | DGTL_TST_MSK); - } - } -} - -int getTestImageMode() { - return ((bus_r(MULTI_PURPOSE_REG) & DGTL_TST_MSK) >> DGTL_TST_OFST); -} - -/* Ids */ - -void getServerVersion(char *version) { strcpy(version, APIGOTTHARD); } - -u_int64_t getFirmwareVersion() { -#ifdef VIRTUAL - return 1; -#endif - return ((bus_r(FPGA_VERSION_REG) & FPGA_VERSION_MSK) >> FPGA_VERSION_OFST); -} - -u_int32_t getDetectorNumber() { -#ifdef VIRTUAL - return 0; -#endif - return 0; -} - -u_int64_t getDetectorMAC() { -#ifdef VIRTUAL - return 0; -#else - char output[255], mac[255] = ""; - u_int64_t res = 0; - FILE *sysFile = - popen("ifconfig eth0 | grep HWaddr | cut -d \" \" -f 11", "r"); - fgets(output, sizeof(output), sysFile); - pclose(sysFile); - // getting rid of ":" - char *pch; - pch = strtok(output, ":"); - while (pch != NULL) { - strcat(mac, pch); - pch = strtok(NULL, ":"); - } - sscanf(mac, "%llx", &res); - return res; -#endif -} - -u_int32_t getDetectorIP() { -#ifdef VIRTUAL - return 0; -#endif - char temp[INET_ADDRSTRLEN] = ""; - u_int32_t res = 0; - // execute and get address - char output[255]; - FILE *sysFile = popen( - "ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2", - "r"); - fgets(output, sizeof(output), sysFile); - pclose(sysFile); - - // converting IPaddress to hex. - char *pcword = strtok(output, "."); - while (pcword != NULL) { - sprintf(output, "%02x", atoi(pcword)); - strcat(temp, output); - pcword = strtok(NULL, "."); - } - strcpy(output, temp); - sscanf(output, "%x", &res); - // LOG(logINFO, ("ip:%x\n",res); - - return res; -} - -void getHardwareVersion(char *version) { - strcpy(version, "unknown"); - int hwversion = getHardwareVersionNumber(); - const int hwNumberList[] = HARDWARE_VERSION_NUMBERS; - const char *hwNamesList[] = HARDWARE_VERSION_NAMES; - for (int i = 0; i != NUM_HARDWARE_VERSIONS; ++i) { - LOG(logDEBUG, ("0x%x %d 0x%x %s\n", hwversion, i, hwNumberList[i], - hwNamesList[i])); - if (hwNumberList[i] == hwversion) { - strcpy(version, hwNamesList[i]); - return; - } - } -} - -u_int16_t getHardwareVersionNumber() { -#ifdef VIRTUAL - return 0x2; -#endif - return ((bus_r(BOARD_REVISION_REG) & BOARD_REVISION_MSK) >> - BOARD_REVISION_OFST); -} - -int isHardwareVersion_1_0() { - const int hwNumberList[] = HARDWARE_VERSION_NUMBERS; - return ((getHardwareVersionNumber() == hwNumberList[0]) ? 1 : 0); -} - -/* initialization */ - -void initControlServer() { - if (!updateFlag && initError == OK) { - setupDetector(); - } - initCheckDone = 1; -} - -void initStopServer() { - if (!updateFlag && initError == OK) { - usleep(CTRL_SRVR_INIT_TIME_US); - LOG(logINFOBLUE, ("Configuring Stop server\n")); - if (mapCSP0() == FAIL) { - initError = FAIL; - strcpy(initErrorMessage, - "Stop Server: Map Fail. Cannot proceed. Check Firmware.\n"); - LOG(logERROR, (initErrorMessage)); - initCheckDone = 1; - return; - } -#ifdef VIRTUAL - setupDetector(); -#else - // ismaster from variable in stop server - if (readConfigFile() == FAIL || - checkCommandLineConfiguration() == FAIL) { - initCheckDone = 1; - return; - } -#endif - } - initCheckDone = 1; -} - -/* set up detector */ - -void setupDetector() { - LOG(logINFO, ("This Server is for 1 Gotthard module (1280 channels)\n")); - -#ifdef VIRTUAL - if (isControlServer) { - sharedMemory_setStatus(IDLE); - setupUDPCommParameters(); - } else { - sharedMemory_setStop(0); - } -#endif - - // Initialization - setPhaseShiftOnce(); - - // hv - setHighVoltage(DEFAULT_HIGH_VOLTAGE); - - // adc - if (isHardwareVersion_1_0()) { - AD9252_SetDefines(ADC_SPI_REG, ADC_SPI_SRL_CS_OTPT_MSK, - ADC_SPI_SRL_CLK_OTPT_MSK, ADC_SPI_SRL_DT_OTPT_MSK, - ADC_SPI_SRL_DT_OTPT_OFST); - AD9252_Disable(); - AD9252_Configure(); - } else { - AD9257_SetDefines(ADC_SPI_REG, ADC_SPI_SRL_CS_OTPT_MSK, - ADC_SPI_SRL_CLK_OTPT_MSK, ADC_SPI_SRL_DT_OTPT_MSK, - ADC_SPI_SRL_DT_OTPT_OFST); - AD9257_Disable(); - AD9257_Configure(); - } - - // dac - LTC2620_SetDefines(SPI_REG, SPI_DAC_SRL_CS_OTPT_MSK, - SPI_DAC_SRL_CLK_OTPT_MSK, SPI_DAC_SRL_DGTL_OTPT_MSK, - SPI_DAC_SRL_DGTL_OTPT_OFST, NDAC, DAC_MIN_MV, - DAC_MAX_MV); - LTC2620_Disable(); - LTC2620_Configure(); - resetToDefaultDacs(0); - - // temp - bus_w(TEMP_SPI_IN_REG, TEMP_SPI_IN_IDLE_MSK); - bus_w(TEMP_SPI_OUT_REG, 0x0); - - // roi, gbit readout - rois.xmin = -1; - rois.xmax = -1; - rois.ymin = -1; - rois.ymax = -1; - setROI(rois); // set adcsyncreg, daqreg, chipofinterestreg, cleanfifos, - setGbitReadout(); - - // no config file or not first time server - if (readConfigFile() == FAIL) - return; - - if (checkCommandLineConfiguration() == FAIL) - return; - - // master, slave (25um) - setMasterSlaveConfiguration(); - - // Default Parameters - LOG(logINFOBLUE, ("Setting Default parameters\n")); - - setSettings(DEFAULT_SETTINGS); - setExtSignal(0, DEFAULT_TRIGGER_MODE); - setTiming(DEFAULT_TIMING_MODE); - setNumFrames(DEFAULT_NUM_FRAMES); - setNumTriggers(DEFAULT_NUM_CYCLES); - setExpTime(DEFAULT_EXPTIME); - setPeriod(DEFAULT_PERIOD); - setDelayAfterTrigger(DEFAULT_DELAY); -} - -int resetToDefaultDacs(int hardReset) { - // reset defaults to hardcoded defaults - if (hardReset) { - const int vals[] = DEFAULT_DAC_VALS; - for (int i = 0; i < NDAC; ++i) { - defaultDacValues[i] = vals[i]; - } - } - // reset dacs to defaults - int ret = OK; - LOG(logINFOBLUE, ("Setting Default Dac values\n")); - for (int i = 0; i < NDAC; ++i) { - setDAC((enum DACINDEX)i, defaultDacValues[i], 0); - if (dacValues[i] != defaultDacValues[i]) { - ret = FAIL; - LOG(logERROR, ("Setting dac %d failed, wrote %d, read %d\n", i, - defaultDacValues[i], dacValues[i])); - } - } - return ret; -} - -int getDefaultDac(enum DACINDEX index, enum detectorSettings sett, - int *retval) { - if (sett != UNDEFINED) { - return FAIL; - } - if (index < 0 || index >= NDAC) - return FAIL; - *retval = defaultDacValues[index]; - return OK; -} - -int setDefaultDac(enum DACINDEX index, enum detectorSettings sett, int value) { - if (sett != UNDEFINED) { - return FAIL; - } - if (index < 0 || index >= NDAC) - return FAIL; - - char *dac_names[] = {DAC_NAMES}; - LOG(logINFO, ("Setting Default Dac [%d - %s]: %d\n", (int)index, - dac_names[index], value)); - defaultDacValues[index] = value; - return OK; -} - -void writeRegister16And32(uint32_t offset, uint32_t data) { - if (((offset << MEM_MAP_SHIFT) == CONTROL_REG) || - ((offset << MEM_MAP_SHIFT) == FIFO_DATA_REG)) { - writeRegister16(offset, data); - } else - writeRegister(offset, data); -} - -uint32_t readRegister16And32(uint32_t offset) { - if (((offset << MEM_MAP_SHIFT) == CONTROL_REG) || - ((offset << MEM_MAP_SHIFT) == FIFO_DATA_REG)) { - return readRegister16(offset); - } else - return readRegister(offset); -} - -/* firmware functions (resets) */ - -void setPhaseShiftOnce() { - u_int32_t addr = MULTI_PURPOSE_REG; - volatile u_int32_t val = bus_r(addr); - LOG(logDEBUG1, ("Multipurpose reg: 0x%x\n", val)); - - // first time detector has switched on - if (!val) { - detectorFirstServer = 1; - LOG(logINFO, - ("Implementing the first phase shift of %d\n", phaseShift)); - for (int times = 1; times < phaseShift; ++times) { - bus_w(addr, (INT_RSTN_MSK | ENT_RSTN_MSK | SW1_MSK | - PHS_STP_MSK)); // 0x1821 - bus_w(addr, (INT_RSTN_MSK | ENT_RSTN_MSK | - (SW1_MSK & ~PHS_STP_MSK))); // 0x1820 - } - LOG(logDEBUG1, ("Multipurpose reg: 0x%x\n", val)); - } else - detectorFirstServer = 0; -} - -void setPhaseShift(int numphaseshift) { - LOG(logINFO, ("Implementing phase shift of %d\n", numphaseshift)); - u_int32_t addr = MULTI_PURPOSE_REG; - - volatile u_int32_t val = bus_r(addr); - LOG(logDEBUG1, ("Multipurpose reg: 0x%x\n", val)); - for (int times = 1; times < numphaseshift; ++times) { - bus_w(addr, val | PHS_STP_MSK); - bus_w(addr, val & (~PHS_STP_MSK)); - } - LOG(logDEBUG1, ("Multipurpose reg: 0x%x\n", val)); -} - -void cleanFifos() { - LOG(logINFO, ("Cleaning FIFOs\n")); - bus_w(ADC_SYNC_REG, bus_r(ADC_SYNC_REG) | ADC_SYNC_CLEAN_FIFOS_MSK); - bus_w(ADC_SYNC_REG, bus_r(ADC_SYNC_REG) & ~ADC_SYNC_CLEAN_FIFOS_MSK); -} - -void setADCSyncRegister() { - LOG(logINFO, ("\tSetting ADC Sync and Token Delays:\n")); - u_int32_t addr = ADC_SYNC_REG; - - // 0x88(no roi), 0x1b(roi) (MSB) - u_int32_t tokenDelay = - ((adcConfigured == -1) ? ADC_SYNC_ENET_DELAY_NO_ROI_VAL - : ADC_SYNC_ENET_DELAY_ROI_VAL); - - // 0x88032214(no roi), 0x1b032214(with roi) - u_int32_t val = (ADC_SYNC_TKN_VAL | tokenDelay); - - bus_w(addr, val); - LOG(logINFO, ("\tADC Sync Reg: 0x%x\n", bus_r(addr))); -} - -void setDAQRegister() { - LOG(logINFO, ("\tSetting Packet Length and DAQ Token Timing:\n")); - u_int32_t addr = DAQ_REG; - - // 0x1f16(board rev 1) 0x1f0f(board rev 2) - u_int32_t tokenTiming = - ((isHardwareVersion_1_0()) ? DAQ_TKN_TMNG_BRD_RVSN_1_VAL - : DAQ_TKN_TMNG_BRD_RVSN_2_VAL); - - // 0x13f(no roi), 0x7f(roi) - u_int32_t packetLength = ((adcConfigured == -1) ? DAQ_PCKT_LNGTH_NO_ROI_VAL - : DAQ_PCKT_LNGTH_ROI_VAL); - - // MSB: packetLength LSB: tokenTiming - u_int32_t val = (tokenTiming | packetLength); - - bus_w(addr, val); - LOG(logINFO, ("\tDAQ Reg: 0x%x\n", bus_r(addr))); -} - -void setChipOfInterestRegister(int adc) { - LOG(logINFO, ("\tSelecting Chips of Interst:\n")); - u_int32_t addr = CHIP_OF_INTRST_REG; - - // 0x1f(no roi), 0xXX(roi) - u_int32_t adcSelect = - ((adcConfigured == -1) ? CHIP_OF_INTRST_ADC_SEL_MSK - : (((1 << adc) << CHIP_OF_INTRST_ADC_SEL_OFST) & - CHIP_OF_INTRST_ADC_SEL_MSK)); - - // 0x0500(no roi), 0x0100(roi) - u_int32_t numChannels = - (adcConfigured == -1) ? (NCHIP * NCHAN) : (NCHIPS_PER_ADC * NCHAN); - numChannels = ((numChannels << CHIP_OF_INTRST_NUM_CHNNLS_OFST) & - CHIP_OF_INTRST_NUM_CHNNLS_MSK); - - // 0x500001f(no roi), 0x10000xx(roi) MSB:num channels, LSB: selected ADC - u_int32_t val = (numChannels | adcSelect); - - bus_w(addr, val); - LOG(logINFO, ("\tChip Of Interest Reg: 0x%x\n", bus_r(addr))); -} - -void setROIADC(int adc) { - LOG(logINFO, ("\tSetting ROI ADC: %d\n", adc)); - adcConfigured = adc; - - setADCSyncRegister(); // adc sync & token delays - setDAQRegister(); // packet length & token timing - cleanFifos(); // clean fifos - setChipOfInterestRegister(adc); // num channels & select adc - - ipPacketSize = - ((adcConfigured == -1) ? IP_PACKET_SIZE_NO_ROI : IP_PACKET_SIZE_ROI); - udpPacketSize = - ((adcConfigured == -1) ? UDP_PACKETSIZE_NO_ROI : UDP_PACKETSIZE_ROI); -} - -void setGbitReadout() { - LOG(logINFO, ("Setting Gbit Readout\n")); - u_int32_t addr = CONFIG_REG; - bus_w(addr, bus_r(addr) & ~CONFIG_CPU_RDT_MSK); - LOG(logINFO, ("\tConfig Reg 0x%x\n", bus_r(addr))); -} - -int readConfigFile() { - - if (initError == FAIL) { - return initError; - } - - if (ignoreConfigFileFlag) { - LOG(logWARNING, ("Ignoring Config file\n")); - return OK; - } - - const int fileNameSize = 128; - char fname[fileNameSize]; - if (getAbsPath(fname, fileNameSize, CONFIG_FILE) == FAIL) { - return FAIL; - } - - // open config file - FILE *fd = fopen(fname, "r"); - if (fd == NULL) { - LOG(logWARNING, ("Could not find config file %s\n", CONFIG_FILE)); - return FAIL; - } - LOG(logINFO, ("\tConfig file %s opened\n", CONFIG_FILE)); - - // Initialization - const size_t lineSize = 256; - char line[lineSize]; - memset(line, 0, lineSize); - const size_t keySize = lineSize / 2; - char key[keySize]; - memset(key, 0, keySize); - char value[keySize]; - memset(value, 0, keySize); - - // keep reading a line - while (fgets(line, lineSize, fd)) { - // ignore comments - if (line[0] == '#') - continue; - // read key & value - sscanf(line, "%s %s\n", key, value); - - // key is master/ slave flag - if (!strcasecmp(key, "masterflags")) { - if (!strcasecmp(value, "is_master")) { - master = 1; - LOG(logINFOBLUE, ("\tMaster\n")); - } else if ((!strcasecmp(value, "is_slave")) || - (!strcasecmp(value, "no_master"))) { - master = 0; - LOG(logINFOBLUE, ("\tSlave or No Master\n")); - } else { - initError = FAIL; - sprintf( - initErrorMessage, - "Could not scan masterflags %s value from config file\n", - value); - LOG(logERROR, (initErrorMessage)) - fclose(fd); - return FAIL; - } - - // not first server since detector power on - if (!detectorFirstServer) { - LOG(logWARNING, ("\tServer has been started up before. " - "Ignoring rest of config file\n")); - fclose(fd); - return OK; - } - } - - // key is not master/ slave flag - else { - // convert value to int - int ival = 0; - if (sscanf(value, "%d", &ival) <= 0) { - initError = FAIL; - sprintf(initErrorMessage, - "Could not scan parameter %s value %s from " - "config file\n", - key, value); - LOG(logERROR, (initErrorMessage)) - fclose(fd); - return FAIL; - } - // set value - if (!strcasecmp(key, "masterdefaultdelay")) - masterdefaultdelay = ival; - else if (!strcasecmp(key, "patternphase")) - patternphase = ival; - else if (!strcasecmp(key, "adcphase")) - adcphase = ival; - else if (!strcasecmp(key, "slavepatternphase")) - slavepatternphase = ival; - else if (!strcasecmp(key, "slaveadcphase")) - slaveadcphase = ival; - else if (!strcasecmp(key, "rsttosw1delay")) - rsttosw1delay = ival; - else if (!strcasecmp(key, "startacqdelay")) - startacqdelay = ival; - else { - initError = FAIL; - sprintf(initErrorMessage, - "Could not scan parameter %s from config file\n", key); - LOG(logERROR, (initErrorMessage)) - fclose(fd); - return FAIL; - } - } - } - fclose(fd); - - LOG(logINFOBLUE, - ("\tmasterdefaultdelay:%d\n" - "\tpatternphase:%d\n" - "\tadcphase:%d\n" - "\tslavepatternphase:%d\n" - "\tslaveadcphase:%d\n" - "\trsttosw1delay:%d\n" - "\tstartacqdelay:%d\n", - masterdefaultdelay, patternphase, adcphase, slavepatternphase, - slaveadcphase, rsttosw1delay, startacqdelay)); - return OK; -} - -int checkCommandLineConfiguration() { - if (masterCommandLine != -1) { -#ifdef VIRTUAL - master = masterCommandLine; -#else - initError = FAIL; - strcpy(initErrorMessage, - "Cannot set Master from command line for this detector. " - "Should have been caught before!\n"); - return FAIL; -#endif - } - return OK; -} - -void setMasterSlaveConfiguration() { - // not the first time its being read - if (!detectorFirstServer) { - return; - } - - LOG(logINFO, ("Reading Master Slave Configuration\n")); - // master configuration - if (master) { - // master default delay set, so reset delay - setDelayAfterTrigger(0); - - // Set pattern phase for the master module - u_int32_t val = - (bus_r(MULTI_PURPOSE_REG) & (~(PLL_CLK_SL_MSK))); // unset mask - bus_w(MULTI_PURPOSE_REG, val | PLL_CLK_SL_MSTR_VAL); - setPhaseShift(patternphase); - - // Set adc phase for the master module - val = (bus_r(MULTI_PURPOSE_REG) & (~(PLL_CLK_SL_MSK))); // unset mask - bus_w(MULTI_PURPOSE_REG, val | PLL_CLK_SL_MSTR_ADC_VAL); - setPhaseShift(adcphase); - - // Set pattern phase for the slave module - val = (bus_r(MULTI_PURPOSE_REG) & (~(PLL_CLK_SL_MSK))); // unset mask - bus_w(MULTI_PURPOSE_REG, val | PLL_CLK_SL_SLV_VAL); - setPhaseShift(slavepatternphase); - - // Set adc phase for the slave module - val = (bus_r(MULTI_PURPOSE_REG) & (~(PLL_CLK_SL_MSK))); // unset mask - bus_w(MULTI_PURPOSE_REG, val | PLL_CLK_SL_SLV_ADC_VAL); - setPhaseShift(slaveadcphase); - - // Set start acq delay - val = (bus_r(MULTI_PURPOSE_REG) & (~(STRT_ACQ_DLY_MSK))); // unset mask - val = val | ((startacqdelay << STRT_ACQ_DLY_OFST) & - STRT_ACQ_DLY_MSK); // set val - bus_w(MULTI_PURPOSE_REG, val); - LOG(logDEBUG1, ("\tMultipurpose reg: 0x%x\n", val)); - } - - // all configuration - Set RST to SW1 delay - u_int32_t val = - (bus_r(MULTI_PURPOSE_REG) & (~(RST_TO_SW1_DLY_MSK))); // unset mask - val = val | ((rsttosw1delay << RST_TO_SW1_DLY_OFST) & - RST_TO_SW1_DLY_MSK); // set val - bus_w(MULTI_PURPOSE_REG, val); - LOG(logDEBUG1, ("\tMultipurpose reg: 0x%x\n", val)); - - LOG(logINFO, ("\tMaster Slave Configuration has been set up\n")); -} - -/* set parameters - dr, roi */ - -int setDynamicRange(int dr) { - if (dr == 16) - return OK; - return FAIL; -} - -int getDynamicRange(int *retval) { - *retval = DYNAMIC_RANGE; - return OK; -} - -int setROI(ROI arg) { - - int adc = -1; - if (arg.xmin == -1) { - LOG(logINFO, ("Clearing ROI\n")); - rois.xmin = -1; - rois.xmax = -1; - rois.ymin = -1; - rois.ymax = -1; - } else { - LOG(logINFO, ("Setting ROI:(%d, %d, %d, %d)\n", arg.xmin, arg.xmax, - arg.ymin, arg.ymax)); - // validation - // xmin divisible by 256 and less than 1280 - if (((arg.xmin % NCHAN_PER_ADC) != 0) || - (arg.xmin >= (NCHAN * NCHIP))) { - LOG(logERROR, ("Could not set roi. xmin is invalid\n")); - return FAIL; - } - // xmax must be 255 more than xmin - if (arg.xmax != (arg.xmin + NCHAN_PER_ADC - 1)) { - LOG(logERROR, ("Could not set roi. xmax is invalid\n")); - return FAIL; - } - rois.xmin = arg.xmin; - rois.xmax = arg.xmax; - adc = arg.xmin / NCHAN_PER_ADC; - } - LOG(logINFO, ("\tAdc to be configured: %d\n", adc)); - LOG(logINFO, - ("\tROI to be configured: (%d, %d)\n", (adc == -1) ? 0 : (rois.xmin), - (adc == -1) ? (NCHIP * NCHAN - 1) : (rois.xmax))); - - // set adc of interest - setROIADC(adc); - return OK; -} - -ROI getROI() { - LOG(logINFO, ("Getting ROI:\n")); - - // print - if (rois.xmin == -1) { - LOG(logINFO, ("\tROI: None\n")); - } else { - LOG(logINFO, ("ROI: (%d,%d,%d,%d)\n", rois.xmin, rois.xmax, rois.ymin, - rois.ymax)); - } - return rois; -} - -/* parameters - timer */ -void setNumFrames(int64_t val) { - if (val > 0) { - LOG(logINFO, ("Setting number of frames %lld\n", (long long int)val)); - set64BitReg(val, SET_FRAMES_LSB_REG, SET_FRAMES_MSB_REG); - } -} - -int64_t getNumFrames() { - return get64BitReg(SET_FRAMES_LSB_REG, SET_FRAMES_MSB_REG); -} - -void setNumTriggers(int64_t val) { - if (val > 0) { - LOG(logINFO, ("Setting number of triggers %lld\n", (long long int)val)); - set64BitReg(val, SET_TRAINS_LSB_REG, SET_TRAINS_MSB_REG); - } -} - -int64_t getNumTriggers() { - return get64BitReg(SET_TRAINS_LSB_REG, SET_TRAINS_MSB_REG); -} - -int setExpTime(int64_t val) { - if (val < 0) { - LOG(logERROR, ("Invalid exptime: %lld ns\n", (long long int)val)); - return FAIL; - } - LOG(logINFO, ("Setting exptime %lld ns\n", (long long int)val)); - val = (val * 1E-9 * CLK_FREQ) + 0.5; - set64BitReg(val, SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG); - - // validate for tolerance - int64_t retval = getExpTime(); - val /= (1E-9 * CLK_FREQ); - if (val != retval) { - return FAIL; - } - return OK; -} - -int64_t getExpTime() { - return get64BitReg(SET_EXPTIME_LSB_REG, SET_EXPTIME_MSB_REG) / - (1E-9 * CLK_FREQ); -} - -int setPeriod(int64_t val) { - if (val < 0) { - LOG(logERROR, ("Invalid period: %lld ns\n", (long long int)val)); - return FAIL; - } - LOG(logINFO, ("Setting period %lld ns\n", (long long int)val)); - val = (val * 1E-9 * CLK_FREQ) + 0.5; - set64BitReg(val, SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG); - - // validate for tolerance - int64_t retval = getPeriod(); - val /= (1E-9 * CLK_FREQ); - if (val != retval) { - return FAIL; - } - return OK; -} - -int64_t getPeriod() { - return get64BitReg(SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG) / - (1E-9 * CLK_FREQ); -} - -int setDelayAfterTrigger(int64_t val) { - if (val < 0) { - LOG(logERROR, - ("Invalid delay after trigger: %lld ns\n", (long long int)val)); - return FAIL; - } - LOG(logINFO, ("Setting delay after trigger %lld ns\n", (long long int)val)); - if (master) { - val += masterdefaultdelay; - LOG(logINFO, ("\tActual Delay (master): %lld\n", (long long int)val)); - } - val = - (val * 1E-9 * CLK_FREQ) + - 0.5; // because of the master delay of 62 ns (not really double of - // clkfreq), losing precision and 0 delay becomes -31ns, so adding - // +0.5. Also adding +0.5 for more tolerance for gotthard1. - set64BitReg(val, SET_DELAY_LSB_REG, SET_DELAY_MSB_REG); - - // validate for tolerance - int64_t retval = getDelayAfterTrigger(); - val /= (1E-9 * CLK_FREQ); - if (master) { - val -= masterdefaultdelay; - } - if (val != retval) { - return FAIL; - } - return OK; -} - -int64_t getDelayAfterTrigger() { - int64_t retval = - get64BitReg(SET_DELAY_LSB_REG, SET_DELAY_MSB_REG) / (1E-9 * CLK_FREQ); - if (master) { - LOG(logDEBUG1, - ("\tActual Delay read (master): %lld\n", (long long int)retval)); - retval -= masterdefaultdelay; - } - return retval; -} - -int64_t getNumFramesLeft() { - return get64BitReg(GET_FRAMES_LSB_REG, GET_FRAMES_MSB_REG); -} - -int64_t getNumTriggersLeft() { - return get64BitReg(GET_TRAINS_LSB_REG, GET_TRAINS_MSB_REG); -} - -int64_t getPeriodLeft() { - return get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG) / - (1E-9 * CLK_FREQ); -} - -int64_t getDelayAfterTriggerLeft() { - int64_t retval = - get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG) / (1E-9 * CLK_FREQ); - if (master) { - LOG(logDEBUG1, - ("\tGetting Actual delay (master): %lld\n", (long long int)retval)); - retval -= masterdefaultdelay; - } - return retval; -} - -int64_t getExpTimeLeft() { - return get64BitReg(GET_EXPTIME_LSB_REG, GET_EXPTIME_MSB_REG) / - (1E-9 * CLK_FREQ); -} - -/* parameters - channel, chip, module, settings */ - -int setModule(sls_detector_module myMod, char *mess) { - - LOG(logINFO, ("Setting module with settings %d\n", myMod.reg)); - - // settings - setSettings((enum detectorSettings)myMod.reg); - - // set dac values - for (int i = 0; i < NDAC; ++i) - setDAC((enum DACINDEX)i, myMod.dacs[i], 0); - return OK; -} - -enum detectorSettings setSettings(enum detectorSettings sett) { - if (sett == UNINITIALIZED) - return thisSettings; - - // set settings - u_int32_t addr = GAIN_REG; - - // find conf gain value - uint32_t confgain = 0x0; - switch (sett) { - case DYNAMICGAIN: - LOG(logINFO, ("Set settings - Dyanmic Gain\n")); - confgain = GAIN_CONFGAIN_DYNMC_GAIN_VAL; - break; - case HIGHGAIN: - LOG(logINFO, ("Set settings - High Gain\n")); - confgain = GAIN_CONFGAIN_HGH_GAIN_VAL; - break; - case LOWGAIN: - LOG(logINFO, ("Set settings - Low Gain\n")); - confgain = GAIN_CONFGAIN_LW_GAIN_VAL; - break; - case MEDIUMGAIN: - LOG(logINFO, ("Set settings - Medium Gain\n")); - confgain = GAIN_CONFGAIN_MDM_GAIN_VAL; - break; - case VERYHIGHGAIN: - LOG(logINFO, ("Set settings - Very High Gain\n")); - confgain = GAIN_CONFGAIN_VRY_HGH_GAIN_VAL; - break; - default: - LOG(logERROR, - ("This settings is not defined for this detector %d\n", (int)sett)); - return -1; - } - // set conf gain - bus_w(addr, bus_r(addr) & ~GAIN_CONFGAIN_MSK); - bus_w(addr, bus_r(addr) | confgain); - LOG(logINFO, ("\tGain Reg: 0x%x\n", bus_r(addr))); - thisSettings = sett; - - return getSettings(); -} - -enum detectorSettings getSettings() { - uint32_t regval = bus_r(GAIN_REG); - uint32_t val = regval & GAIN_CONFGAIN_MSK; - switch (val) { - case GAIN_CONFGAIN_DYNMC_GAIN_VAL: - LOG(logDEBUG1, - ("Settings read: Dynamic Gain. Gain Reg: 0x%x\n", regval)); - thisSettings = DYNAMICGAIN; - break; - case GAIN_CONFGAIN_HGH_GAIN_VAL: - LOG(logDEBUG1, ("Settings read: High Gain. Gain Reg: 0x%x\n", regval)); - thisSettings = HIGHGAIN; - break; - case GAIN_CONFGAIN_LW_GAIN_VAL: - LOG(logDEBUG1, ("Settings read: Low Gain. Gain Reg: 0x%x\n", regval)); - thisSettings = LOWGAIN; - break; - case GAIN_CONFGAIN_MDM_GAIN_VAL: - LOG(logDEBUG1, - ("Settings read: Medium Gain. Gain Reg: 0x%x\n", regval)); - thisSettings = MEDIUMGAIN; - break; - case GAIN_CONFGAIN_VRY_HGH_GAIN_VAL: - LOG(logDEBUG1, - ("Settings read: Very High Gain. Gain Reg: 0x%x\n", regval)); - thisSettings = VERYHIGHGAIN; - break; - default: - thisSettings = UNDEFINED; - LOG(logERROR, ("Settings read: Undefined. Gain Reg: 0x%x\n", regval)); - } - - return thisSettings; -} - -/* parameters - dac, adc, hv */ - -void setDAC(enum DACINDEX ind, int val, int mV) { - if (val < 0) - return; - - char *dac_names[] = {DAC_NAMES}; - LOG(logINFO, ("Setting DAC %s\n", dac_names[ind])); - LOG(logDEBUG1, ("Setting dac[%d - %s]: %d %s \n", (int)ind, dac_names[ind], - val, (mV ? "mV" : "dac units"))); - int dacval = val; -#ifdef VIRTUAL - if (!mV) { - dacValues[ind] = val; - } - // convert to dac units - else if (LTC2620_VoltageToDac(val, &dacval) == OK) { - dacValues[ind] = dacval; - } -#else - if (LTC2620_SetDACValue((int)ind, val, mV, &dacval) == OK) - dacValues[ind] = dacval; -#endif -} - -int getDAC(enum DACINDEX ind, int mV) { - if (!mV) { - LOG(logDEBUG1, ("Getting DAC %d : %d dac\n", ind, dacValues[ind])); - return dacValues[ind]; - } - int voltage = -1; - LTC2620_DacToVoltage(dacValues[ind], &voltage); - LOG(logDEBUG1, - ("Getting DAC %d : %d dac (%d mV)\n", ind, dacValues[ind], voltage)); - return voltage; -} - -int getMaxDacSteps() { return LTC2620_GetMaxNumSteps(); } - -int getADC(enum ADCINDEX ind) { -#ifdef VIRTUAL - return 0; -#endif - char tempnames[2][40] = {"VRs/FPGAs Temperature", "ADCs/ASICs Temperature"}; - LOG(logDEBUG1, ("Getting Temperature for %s\n", tempnames[ind])); - - u_int32_t addr = TEMP_SPI_IN_REG; - uint32_t addrout = TEMP_SPI_OUT_REG; - const int repeats = 6; // number of register writes for delay - const int reads = 20; - u_int32_t value = 0; - - // standby, high clk, high cs - bus_w(addr, (TEMP_SPI_IN_T1_CLK_MSK | TEMP_SPI_IN_T1_CS_MSK | - TEMP_SPI_IN_T2_CLK_MSK | TEMP_SPI_IN_T2_CS_MSK)); - - // high clk low cs - bus_w(addr, (TEMP_SPI_IN_T1_CLK_MSK | TEMP_SPI_IN_T2_CLK_MSK)); - - for (int i = 0; i < reads; ++i) { - - // low clk low cs - for (int j = 0; j < repeats; ++j) - bus_w(addr, 0x0); - // high clk low cs - for (int j = 0; j < repeats; ++j) - bus_w(addr, (TEMP_SPI_IN_T1_CLK_MSK | TEMP_SPI_IN_T2_CLK_MSK)); - - // only the first time - if (i <= 10) { - if (ind == TEMP_ADC) - value = - (value << 1) + (bus_r(addrout) & TEMP_SPI_OUT_T1_DT_MSK); - else - value = - (value << 1) + (bus_r(addrout) & TEMP_SPI_OUT_T2_DT_MSK); - } - } - - // standby high clk, high cs - bus_w(addr, (TEMP_SPI_IN_T1_CLK_MSK | TEMP_SPI_IN_T1_CS_MSK | - TEMP_SPI_IN_T2_CLK_MSK | TEMP_SPI_IN_T2_CS_MSK)); - - LOG(logDEBUG1, ("\tInitial Temperature value: %u\n", value)); - // conversion - value = value / 4.0; - LOG(logINFO, ("\tTemperature %s: %f °C\n", tempnames[ind], value)); - return value; -} - -int setHighVoltage(int val) { - u_int32_t addr = HV_REG; - u_int32_t sel = 0x0; - - // set - if (val >= 0) { - LOG(logINFO, ("Setting High Voltage to %d\n", val)); - switch (val) { - case 0: - break; - case 90: - sel = HV_SEL_90_VAL; - break; - case 110: - sel = HV_SEL_110_VAL; - break; - case 120: - sel = HV_SEL_120_VAL; - break; - case 150: - sel = HV_SEL_150_VAL; - break; - case 180: - sel = HV_SEL_180_VAL; - break; - case 200: - sel = HV_SEL_200_VAL; - break; - default: - LOG(logERROR, - ("%d high voltage is not defined for this detector\n", val)); - return setHighVoltage(-1); - } - LOG(logDEBUG1, ("\tHigh voltage value to be sent: 0x%x\n", sel)); - - // switch off high voltage - bus_w(addr, (bus_r(addr) & ~HV_ENBL_MSK)); - - // unset mask and set value - bus_w(addr, (bus_r(addr) & ~HV_SEL_MSK) | sel); - - // switch on high voltage - if (val > 0) - bus_w(addr, bus_r(addr) | HV_ENBL_MSK); - } - - // get - u_int32_t retval = 0; - u_int32_t regval = bus_r(addr); - LOG(logDEBUG1, ("\tHigh voltage value read: 0x%x\n", regval)); - - // if high voltage was enabled, find value - if (regval & HV_ENBL_MSK) { - switch (regval & HV_SEL_MSK) { - case HV_SEL_90_VAL: - retval = 90; - break; - case HV_SEL_110_VAL: - retval = 110; - break; - case HV_SEL_120_VAL: - retval = 120; - break; - case HV_SEL_150_VAL: - retval = 150; - break; - case HV_SEL_180_VAL: - retval = 180; - break; - default: - retval = 200; - break; - } - } - LOG(logDEBUG1, ("\tHigh Voltage: %d\n", retval)); - return retval; -} - -/* parameters - timing, extsig */ - -int isMaster(int *retval) { - *retval = master; - return OK; -} - -void setTiming(enum timingMode arg) { - u_int32_t addr = EXT_SIGNAL_REG; - switch (arg) { - case AUTO_TIMING: - LOG(logINFO, ("Set Timing: Auto\n")); - bus_w(addr, EXT_SIGNAL_OFF_VAL); - break; - case TRIGGER_EXPOSURE: - if (signalMode == TRIGGER_IN_FALLING_EDGE) { - LOG(logINFO, ("Set Timing: Trigger (Falling Edge)\n")); - bus_w(addr, EXT_SIGNAL_TRGGR_IN_FLLNG_VAL); - } else { - LOG(logINFO, ("Set Timing: Trigger (Rising Edge)\n")); - bus_w(addr, EXT_SIGNAL_TRGGR_IN_RSNG_VAL); - } - break; - default: - LOG(logERROR, ("Unknown timing mode %d for this detector\n", (int)arg)); - } -} - -enum timingMode getTiming() { - u_int32_t regval = bus_r(EXT_SIGNAL_REG); - switch (regval) { - case EXT_SIGNAL_TRGGR_IN_RSNG_VAL: - case EXT_SIGNAL_TRGGR_IN_FLLNG_VAL: - return TRIGGER_EXPOSURE; - default: - return AUTO_TIMING; - } -} - -void setExtSignal(int signalIndex, enum externalSignalFlag mode) { - LOG(logDEBUG1, ("Setting signal flag[%d] to %d\n", signalIndex, mode)); - switch (mode) { - case TRIGGER_IN_RISING_EDGE: - LOG(logINFO, - ("Setting External Signal flag: Trigger in Rising Edge\n")); - break; - case TRIGGER_IN_FALLING_EDGE: - LOG(logINFO, - ("Setting External Signal flag: Trigger in Falling Edge\n")); - break; - default: - LOG(logERROR, - ("Extsig (signal mode) %d not defined for this detector\n", mode)); - return; - } - signalMode = mode; - setTiming(getTiming()); -} - -int getExtSignal(int signalIndex) { - LOG(logDEBUG1, ("Getting signal flag[%d]\n", signalIndex)); - return signalMode; -} - -/* configure mac */ - -int getNumberofUDPInterfaces() { return 1; } - -void calcChecksum(mac_conf *mac, int sourceip, int destip) { - mac->ip.ip_ver = 0x4; - mac->ip.ip_ihl = 0x5; - mac->ip.ip_tos = 0x0; - mac->ip.ip_len = ipPacketSize; - mac->ip.ip_ident = 0x0000; - mac->ip.ip_flag = 0x2; // not nibble aligned (flag& offset - mac->ip.ip_offset = 0x00; - mac->ip.ip_ttl = 0x70; - mac->ip.ip_protocol = 0x11; - mac->ip.ip_chksum = 0x0000; // pseudo - mac->ip.ip_sourceip = sourceip; - mac->ip.ip_destip = destip; - LOG(logDEBUG1, ("\tIP TTL: 0x%x\n", mac->ip.ip_ttl)); - - int count = sizeof(mac->ip); - unsigned short *addr; - addr = (unsigned short *)(&( - mac->ip)); /* warning: assignment from incompatible pointer type */ - - long int sum = 0; - while (count > 1) { - sum += *addr++; - count -= 2; - } - if (count > 0) - sum += *addr; // Add left-over byte, if any - while (sum >> 16) - sum = (sum & 0xffff) + (sum >> 16); // Fold 32-bit sum to 16 bits - long int checksum = (~sum) & 0xffff; - LOG(logINFO, ("\tIP checksum : 0x%lx\n", checksum)); - mac->ip.ip_chksum = checksum; -} - -int configureMAC() { - uint32_t srcip = udpDetails[0].srcip; - uint32_t dstip = udpDetails[0].dstip; - uint64_t srcmac = udpDetails[0].srcmac; - uint64_t dstmac = udpDetails[0].dstmac; - uint16_t srcport = udpDetails[0].srcport; - uint16_t dstport = udpDetails[0].dstport; - - LOG(logINFOBLUE, ("Configuring MAC\n")); - char src_mac[MAC_ADDRESS_SIZE], src_ip[INET_ADDRSTRLEN], - dst_mac[MAC_ADDRESS_SIZE], dst_ip[INET_ADDRSTRLEN]; - getMacAddressinString(src_mac, MAC_ADDRESS_SIZE, srcmac); - getMacAddressinString(dst_mac, MAC_ADDRESS_SIZE, dstmac); - getIpAddressinString(src_ip, srcip); - getIpAddressinString(dst_ip, dstip); - - LOG(logINFO, ("\tSource IP : %s\n" - "\tSource MAC : %s\n" - "\tSource Port : %hu\n" - "\tDest IP : %s\n" - "\tDest MAC : %s\n" - "\tDest Port : %hu\n", - src_ip, src_mac, srcport, dst_ip, dst_mac, dstport)); - -#ifdef VIRTUAL - if (setUDPDestinationDetails(0, 0, dst_ip, dstport) == FAIL) { - LOG(logERROR, ("could not set udp 1G destination IP and port\n")); - return FAIL; - } - return OK; -#endif - u_int32_t addr = MULTI_PURPOSE_REG; - - LOG(logDEBUG1, ("\tRoi: %d, Ip Packet size: %d UDP Packet size: %d\n", - adcConfigured, ipPacketSize, udpPacketSize)); - - // reset mac - bus_w(addr, bus_r(addr) | RST_MSK); - LOG(logDEBUG1, ("\tReset Mac. MultiPurpose reg: 0x%x\n", bus_r(addr))); - - usleep(500000); - - // release reset - bus_w(addr, bus_r(addr) & (~RST_MSK)); - LOG(logDEBUG1, ("\tReset released. MultiPurpose reg: 0x%x\n", bus_r(addr))); - - // write shadow regs - bus_w(addr, bus_r(addr) | (ENT_RSTN_MSK | WRT_BCK_MSK)); - LOG(logDEBUG1, - ("\tWrite shadow regs. MultiPurpose reg: 0x%x\n", bus_r(addr))); - - // release write back - bus_w(addr, bus_r(addr) & (~WRT_BCK_MSK)); - LOG(logDEBUG1, - ("\tWrite back released. MultiPurpose reg: 0x%x\n", bus_r(addr))); - - LOG(logDEBUG1, ("\tConfiguring MAC CONF\n")); - mac_conf *mac_conf_regs = (mac_conf *)(Blackfin_getBaseAddress() + - ENET_CONF_REG / 2); // direct write - mac_conf_regs->mac.mac_dest_mac1 = ((dstmac >> (8 * 5)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac2 = ((dstmac >> (8 * 4)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac3 = ((dstmac >> (8 * 3)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac4 = ((dstmac >> (8 * 2)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac5 = ((dstmac >> (8 * 1)) & 0xFF); - mac_conf_regs->mac.mac_dest_mac6 = ((dstmac >> (8 * 0)) & 0xFF); - LOG(logDEBUG1, - ("\tDestination Mac: %llx %x:%x:%x:%x:%x:%x\n", dstmac, - mac_conf_regs->mac.mac_dest_mac1, mac_conf_regs->mac.mac_dest_mac2, - mac_conf_regs->mac.mac_dest_mac3, mac_conf_regs->mac.mac_dest_mac4, - mac_conf_regs->mac.mac_dest_mac5, mac_conf_regs->mac.mac_dest_mac6)); - mac_conf_regs->mac.mac_src_mac1 = ((srcmac >> (8 * 5)) & 0xFF); - mac_conf_regs->mac.mac_src_mac2 = ((srcmac >> (8 * 4)) & 0xFF); - mac_conf_regs->mac.mac_src_mac3 = ((srcmac >> (8 * 3)) & 0xFF); - mac_conf_regs->mac.mac_src_mac4 = ((srcmac >> (8 * 2)) & 0xFF); - mac_conf_regs->mac.mac_src_mac5 = ((srcmac >> (8 * 1)) & 0xFF); - mac_conf_regs->mac.mac_src_mac6 = ((srcmac >> (8 * 0)) & 0xFF); - LOG(logDEBUG1, - ("\tSource Mac: %llx %x:%x:%x:%x:%x:%x\n", srcmac, - mac_conf_regs->mac.mac_src_mac1, mac_conf_regs->mac.mac_src_mac2, - mac_conf_regs->mac.mac_src_mac3, mac_conf_regs->mac.mac_src_mac4, - mac_conf_regs->mac.mac_src_mac5, mac_conf_regs->mac.mac_src_mac6)); - mac_conf_regs->mac.mac_ether_type = 0x0800; // ipv4 - - calcChecksum(mac_conf_regs, srcip, dstip); - mac_conf_regs->udp.udp_srcport = srcport; - mac_conf_regs->udp.udp_destport = dstport; - mac_conf_regs->udp.udp_len = udpPacketSize; - mac_conf_regs->udp.udp_chksum = 0x0000; - - LOG(logDEBUG1, ("\tConfiguring TSE\n")); - tse_conf *tse_conf_regs = (tse_conf *)(Blackfin_getBaseAddress() + - TSE_CONF_REG / 2); // direct write - tse_conf_regs->rev = 0xA00; - tse_conf_regs->scratch = 0xCCCCCCCC; - tse_conf_regs->command_config = 0xB; - tse_conf_regs->mac_0 = 0x17231C00; - tse_conf_regs->mac_1 = 0xCB4A; - tse_conf_regs->frm_length = - 0x5DC; // max frame length (1500 bytes) (was 0x41C) - tse_conf_regs->pause_quant = 0x0; - tse_conf_regs->rx_section_empty = 0x7F0; - tse_conf_regs->rx_section_full = 0x10; - tse_conf_regs->tx_section_empty = 0x3F8; // was 0x7F0; - tse_conf_regs->tx_section_full = 0x16; - tse_conf_regs->rx_almost_empty = 0x8; - tse_conf_regs->rx_almost_full = 0x8; - tse_conf_regs->tx_almost_empty = 0x8; - tse_conf_regs->tx_almost_full = 0x3; - tse_conf_regs->mdio_addr0 = 0x12; - tse_conf_regs->mdio_addr1 = 0x0; - mac_conf_regs->cdone = 0xFFFFFFFF; - - bus_w(addr, bus_r(addr) | (INT_RSTN_MSK | WRT_BCK_MSK)); - LOG(logDEBUG1, - ("\tWrite shadow regs with int reset. MultiPurpose reg: 0x%x\n", - bus_r(addr))); - - usleep(100000); - - // release write back - bus_w(addr, bus_r(addr) & (~WRT_BCK_MSK)); - LOG(logDEBUG1, - ("\tWrite back released. MultiPurpose reg: 0x%x\n", bus_r(addr))); - - bus_w(addr, bus_r(addr) | SW1_MSK); - LOG(logDEBUG1, ("\tSw1. MultiPurpose reg: 0x%x\n", bus_r(addr))); - - usleep(1000 * 1000); - LOG(logDEBUG1, ("\tConfigure Mac Done\n")); - { - /** send out first image as first packet does not give 0xcacacaca - * (needed to know if first image when switching back and forth between - * roi and no roi - */ - LOG(logINFOBLUE, ("Sending an image to counter the packet numbers\n")); - // remember old parameters - enum timingMode oldtiming = getTiming(); - uint64_t oldframes = getNumFrames(); - uint64_t oldtriggers = getNumTriggers(); - uint64_t oldPeriod = getPeriod(); - uint64_t oldExptime = getExpTime(); - - // set to basic parameters - LOG(logINFO, ("\tSetting basic parameters\n" - "\tTiming: auto\n" - "\tframes: 1\n" - "\ttriggers: 1\n" - "\tperiod: 1s\n" - "\texptime: 900ms\n")); - setTiming(AUTO_TIMING); - setNumFrames(1); - setNumTriggers(1); - setPeriod(1e9); // important to keep this until we have to wait for - // acquisition to start - setExpTime(900 * 1000); - - // take an image - if (master) - usleep(1 * 1000 * 1000); // required to ensure master starts - // acquisition only after slave has changed - // to basic parameters and is waiting - - int loop = 0; - startStateMachine(); - // wait for acquisition to start (trigger from master) - LOG(logINFO, ("\tWaiting for acquisition to start\n")); - while (!runBusy()) { - usleep(0); - ++loop; - } - - LOG(logINFO, ("\twaited %d loops to start\n", loop)); - LOG(logINFO, ("\tWaiting for acquisition to end (frames left: %lld)\n", - (long long int)getNumFramesLeft())); - // wait for status to be done - while (runBusy()) { - usleep(500); - } - - // set to previous parameters - LOG(logINFO, ("\tSetting previous parameters:\n" - "\tTiming: %d\n" - "\tframes: %lld\n" - "\ttriggers: %lld\n" - "\tperiod: %lld ns\n" - "\texptime:%lld ns\n", - (int)oldtiming, (long long int)oldframes, - (long long int)oldtriggers, (long long int)oldPeriod, - (long long int)oldExptime)); - setTiming(oldtiming); - setNumFrames(oldframes); - setNumTriggers(oldtriggers); - setPeriod(oldPeriod); - setExpTime(oldExptime); - LOG(logINFOBLUE, ("Done sending a frame at configuration\n")); - } - return OK; -} - -int getAdcConfigured() { return adcConfigured; } - -int setDetectorPosition(int pos[]) { - memcpy(detPos, pos, sizeof(detPos)); - return OK; -} - -int *getDetectorPosition() { return detPos; } - -/* gotthard specific - adc phase */ -int setPhase(enum CLKINDEX ind, int val, int degrees) { - if (ind != ADC_CLK) { - LOG(logERROR, ("Unknown clock index: %d\n", ind)); - return FAIL; - } - if (degrees != 0) { - LOG(logERROR, ("Cannot set phase in degrees\n")); - return FAIL; - } - setPhaseShift(val); - return OK; -} - -/* aquisition */ - -int startStateMachine() { -#ifdef VIRTUAL - // create udp socket - if (createUDPSocket(0) != OK) { - return FAIL; - } - LOG(logINFOBLUE, ("Starting State Machine\n")); - if (sharedMemory_getStop() != 0) { - LOG(logERROR, ("Cant start acquisition. " - "Stop server has not updated stop status to 0\n")); - return FAIL; - } - sharedMemory_setStatus(RUNNING); - if (pthread_create(&pthread_virtual_tid, NULL, &start_timer, NULL)) { - LOG(logERROR, ("Could not start Virtual acquisition thread\n")); - sharedMemory_setStatus(IDLE); - return FAIL; - } - LOG(logINFOGREEN, ("Virtual Acquisition started\n")); - return OK; -#endif - LOG(logINFOBLUE, ("Starting State Machine\n")); - LOG(logINFO, ("#frames to acquire:%lld\n", (long long int)getNumFrames())); - - cleanFifos(); - - // start state machine - bus_w16(CONTROL_REG, CONTROL_STRT_ACQ_MSK | CONTROL_STRT_EXPSR_MSK); - bus_w16(CONTROL_REG, 0x0); - runState(logINFO); - return OK; -} - -#ifdef VIRTUAL -void *start_timer(void *arg) { - if (!isControlServer) { - return NULL; - } - - int64_t periodNs = getPeriod(); - int numFrames = (getNumFrames() * getNumTriggers()); - int64_t expUs = getExpTime() / 1000; - - int imageSize = - adcConfigured == -1 ? DATA_BYTES : NCHAN_PER_ADC * NUM_BITS_PER_PIXEL; - int dataSize = adcConfigured == -1 ? 1280 : 512; - int packetSize = adcConfigured == -1 ? 1286 : 518; - int packetsPerFrame = adcConfigured == -1 ? 2 : 1; - - // Generate Data - char imageData[imageSize]; - memset(imageData, 0, imageSize); - if (adcConfigured == -1) { - // split dereferencing for rhel7 warnings - uint32_t *start = (uint32_t *)imageData; - *start = 0xCACACACA; - } - for (int i = sizeof(uint32_t); i < imageSize; i += sizeof(uint16_t)) { - *((uint16_t *)(imageData + i)) = (uint16_t)i; - } - - // Send data - // loop over number of frames - for (int frameNr = 0; frameNr != numFrames; ++frameNr) { - - // check if manual stop - if (sharedMemory_getStop() == 1) { - break; - } - - // sleep for exposure time - struct timespec begin, end; - clock_gettime(CLOCK_REALTIME, &begin); - usleep(expUs); - - int srcOffset = 0; - // loop packet - for (int i = 0; i != packetsPerFrame; ++i) { - - char packetData[packetSize]; - memset(packetData, 0, packetSize); - // set header - // split dereferencing for rhel7 warnings - uint16_t *fnum = (uint16_t *)packetData; - *fnum = virtual_currentFrameNumber; - ++virtual_currentFrameNumber; - - // fill data - memcpy(packetData + 4, imageData + srcOffset, dataSize); - srcOffset += dataSize; - - sendUDPPacket(0, 0, packetData, packetSize); - } - LOG(logINFO, - ("Sent frame: %d [%d]\n", frameNr, virtual_currentFrameNumber)); - clock_gettime(CLOCK_REALTIME, &end); - int64_t timeNs = - ((end.tv_sec - begin.tv_sec) * 1E9 + (end.tv_nsec - begin.tv_nsec)); - - // sleep for (period - exptime) - if (frameNr < numFrames) { // if there is a next frame - if (periodNs > timeNs) { - usleep((periodNs - timeNs) / 1000); - } - } - } - - closeUDPSocket(0); - - sharedMemory_setStatus(IDLE); - LOG(logINFOBLUE, ("Transmitting frames done\n")); - return NULL; -} -#endif - -int stopStateMachine() { - LOG(logINFORED, ("Stopping State Machine\n")); - // if scan active, stop scan - if (sharedMemory_getScanStatus() == RUNNING) { - sharedMemory_setScanStop(1); - } -#ifdef VIRTUAL - if (!isControlServer) { - sharedMemory_setStop(1); - // read till status is idle - while (sharedMemory_getStatus() == RUNNING) - usleep(500); - sharedMemory_setStop(0); - LOG(logINFO, ("Stopped State Machine\n")); - } - return OK; -#endif - // stop state machine - bus_w16(CONTROL_REG, CONTROL_STP_ACQ_MSK); - usleep(100); - bus_w16(CONTROL_REG, 0x0); - - // check - usleep(500); - if ((runState(logDEBUG1) & STATUS_RN_MSHN_BSY_MSK)) { - LOG(logERROR, ("\tFailed to stop state machine.\n")); - runState(logINFORED); - return FAIL; - } - - runState(logINFO); - return OK; -} - -enum runStatus getRunStatus() { - LOG(logDEBUG1, ("Getting status\n")); - // scan error or running - if (sharedMemory_getScanStatus() == ERROR) { - LOG(logINFOBLUE, ("Status: scan ERROR\n")); - return ERROR; - } - if (sharedMemory_getScanStatus() == RUNNING) { - LOG(logINFOBLUE, ("Status: scan RUNNING\n")); - return RUNNING; - } -#ifdef VIRTUAL - if (sharedMemory_getStatus() == RUNNING) { - LOG(logINFOBLUE, ("Status: RUNNING\n")); - return RUNNING; - } - LOG(logINFOBLUE, ("Status: IDLE\n")); - return IDLE; -#endif - - enum runStatus s = IDLE; - u_int32_t retval = runState(logINFO); - - // finished (external stop or fifo full) - if (retval & STATUS_RN_FNSHD_MSK) { - LOG(logINFORED, ("Status: Stopped\n")); - s = STOPPED; - - LOG(logINFO, ("\t Reading status reg again\n")); - retval = runState(logINFO); - // fifo full - if (runState(logDEBUG1) & STATUS_RN_FNSHD_MSK) { - LOG(logINFORED, ("Status: Error\n")); - runState(logINFORED); - s = ERROR; - } - } - - // error (fifo full) - else if (retval & STATUS_SM_FF_FLL_MSK) { - LOG(logINFORED, ("Status: Error\n")); - s = ERROR; - } - - // not running - else if (!(retval & STATUS_RN_BSY_MSK)) { - // read last frames - if (retval & STATUS_RD_MSHN_BSY_MSK) { - LOG(logINFOBLUE, ("Status: Read Machine Busy\n")); - s = TRANSMITTING; - } - // ??? - else if (retval & STATUS_ALL_FF_EMPTY_MSK) { - LOG(logINFOBLUE, ("Status: Data in Fifo\n")); - s = TRANSMITTING; - } - // idle, unknown - else if (!(retval & STATUS_IDLE_MSK)) { - LOG(logINFOBLUE, ("Status: IDLE\n")); - s = IDLE; - } else { - LOG(logINFORED, - ("Status: Unknown Status: 0x%x. Trying again.\n", retval)); - for (int iloop = 0; iloop < 10; ++iloop) { - usleep(1000 * 1000); - if (runState(logDEBUG1) != retval) - return getRunStatus(); - } - s = ERROR; - } - } - - // running - else { - if (retval & STATUS_WTNG_FR_TRGGR_MSK) { - LOG(logINFOBLUE, ("Status: Waiting\n")); - s = WAITING; - } else { - LOG(logINFOBLUE, ("Status: Running\n")); - s = RUNNING; - } - } - - return s; -} - -void waitForAcquisitionEnd() { - while (runBusy()) { - usleep(500); - } -#ifndef VIRTUAL - int64_t retval = getNumFramesLeft() + 1; - if (retval > -1) { - LOG(logINFORED, ("%lld frames left\n", (long long int)retval)); - } -#endif - LOG(logINFOGREEN, ("Blocking Acquisition done\n")); -} - -u_int32_t runBusy() { -#ifdef VIRTUAL - return ((sharedMemory_getStatus() == RUNNING) ? 1 : 0); -#endif - return runState(logDEBUG1) & STATUS_RN_BSY_MSK; -} - -u_int32_t runState(enum TLogLevel lev) { -#ifdef VIRTUAL - return (int)sharedMemory_getStatus(); -#endif - u_int32_t s = bus_r(STATUS_REG); - LOG(lev, ("Status Register: 0x%08x\n", s)); - return s; -} - -/* common */ - -int calculateDataBytes() { return DATA_BYTES; } - -int getTotalNumberOfChannels() { - return (getNumberOfChannelsPerChip() * getNumberOfChips()); -} -int getNumberOfChips() { return NCHIP; } -int getNumberOfDACs() { return NDAC; } -int getNumberOfChannelsPerChip() { return NCHAN; } diff --git a/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h deleted file mode 100644 index ad46b59ac..000000000 --- a/slsDetectorServers/gotthardDetectorServer/slsDetectorServer_defs.h +++ /dev/null @@ -1,159 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0-or-other -// Copyright (C) 2021 Contributors to the SLS Detector Package -#pragma once -#include "sls/sls_detector_defs.h" -#include - -#define NUM_HARDWARE_VERSIONS (2) -#define HARDWARE_VERSION_NUMBERS \ - { 0x1, 0x2 } -#define HARDWARE_VERSION_NAMES \ - { "1.0", "2.0" } - -#define LINKED_SERVER_NAME "gotthardDetectorServer" - -#ifdef VIRTUAL -#define CTRL_SRVR_INIT_TIME_US (2 * 1000 * 1000) -#else -#define CTRL_SRVR_INIT_TIME_US (300 * 1000) -#endif - -/* Enums */ -enum ADCINDEX { TEMP_FPGA, TEMP_ADC }; -enum DACINDEX { - G_VREF_DS, - G_VCASCN_PB, - G_VCASCP_PB, - G_VOUT_CM, - G_VCASC_OUT, - G_VIN_CM, - G_VREF_COMP, - G_IB_TESTC -}; -enum CLKINDEX { ADC_CLK, NUM_CLOCKS }; -#define CLK_NAMES "adc" - -#define DAC_NAMES \ - "vref_ds", "vcascn_pb", "vcascp_pb", "vout_cm", "vcasc_out", "vin_cm", \ - "vref_comp", "ib_testc" - -#define DEFAULT_DAC_VALS \ - { \ - 660, /* G_VREF_DS */ \ - 650, /* G_VCASCN_PB */ \ - 1480, /* G_VCASCP_PB */ \ - 1520, /* G_VOUT_CM */ \ - 1320, /* G_VCASC_OUT */ \ - 1350, /* G_VIN_CM */ \ - 350, /* G_VREF_COMP */ \ - 2001 /* G_IB_TESTC */ \ - }; - -/* for 25 um */ -#define CONFIG_FILE "config_gotthard.txt" - -/* Hardware Definitions */ -#define NCHAN (128) -#define NCHIP (10) -#define NDAC (8) -#define NCHIPS_PER_ADC (2) -#define NCHAN_PER_ADC (256) -#define DYNAMIC_RANGE (16) -#define NUM_BITS_PER_PIXEL (DYNAMIC_RANGE / 8) -#define DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL) -#define CLK_FREQ (32007729) // Hz -#define MAX_EXT_SIGNALS (1) - -/** Firmware Definitions */ -#define IP_PACKET_SIZE_NO_ROI \ - (NCHIP * (NCHAN / 2) * 2 + 14 + 20) // 2 packets, so divide by 2 -#define IP_PACKET_SIZE_ROI (NCHIPS_PER_ADC * NCHAN * 2 + 14 + 20) - -#define UDP_PACKETSIZE_NO_ROI \ - (NCHIP * (NCHAN / 2) * 2 + 4 + 8 + 2) // 2 packets, so divide by 2 -#define UDP_PACKETSIZE_ROI (NCHIPS_PER_ADC * NCHAN * 2 + 4 + 8 + 2) - -/** Default Parameters */ -#define DEFAULT_NUM_FRAMES (1) -#define DEFAULT_NUM_CYCLES (1) -#define DEFAULT_EXPTIME (1 * 1000 * 1000) // 1 ms -#define DEFAULT_PERIOD (1 * 1000 * 1000 * 1000) // 1 s -#define DEFAULT_DELAY (0) -#define DEFAULT_SETTINGS (DYNAMICGAIN) -#define DEFAULT_TIMING_MODE (AUTO_TIMING) -#define DEFAULT_TRIGGER_MODE (TRIGGER_IN_RISING_EDGE) -#define DEFAULT_HIGH_VOLTAGE (0) -#define DEFAULT_PHASE_SHIFT (120) -#define DEFAULT_TX_UDP_PORT (0xE185) - -#define DAC_MIN_MV (0) -#define DAC_MAX_MV (2500) - -/** ENEt conf structs */ -typedef struct mac_header_struct { - u_int8_t mac_dest_mac2; - u_int8_t mac_dest_mac1; - u_int8_t mac_dummy1; - u_int8_t mac_dummy2; - u_int8_t mac_dest_mac6; - u_int8_t mac_dest_mac5; - u_int8_t mac_dest_mac4; - u_int8_t mac_dest_mac3; - u_int8_t mac_src_mac4; - u_int8_t mac_src_mac3; - u_int8_t mac_src_mac2; - u_int8_t mac_src_mac1; - u_int16_t mac_ether_type; - u_int8_t mac_src_mac6; - u_int8_t mac_src_mac5; -} mac_header; - -typedef struct ip_header_struct { - u_int16_t ip_len; - u_int8_t ip_tos; - u_int8_t ip_ihl : 4, ip_ver : 4; - u_int16_t ip_offset : 13, ip_flag : 3; - u_int16_t ip_ident; - u_int16_t ip_chksum; - u_int8_t ip_protocol; - u_int8_t ip_ttl; - u_int32_t ip_sourceip; - u_int32_t ip_destip; -} ip_header; - -typedef struct udp_header_struct { - u_int16_t udp_destport; - u_int16_t udp_srcport; - u_int16_t udp_chksum; - u_int16_t udp_len; -} udp_header; - -typedef struct mac_conf_struct { - mac_header mac; - ip_header ip; - udp_header udp; - u_int32_t npack; - u_int32_t lpack; - u_int32_t npad; - u_int32_t cdone; -} mac_conf; - -typedef struct tse_conf_struct { - u_int32_t rev; // 0x0 - u_int32_t scratch; - u_int32_t command_config; - u_int32_t mac_0; // 0x3 - u_int32_t mac_1; - u_int32_t frm_length; - u_int32_t pause_quant; - u_int32_t rx_section_empty; // 0x7 - u_int32_t rx_section_full; - u_int32_t tx_section_empty; - u_int32_t tx_section_full; - u_int32_t rx_almost_empty; // 0xB - u_int32_t rx_almost_full; - u_int32_t tx_almost_empty; - u_int32_t tx_almost_full; - u_int32_t mdio_addr0; // 0xF - u_int32_t mdio_addr1; -} tse_conf; diff --git a/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt b/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt index 4e042c931..3fb8d956d 100644 --- a/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/jungfrauDetectorServer/CMakeLists.txt @@ -36,6 +36,10 @@ set_target_properties(jungfrauDetectorServer_virtual PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) +# to compile fore 32 bit on a 64 bit machine +#target_compile_options(jungfrauDetectorServer_virtual PRIVATE -m32) +#target_link_options(jungfrauDetectorServer_virtual PRIVATE -m32) + install(TARGETS jungfrauDetectorServer_virtual EXPORT "${TARGETS_EXPORT_NAME}" RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} diff --git a/slsDetectorServers/jungfrauDetectorServer/Makefile b/slsDetectorServers/jungfrauDetectorServer/Makefile index b54c0c188..881f2e660 100755 --- a/slsDetectorServers/jungfrauDetectorServer/Makefile +++ b/slsDetectorServers/jungfrauDetectorServer/Makefile @@ -24,11 +24,10 @@ version: clean versioning $(PROGS) boot: $(OBJS) -version_branch=$(API_BRANCH) version_name=APIJUNGFRAU version_path=slsDetectorServers/jungfrauDetectorServer versioning: - cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path) $(version_branch); tput sgr0;` + cd ../../ && echo $(PWD) && echo `tput setaf 6; python updateAPIVersion.py $(version_name) $(version_path); tput sgr0;` $(PROGS): $(OBJS) diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 653d6fba5..bdcdb373f 100755 Binary files a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer and b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer differ diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index b4eb368de..9ddc04c89 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -555,6 +555,7 @@ void setupDetector() { setNextFrameNumber(DEFAULT_STARTING_FRAME_NUMBER); // temp threshold and reset event + setTemperatureControl(DEFAULT_TMP_CNTRL); setThresholdTemperature(DEFAULT_TMP_THRSHLD); setTemperatureEvent(0); if (getChipVersion() == 11) { @@ -1973,9 +1974,6 @@ int autoCompDisable(int on) { } int setComparatorDisableTime(int64_t val) { - if (getChipVersion() != 11) { - return FAIL; - } if (val < 0) { LOG(logERROR, ("Invalid comp disable time: %lld ns\n", (long long int)val)); @@ -2254,7 +2252,6 @@ int setThresholdTemperature(int val) { double ftemp = (double)temp / 1000.00; LOG(logDEBUG1, ("Threshold Temperature read %f °C\n", ftemp)); - return temp; } @@ -2734,7 +2731,8 @@ int startStateMachine() { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); sharedMemory_setStatus(IDLE); return FAIL; - } + } else + pthread_detach(pthread_virtual_tid); LOG(logINFOGREEN, ("Virtual Acquisition started\n")); return OK; #endif @@ -2790,9 +2788,9 @@ void *start_timer(void *arg) { } if ((i % 1024) < 300) { - gainVal = 1; + gainVal = 0; } else if ((i % 1024) < 600) { - gainVal = 2; + gainVal = 1; } else { gainVal = 3; } @@ -2816,7 +2814,8 @@ void *start_timer(void *arg) { getNextFrameNumber(&frameNr); int iRxEntry = firstDest; for (int iframes = 0; iframes != numFrames; ++iframes) { - usleep(transmissionDelayUs); + if (transmissionDelayUs) + usleep(transmissionDelayUs); // check if manual stop if (sharedMemory_getStop() == 1) { @@ -2829,17 +2828,29 @@ void *start_timer(void *arg) { clock_gettime(CLOCK_REALTIME, &begin); usleep(expUs); +#ifdef TEST_CHANGE_GAIN_EVERY_FRAME // change gain and data for every frame { const int npixels = (NCHAN * NCHIP); + + // random gain values, 2 becomes 3 as 2 is invalid + int randomGainValues[3] = {0}; + srand(time(0)); + for (int i = 0; i != 3; ++i) { + int r = rand() % 3; + if (r == 2) + r = 3; + randomGainValues[i] = r; + } + for (int i = 0; i < npixels; ++i) { int gainVal = 0; if ((i % 1024) < 300) { - gainVal = 1 + iframes; + gainVal = randomGainValues[0]; } else if ((i % 1024) < 600) { - gainVal = 2 + iframes; + gainVal = randomGainValues[1]; } else { - gainVal = 3 + iframes; + gainVal = randomGainValues[2]; } int dataVal = *((uint16_t *)(imageData + i * sizeof(uint16_t))); @@ -2850,7 +2861,7 @@ void *start_timer(void *arg) { (uint16_t)pixelVal; } } - +#endif int srcOffset = 0; int srcOffset2 = DATA_BYTES / 2; int row0 = (numInterfaces == 1 ? detPos[1] : detPos[3]); diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index 84c9647a5..cc2b0928b 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -5,8 +5,8 @@ #include "sls/sls_detector_defs.h" #define MIN_REQRD_VRSN_T_RD_API 0x171220 -#define REQRD_FRMWRE_VRSN_BOARD2 0x230920 // 1.0 pcb (version = 010) -#define REQRD_FRMWRE_VRSN 0x230921 // 2.0 pcb (version = 011) +#define REQRD_FRMWRE_VRSN_BOARD2 0x250209 // 1.0 pcb (version = 010) +#define REQRD_FRMWRE_VRSN 0x250208 // 2.0 pcb (version = 011) #define NUM_HARDWARE_VERSIONS (2) #define HARDWARE_VERSION_NUMBERS \ @@ -48,6 +48,7 @@ #define DEFAULT_SETTINGS (GAIN0) #define DEFAULT_GAINMODE (DYNAMIC) #define DEFAULT_TX_UDP_PORT (0x7e9a) +#define DEFAULT_TMP_CNTRL (1) #define DEFAULT_TMP_THRSHLD (65 * 1000) // milli degree Celsius #define DEFAULT_NUM_STRG_CLLS (0) #define DEFAULT_STRG_CLL_STRT (0xf) diff --git a/slsDetectorServers/moenchDetectorServer/Makefile b/slsDetectorServers/moenchDetectorServer/Makefile index 5f7457c19..71ebbf4fd 100755 --- a/slsDetectorServers/moenchDetectorServer/Makefile +++ b/slsDetectorServers/moenchDetectorServer/Makefile @@ -24,11 +24,10 @@ version: clean versioning $(PROGS) boot: $(OBJS) -version_branch=$(API_BRANCH) version_name=APIMOENCH version_path=slsDetectorServers/moenchDetectorServer versioning: - cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path) $(version_branch); tput sgr0;` + cd ../../ && echo $(PWD) && echo `tput setaf 6; python updateAPIVersion.py $(version_name) $(version_path); tput sgr0;` $(PROGS): $(OBJS) diff --git a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer index 3d726819b..dc962da2b 100755 Binary files a/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer and b/slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServer_developer differ diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c index 151f718e0..bebb87f8f 100644 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c @@ -1858,7 +1858,8 @@ int startStateMachine() { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); sharedMemory_setStatus(IDLE); return FAIL; - } + } else + pthread_detach(pthread_virtual_tid); LOG(logINFOGREEN, ("Virtual Acquisition started\n")); return OK; #endif @@ -1926,7 +1927,8 @@ void *start_timer(void *arg) { getNextFrameNumber(&frameNr); int iRxEntry = firstDest; for (int iframes = 0; iframes != numFrames; ++iframes) { - usleep(transmissionDelayUs); + if (transmissionDelayUs) + usleep(transmissionDelayUs); // check if manual stop if (sharedMemory_getStop() == 1) { diff --git a/slsDetectorServers/mythen3DetectorServer/Makefile b/slsDetectorServers/mythen3DetectorServer/Makefile index fb03c9d12..b6d68fac0 100755 --- a/slsDetectorServers/mythen3DetectorServer/Makefile +++ b/slsDetectorServers/mythen3DetectorServer/Makefile @@ -25,11 +25,10 @@ version: clean versioning $(PROGS) boot: $(OBJS) -version_branch=$(API_BRANCH) version_name=APIMYTHEN3 version_path=slsDetectorServers/mythen3DetectorServer versioning: - cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path) $(version_branch); tput sgr0;` + cd ../../ && echo $(PWD) && echo `tput setaf 6; python updateAPIVersion.py $(version_name) $(version_path); tput sgr0;` $(PROGS): $(OBJS) diff --git a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h index 6c7e641c9..5348d49d2 100644 --- a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h +++ b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h @@ -348,68 +348,21 @@ #define PATTERN_SET_LSB_REG (0x44 * REG_OFFSET + BASE_PATTERN_CONTROL) #define PATTERN_SET_MSB_REG (0x45 * REG_OFFSET + BASE_PATTERN_CONTROL) -/* Pattern Wait Timer 0 64bit RW Register */ -#define PATTERN_WAIT_TIMER_0_LSB_REG (0x60 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_TIMER_0_MSB_REG (0x61 * REG_OFFSET + BASE_PATTERN_CONTROL) +/** Pattern Loop and Wait Definitions, 5 regs each */ +#define PATTERN_LOOPDEF_BASE (0x60 * REG_OFFSET + BASE_PATTERN_CONTROL) +#define PATTERN_LOOPDEF_NWORDS_OFST (5) +#define PATTERN_WAIT_TIMER_LSB_WORD_OFST (0) +#define PATTERN_WAIT_TIMER_MSB_WORD_OFST (1) +#define PATTERN_WAIT_ADDR_WORD_OFST (2) +#define PATTERN_LOOP_ITERATION_WORD_OFST (3) +#define PATTERN_LOOP_ADDR_WORD_OFST (4) -/* Pattern Wait 0 RW Register*/ -#define PATTERN_WAIT_0_ADDR_REG (0x62 * REG_OFFSET + BASE_PATTERN_CONTROL) - -#define PATTERN_WAIT_0_ADDR_OFST (0) -#define PATTERN_WAIT_0_ADDR_MSK (0x00001FFF << PATTERN_WAIT_0_ADDR_OFST) - -/* Pattern Loop 0 Iteration RW Register */ -#define PATTERN_LOOP_0_ITERATION_REG (0x63 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Pattern Loop 0 Address RW Register */ -#define PATTERN_LOOP_0_ADDR_REG (0x64 * REG_OFFSET + BASE_PATTERN_CONTROL) - -#define PATTERN_LOOP_0_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_0_ADDR_STRT_MSK (0x00001FFF << PATTERN_LOOP_0_ADDR_STRT_OFST) -#define PATTERN_LOOP_0_ADDR_STP_OFST (16) -#define PATTERN_LOOP_0_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_0_ADDR_STP_OFST) - -/* Pattern Wait Timer 1 64bit RW Register */ -#define PATTERN_WAIT_TIMER_1_LSB_REG (0x65 * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_TIMER_1_MSB_REG (0x66 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Pattern Wait 1 RW Register*/ -#define PATTERN_WAIT_1_ADDR_REG (0x67 * REG_OFFSET + BASE_PATTERN_CONTROL) - -#define PATTERN_WAIT_1_ADDR_OFST (0) -#define PATTERN_WAIT_1_ADDR_MSK (0x00001FFF << PATTERN_WAIT_1_ADDR_OFST) - -/* Pattern Loop 1 Iteration RW Register */ -#define PATTERN_LOOP_1_ITERATION_REG (0x68 * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Pattern Loop 1 Address RW Register */ -#define PATTERN_LOOP_1_ADDR_REG (0x69 * REG_OFFSET + BASE_PATTERN_CONTROL) - -#define PATTERN_LOOP_1_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_1_ADDR_STRT_MSK (0x00001FFF << PATTERN_LOOP_1_ADDR_STRT_OFST) -#define PATTERN_LOOP_1_ADDR_STP_OFST (16) -#define PATTERN_LOOP_1_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_1_ADDR_STP_OFST) - -/* Pattern Wait Timer 2 64bit RW Register */ -#define PATTERN_WAIT_TIMER_2_LSB_REG (0x6A * REG_OFFSET + BASE_PATTERN_CONTROL) -#define PATTERN_WAIT_TIMER_2_MSB_REG (0x6B * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Pattern Wait 2 RW Register*/ -#define PATTERN_WAIT_2_ADDR_REG (0x6C * REG_OFFSET + BASE_PATTERN_CONTROL) - -#define PATTERN_WAIT_2_ADDR_OFST (0) -#define PATTERN_WAIT_2_ADDR_MSK (0x00001FFF << PATTERN_WAIT_2_ADDR_OFST) - -/* Pattern Loop 2 Iteration RW Register */ -#define PATTERN_LOOP_2_ITERATION_REG (0x6D * REG_OFFSET + BASE_PATTERN_CONTROL) - -/* Pattern Loop 0 Address RW Register */ -#define PATTERN_LOOP_2_ADDR_REG (0x6E * REG_OFFSET + BASE_PATTERN_CONTROL) - -#define PATTERN_LOOP_2_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_2_ADDR_STRT_MSK (0x00001FFF << PATTERN_LOOP_2_ADDR_STRT_OFST) -#define PATTERN_LOOP_2_ADDR_STP_OFST (16) -#define PATTERN_LOOP_2_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_2_ADDR_STP_OFST) +#define PATTERN_WAIT_ADDR_OFST (0) +#define PATTERN_WAIT_ADDR_MSK (0x00001FFF << PATTERN_WAIT_ADDR_OFST) +#define PATTERN_LOOP_ADDR_STRT_OFST (0) +#define PATTERN_LOOP_ADDR_STRT_MSK (0x00001FFF << PATTERN_LOOP_ADDR_STRT_OFST) +#define PATTERN_LOOP_ADDR_STP_OFST (16) +#define PATTERN_LOOP_ADDR_STP_MSK (0x00001FFF << PATTERN_LOOP_ADDR_STP_OFST) /* Pattern RAM registers --------------------------------------------------*/ diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 79d2ec68f..ffda96dac 100755 Binary files a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer and b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer differ diff --git a/slsDetectorServers/mythen3DetectorServer/mythen3.c b/slsDetectorServers/mythen3DetectorServer/mythen3.c index 96bf73902..a03fd736d 100644 --- a/slsDetectorServers/mythen3DetectorServer/mythen3.c +++ b/slsDetectorServers/mythen3DetectorServer/mythen3.c @@ -39,8 +39,8 @@ patternParameters *setChipStatusRegisterPattern(int csr) { patword = clearBit(SIGNAL_resCounter, patword); for (int i = 0; i < 8; i++) pat->word[iaddr++] = patword; - //#This version of the serializer pushes in the MSB first (compatible with - // the CSR bit numbering) + // #This version of the serializer pushes in the MSB first (compatible with + // the CSR bit numbering) for (int ib = nbits - 1; ib >= 0; ib--) { if (csr & (1 << ib)) patword = setBit(SIGNAL_serialIN, patword); @@ -304,7 +304,7 @@ patternParameters *setChannelRegisterChip(int ichip, char *mask, chanReg |= (0x1 << (3 + icounter)); } } - + chanReg /= 2; // deserialize if (chanReg & CHAN_REG_BAD_CHANNEL_MSK) { LOG(logINFOBLUE, diff --git a/slsDetectorServers/mythen3DetectorServer/mythen3.h b/slsDetectorServers/mythen3DetectorServer/mythen3.h index 1ac9aad21..f7a62e346 100644 --- a/slsDetectorServers/mythen3DetectorServer/mythen3.h +++ b/slsDetectorServers/mythen3DetectorServer/mythen3.h @@ -38,11 +38,11 @@ #define CSR_invpol 4 #define CSR_dpulse 5 #define CSR_interp 6 -#define _CSR_C10pre 7 //#default, negative polarity +#define _CSR_C10pre 7 // #default, negative polarity #define CSR_pumprobe 8 #define CSR_apulse 9 #define CSR_C15sh 10 -#define CSR_C30sh 11 //#default +#define CSR_C30sh 11 // #default #define CSR_C50sh 12 #define CSR_C225ACsh \ 13 // Connects 225fF SHAPER AC cap (1: 225 to shaper, 225 to GND. 0: 450 to diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 6fd3fb00a..0d0b6570c 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -404,18 +404,24 @@ void initStopServer() { /* set up detector */ -void allocateDetectorStructureMemory() { - // Allocation of memory +int allocateDetectorStructureMemory() { detectorModules = malloc(sizeof(sls_detector_module)); detectorChans = malloc(NCHAN_PER_MODULE * sizeof(int)); - badChannelMask = malloc(NCHAN_PER_MODULE * sizeof(char)); - memset(badChannelMask, 0, NCHAN_PER_MODULE * sizeof(char)); detectorDacs = malloc(NDAC * sizeof(int)); - + badChannelMask = malloc(NCHAN_PER_MODULE * sizeof(char)); + if (detectorModules == NULL || detectorChans == NULL || + detectorDacs == NULL || badChannelMask == NULL) { + initError = FAIL; + strcpy(initErrorMessage, "Could not allocate memory for dacs, channels " + "or bad channel mask in detector\n"); + LOG(logERROR, (initErrorMessage)); + return FAIL; + } LOG(logDEBUG1, ("modules from 0x%x to 0x%x\n", detectorModules, detectorModules)); LOG(logDEBUG1, ("chans from 0x%x to 0x%x\n", detectorChans, detectorChans)); LOG(logDEBUG1, ("dacs from 0x%x to 0x%x\n", detectorDacs, detectorDacs)); + (detectorModules)->dacs = detectorDacs; (detectorModules)->chanregs = detectorChans; (detectorModules)->ndac = NDAC; @@ -429,21 +435,22 @@ void allocateDetectorStructureMemory() { (detectorModules)->eV[2] = 0; thisSettings = UNINITIALIZED; - // initialize dacs + // initialize for (int idac = 0; idac < (detectorModules)->ndac; ++idac) { detectorDacs[idac] = 0; } - - // trimbits start at 0 for (int ichan = 0; ichan < (detectorModules->nchan); ichan++) { *((detectorModules->chanregs) + ichan) = 0; } + memset(badChannelMask, 0, NCHAN_PER_MODULE * sizeof(char)); + return OK; } void setupDetector() { LOG(logINFO, ("This Server is for 1 Mythen3 module \n")); - allocateDetectorStructureMemory(); + if (allocateDetectorStructureMemory() == FAIL) + return; if (checkCommandLineConfiguration() == FAIL) return; @@ -1412,6 +1419,10 @@ int setTrimbits(int *trimbits) { int setAllTrimbits(int val) { LOG(logINFO, ("Setting all trimbits to %d\n", val)); int *trimbits = malloc(sizeof(int) * ((detectorModules)->nchan)); + if (trimbits == NULL) { + LOG(logERROR, ("Could not allocate memory to set all trimbits\n")); + return FAIL; + } for (int ichan = 0; ichan < ((detectorModules)->nchan); ++ichan) { trimbits[ichan] = val; } @@ -2469,11 +2480,12 @@ int *getBadChannels(int *numChannels) { } if (*numChannels > 0) { retvals = malloc(*numChannels * sizeof(int)); - memset(retvals, 0, *numChannels * sizeof(int)); if (retvals == NULL) { + LOG(logERROR, ("Could not allocate memory to get bad channels\n")); *numChannels = -1; return NULL; } + memset(retvals, 0, *numChannels * sizeof(int)); // return only 1 channel for all counters int ich = 0; for (int i = 0; i != NCHAN_PER_MODULE; i = i + NCOUNTERS) { @@ -2532,7 +2544,8 @@ int startStateMachine() { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); sharedMemory_setStatus(IDLE); return FAIL; - } + } else + pthread_detach(pthread_virtual_tid); LOG(logINFOGREEN, ("Virtual Acquisition started\n")); return OK; #endif diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index c3583aacf..47824e32d 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -3,7 +3,7 @@ #pragma once #include "sls/sls_detector_defs.h" -#define REQRD_FRMWRE_VRSN (0x230124) +#define REQRD_FRMWRE_VRSN (0x241113) #define KERNEL_DATE_VRSN "Mon May 10 18:00:21 CEST 2021" #define ID_FILE "detid_mythen3.txt" @@ -50,7 +50,7 @@ #define DEFAULT_NUM_CYCLES (1) #define DEFAULT_GATE_WIDTH (100 * 1000 * 1000) // ns #define DEFAULT_GATE_DELAY (0) -#define DEFAULT_PERIOD (2 * 1000 * 1000) // ns +#define DEFAULT_PERIOD (0) // ns #define DEFAULT_DELAY_AFTER_TRIGGER (0) #define DEFAULT_HIGH_VOLTAGE (0) #define DEFAULT_TIMING_MODE (AUTO_TIMING) @@ -63,6 +63,7 @@ #define DEFAULT_SYSTEM_C1 (6) //(166666666) // str_clk, 166 MHz const #define DEFAULT_SYSTEM_C2 (5) //(200000000) // smp_clk, 200 MHz const #define DEFAULT_TRIMMING_RUN_CLKDIV (40) // (25000000) // 25 MHz +#define NS_TO_CLK_CYCLE (1E-3) // ns to MHz #define FULL_SPEED_CLKDIV (10) //(100000000) 100 MHz #define HALF_SPEED_CLKDIV (20) //( 50000000) 50 MHz diff --git a/slsDetectorServers/slsDetectorServer/include/AD9252.h b/slsDetectorServers/slsDetectorServer/include/AD9252.h deleted file mode 100644 index b2787ef99..000000000 --- a/slsDetectorServers/slsDetectorServer/include/AD9252.h +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0-or-other -// Copyright (C) 2021 Contributors to the SLS Detector Package -#pragma once - -#include - -/** - * Set Defines - * @param reg spi register - * @param cmsk chip select mask - * @param clkmsk clock output mask - * @param dmsk digital output mask - * @param dofst digital output offset - */ -void AD9252_SetDefines(uint32_t reg, uint32_t cmsk, uint32_t clkmsk, - uint32_t dmsk, int dofst); - -/** - * Disable SPI - */ -void AD9252_Disable(); - -/** - * Set SPI reg value - * @param codata value to be set - */ -void AD9252_Set(int addr, int val); - -/** - * Configure - */ -void AD9252_Configure(); diff --git a/slsDetectorServers/slsDetectorServer/include/XILINX_PLL.h b/slsDetectorServers/slsDetectorServer/include/XILINX_PLL.h new file mode 100644 index 000000000..b2d98ff8b --- /dev/null +++ b/slsDetectorServers/slsDetectorServer/include/XILINX_PLL.h @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: LGPL-3.0-or-other +// Copyright (C) 2021 Contributors to the SLS Detector Package + +#include +#include + +int XILINX_PLL_setFrequency(uint32_t clk_index, uint32_t freq); +uint32_t XILINX_PLL_getFrequency(uint32_t clkIDX); +bool XILINX_PLL_isLocked(); +void XILINX_PLL_reset(); +void XILINX_PLL_waitForLock(); +void XILINX_PLL_load(); \ No newline at end of file diff --git a/slsDetectorServers/slsDetectorServer/include/arm64.h b/slsDetectorServers/slsDetectorServer/include/arm64.h index 6614bfe65..eb79100d8 100644 --- a/slsDetectorServers/slsDetectorServer/include/arm64.h +++ b/slsDetectorServers/slsDetectorServer/include/arm64.h @@ -6,7 +6,9 @@ #include void bus_w(u_int32_t offset, u_int32_t data); +void bus_w_csp2(u_int32_t offset, u_int32_t data); u_int32_t bus_r(u_int32_t offset); +u_int32_t bus_r_csp2(u_int32_t offset); uint64_t getU64BitReg(int aLSB, int aMSB); void setU64BitReg(uint64_t value, int aLSB, int aMSB); u_int32_t readRegister(u_int32_t offset); diff --git a/slsDetectorServers/slsDetectorServer/include/blackfin.h b/slsDetectorServers/slsDetectorServer/include/blackfin.h index fef76ad48..672f58c57 100644 --- a/slsDetectorServers/slsDetectorServer/include/blackfin.h +++ b/slsDetectorServers/slsDetectorServer/include/blackfin.h @@ -5,6 +5,23 @@ #include #include +/** enable support for ARDY signal on interface to FPGA + * needed to properly translate avalon_mm_waitrequest in the CTB firmware + * https://www.analog.com/media/en/dsp-documentation/processor-manuals/bf537_hwr_Rev3.2.pdf + * page 274 + * */ +#define BFIN_EBIU_AMBCTL1_B2_ARDY_ENA_OFST (0) +#define BFIN_EBIU_AMBCTL1_B2_ARDY_ENA_MSK \ + (1 << BFIN_EBIU_AMBCTL1_B2_ARDY_ENA_OFST) +#define BFIN_EBIU_AMBCTL1_B2_ARDY_POL_OFST (1) +#define BFIN_EBIU_AMBCTL1_B2_ARDY_POL_MSK \ + (1 << BFIN_EBIU_AMBCTL1_B2_ARDY_POL_OFST) + +#define BFIN_AMC_ACCESS_EXTENSION_ENA_VAL \ + (BFIN_EBIU_AMBCTL1_B2_ARDY_ENA_MSK | BFIN_EBIU_AMBCTL1_B2_ARDY_POL_MSK) +#define BFIN_AMC_ACCESS_EXTENSION_FNAME \ + "/sys/kernel/debug/blackfin/ebiu_amc/EBIU_AMBCTL1" + /** I2C defines */ #define I2C_CLOCK_MHZ (131.25) diff --git a/slsDetectorServers/slsDetectorServer/include/clogger.h b/slsDetectorServers/slsDetectorServer/include/clogger.h index 9f392535c..7b0b4b3cb 100644 --- a/slsDetectorServers/slsDetectorServer/include/clogger.h +++ b/slsDetectorServers/slsDetectorServer/include/clogger.h @@ -91,7 +91,7 @@ static inline void FILELOG_PrintLog(enum TLogLevel level, char *m) { } static inline char *FILELOG_BuildLog(const char *fmt, ...) { - char *p; + char *p = NULL; va_list ap; p = malloc(ERROR_MSG_LENGTH); va_start(ap, fmt); diff --git a/slsDetectorServers/slsDetectorServer/include/loadPattern.h b/slsDetectorServers/slsDetectorServer/include/loadPattern.h index 7cc9b5a88..9c29cfe40 100644 --- a/slsDetectorServers/slsDetectorServer/include/loadPattern.h +++ b/slsDetectorServers/slsDetectorServer/include/loadPattern.h @@ -27,10 +27,15 @@ int getPatternWaitAddress(int level); int validate_setPatternWaitAddresses(char *message, int level, int addr); void setPatternWaitAddress(int level, int addr); -int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime); -uint64_t getPatternWaitTime(int level); -int validate_setPatternWaitTime(char *message, int level, uint64_t waittime); -void setPatternWaitTime(int level, uint64_t t); +int validate_getPatternWaitClocksAndInterval(char *message, int level, + uint64_t *waittime, int clocks); +uint64_t getPatternWaitClocks(int level); +uint64_t getPatternWaitInterval(int level); + +int validate_setPatternWaitClocksAndInterval(char *message, int level, + uint64_t waittime, int clocks); +void setPatternWaitClocks(int level, uint64_t t); +void setPatternWaitInterval(int level, uint64_t t); int validate_getPatternLoopCycles(char *message, int level, int *numLoops); int getPatternLoopCycles(int level); @@ -53,7 +58,8 @@ uint64_t getPatternMask(); void setPatternBitMask(uint64_t mask); uint64_t getPatternBitMask(); -#ifdef MYTHEN3D +#if defined(MYTHEN3D) || defined(XILINX_CHIPTESTBOARDD) || \ + defined(CHIPTESTBOARDD) void startPattern(); #endif char *getPatternFileName(); diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h index 7466380a5..7114c7f4b 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorFunctionList.h @@ -2,27 +2,17 @@ // Copyright (C) 2021 Contributors to the SLS Detector Package #include "sls/sls_detector_defs.h" #include "slsDetectorServer_defs.h" // DAC_INDEX, ADC_INDEX, also include RegisterDefs.h -#ifdef GOTTHARDD -#include "AD9252.h" // old board compatibility -#include "clogger.h" // runState(enum TLogLevel) -#endif -#if defined(GOTTHARDD) || defined(JUNGFRAUD) || defined(MOENCHD) || \ - defined(CHIPTESTBOARDD) + +#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) #include "AD9257.h" // commonServerFunctions.h, blackfin.h, ansi.h #endif -#if defined(MYTHEN3D) || defined(GOTTHARD2D) -#include "programViaNios.h" -#elif defined(CHIPTESTBOARDD) || defined(JUNGFRAUD) || defined(MOENCHD) || \ - defined(GOTTHARDD) -#include "programViaBlackfin.h" -#endif - #if defined(MYTHEN3D) || defined(GOTTHARD2D) #include "nios.h" -#elif defined(GOTTHARDD) || defined(JUNGFRAUD) || defined(MOENCHD) || \ - defined(CHIPTESTBOARDD) +#include "programViaNios.h" +#elif defined(CHIPTESTBOARDD) || defined(JUNGFRAUD) || defined(MOENCHD) #include "blackfin.h" +#include "programViaBlackfin.h" #endif #ifdef ARMPROCESSOR @@ -76,8 +66,7 @@ int testBus(); #endif #endif -#if defined(GOTTHARDD) || \ - ((defined(EIGERD) || defined(JUNGFRAUD) || defined(MOENCHD)) && \ +#if ((defined(EIGERD) || defined(JUNGFRAUD) || defined(MOENCHD)) && \ defined(VIRTUAL)) void setTestImageMode(int ival); int getTestImageMode(); @@ -102,7 +91,7 @@ u_int16_t getHardwareVersionNumber(); u_int16_t getHardwareSerialNumber(); #endif #if defined(JUNGFRAUD) || defined(MOENCHD) || defined(GOTTHARD2D) || \ - defined(MYTHEN3D) || defined(GOTTHARDD) + defined(MYTHEN3D) int isHardwareVersion_1_0(); #endif #if defined(JUNGFRAUD) @@ -124,6 +113,10 @@ void setModuleId(int modid); u_int64_t getDetectorMAC(); u_int32_t getDetectorIP(); +#if defined(CHIPTESTBOARDD) +int enableBlackfinAMCExternalAccessExtension(char *mess); +#endif + // initialization void initControlServer(); void initStopServer(); @@ -140,7 +133,7 @@ void checkVirtual9MFlag(); void setupFebBeb(); #endif #if defined(EIGERD) || defined(MYTHEN3D) -void allocateDetectorStructureMemory(); +int allocateDetectorStructureMemory(); #endif void setupDetector(); #if defined(CHIPTESTBOARDD) @@ -162,8 +155,7 @@ void setADIFDefaults(); #if defined(GOTTHARD2D) || defined(EIGERD) || defined(JUNGFRAUD) int readConfigFile(); #endif -#if defined(GOTTHARDD) || defined(GOTTHARD2D) || defined(EIGERD) || \ - defined(MYTHEN3D) +#if defined(GOTTHARD2D) || defined(EIGERD) || defined(MYTHEN3D) int checkCommandLineConfiguration(); #endif #ifdef EIGERD @@ -177,9 +169,6 @@ int readRegister(uint32_t offset, uint32_t *retval); int setBit(const uint32_t addr, const int nBit, int validate); int clearBit(const uint32_t addr, const int nBit, int validate); int getBit(const uint32_t addr, const int nBit, int *retval); -#elif GOTTHARDD -void writeRegister16And32(uint32_t offset, uint32_t data); -uint32_t readRegister16And32(uint32_t offset); #endif // firmware functions (resets) @@ -197,32 +186,19 @@ int isChipConfigured(); int powerChip(int on, char *mess); int getPowerChip(); int configureChip(char *mess); +int readConfigFile(char *mess, char *fileName, char *fileType); +int resetChip(char *mess); #endif #if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) || \ defined(MYTHEN3D) || defined(GOTTHARD2D) void cleanFifos(); void resetCore(); void resetPeripheral(); -#elif GOTTHARDD -void setPhaseShiftOnce(); -void setPhaseShift(int numphaseshift); -void cleanFifos(); -void setADCSyncRegister(); -void setDAQRegister(); -void setChipOfInterestRegister(int adc); -void setROIADC(int adc); -void setGbitReadout(); -int readConfigFile(); -void setMasterSlaveConfiguration(); #endif // parameters - dr, roi int setDynamicRange(int dr); int getDynamicRange(int *retval); -#ifdef GOTTHARDD -int setROI(ROI arg); -ROI getROI(); -#endif #if defined(JUNGFRAUD) || defined(MOENCHD) void setADCInvertRegister(uint32_t val); uint32_t getADCInvertRegister(); @@ -334,9 +310,8 @@ void updatePacketizing(); int64_t getNumFramesLeft(); int64_t getNumTriggersLeft(); #endif -#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(GOTTHARDD) || \ - defined(CHIPTESTBOARDD) || defined(MYTHEN3D) || defined(GOTTHARD2D) || \ - defined(XILINX_CHIPTESTBOARDD) +#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) || \ + defined(MYTHEN3D) || defined(GOTTHARD2D) || defined(XILINX_CHIPTESTBOARDD) int setDelayAfterTrigger(int64_t val); int64_t getDelayAfterTrigger(); int64_t getDelayAfterTriggerLeft(); @@ -345,9 +320,6 @@ int64_t getPeriodLeft(); #ifdef GOTTHARD2D int64_t getNumBurstsLeft(); #endif -#ifdef GOTTHARDD -int64_t getExpTimeLeft(); -#endif #if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) || \ defined(MYTHEN3D) || defined(GOTTHARD2D) || defined(XILINX_CHIPTESTBOARDD) int64_t getFramesFromStart(); @@ -426,8 +398,8 @@ int getPower(); void setPower(enum DACINDEX ind, int val); void powerOff(); #elif XILINX_CHIPTESTBOARDD +int getBitOffsetFromDACIndex(enum DACINDEX ind); int isPowerValid(enum DACINDEX ind, int val); - int getPower(); void setPower(enum DACINDEX ind, int val); #endif @@ -460,8 +432,8 @@ int setMaster(enum MASTERINDEX m); int setTop(enum TOPINDEX t); int isTop(int *retval); #endif -#if defined(MYTHEN3D) || defined(EIGERD) || defined(GOTTHARDD) || \ - defined(GOTTHARD2D) || defined(JUNGFRAUD) || defined(MOENCHD) +#if defined(MYTHEN3D) || defined(EIGERD) || defined(GOTTHARD2D) || \ + defined(JUNGFRAUD) || defined(MOENCHD) int isMaster(int *retval); #endif @@ -487,15 +459,12 @@ int setAnalogPulsing(int enable); int setNegativePolarity(int enable); int setDACS(int *dacs); #endif -#if defined(GOTTHARDD) || defined(MYTHEN3D) +#if defined(MYTHEN3D) void setExtSignal(int signalIndex, enum externalSignalFlag mode); int getExtSignal(int signalIndex); #endif // configure mac -#ifdef GOTTHARDD -void calcChecksum(mac_conf *mac, int sourceip, int destip); -#endif #if defined(JUNGFRAUD) || defined(MOENCHD) || defined(GOTTHARD2D) void setNumberofUDPInterfaces(int val); #endif @@ -523,9 +492,6 @@ void setupHeader(int iRxEntry, enum interfaceType type, uint32_t destip, defined(XILINX_CHIPTESTBOARDD) void calcChecksum(udp_header *udp); #endif -#ifdef GOTTHARDD -int getAdcConfigured(); -#endif int configureMAC(); int setDetectorPosition(int pos[]); @@ -552,8 +518,6 @@ int setPhase(enum CLKINDEX ind, int val, int degrees); int getPhase(enum CLKINDEX ind, int degrees); int getMaxPhase(enum CLKINDEX ind); int validatePhaseinDegrees(enum CLKINDEX ind, int val, int retval); -int setFrequency(enum CLKINDEX ind, int val); -int getFrequency(enum CLKINDEX ind); void configureSyncFrequency(enum CLKINDEX ind); void setADCPipeline(int val); int getADCPipeline(); @@ -563,6 +527,11 @@ int setLEDEnable(int enable); void setDigitalIODelay(uint64_t pinMask, int delay); #endif +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) +int setFrequency(enum CLKINDEX ind, int val); +int getFrequency(enum CLKINDEX ind); +#endif + // jungfrau/moench specific - powerchip, autocompdisable, clockdiv, asictimer, // clock, pll, flashing firmware #if defined(MOENCHD) @@ -639,10 +608,6 @@ int getActivate(int *retval); int getDataStream(enum portPosition port, int *retval); int setDataStream(enum portPosition port, int enable); -// gotthard specific - adc phase -#elif GOTTHARDD -int setPhase(enum CLKINDEX ind, int val, int degrees); - #elif MYTHEN3D int checkDetectorType(char *mess); int powerChip(int on); @@ -742,8 +707,7 @@ int softwareTrigger(); #if defined(EIGERD) || defined(JUNGFRAUD) || defined(MOENCHD) int softwareTrigger(int block); #endif -#if defined(EIGERD) || defined(MYTHEN3D) || defined(CHIPTESTBOARDD) || \ - defined(XILINX_CHIPTESTBOARDD) +#if defined(EIGERD) || defined(MYTHEN3D) || defined(CHIPTESTBOARDD) int startReadOut(); #endif enum runStatus getRunStatus(); @@ -762,16 +726,11 @@ int checkFifoForEndOfAcquisition(); int readFrameFromFifo(); #endif -#if defined(GOTTHARDD) || defined(JUNGFRAUD) || defined(MOENCHD) || \ - defined(CHIPTESTBOARDD) || defined(MYTHEN3D) || defined(GOTTHARD2D) || \ - defined(XILINX_CHIPTESTBOARDD) +#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) || \ + defined(MYTHEN3D) || defined(GOTTHARD2D) || defined(XILINX_CHIPTESTBOARDD) u_int32_t runBusy(); #endif -#ifdef GOTTHARDD -u_int32_t runState(enum TLogLevel lev); -#endif - // common int calculateDataBytes(); int getTotalNumberOfChannels(); diff --git a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h index e0806694e..2c7e60ce9 100644 --- a/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h +++ b/slsDetectorServers/slsDetectorServer/include/slsDetectorServer_funcs.h @@ -11,6 +11,8 @@ // initialization functions int updateModeAllowedFunction(int file_des); int printSocketReadError(); +int sendError(int file_des); +void setMemoryAllocationErrorMessage(); void init_detector(); int decode_function(int); const char *getRetName(); @@ -102,7 +104,7 @@ int set_pattern_word(int); int set_pattern_loop_addresses(int); int set_pattern_loop_cycles(int); int set_pattern_wait_addr(int); -int set_pattern_wait_time(int); +int set_pattern_wait_clocks(int); int set_pattern_mask(int); int get_pattern_mask(int); int set_pattern_bit_mask(int); @@ -334,3 +336,5 @@ int get_timing_info_decoder(int); int set_timing_info_decoder(int); int get_collection_mode(int); int set_collection_mode(int); +int get_pattern_wait_interval(int); +int set_pattern_wait_interval(int); diff --git a/slsDetectorServers/slsDetectorServer/src/AD9252.c b/slsDetectorServers/slsDetectorServer/src/AD9252.c deleted file mode 100644 index 164e2dc13..000000000 --- a/slsDetectorServers/slsDetectorServer/src/AD9252.c +++ /dev/null @@ -1,212 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0-or-other -// Copyright (C) 2021 Contributors to the SLS Detector Package -#include "AD9252.h" -#include "blackfin.h" -#include "clogger.h" -#include "commonServerFunctions.h" // blackfin.h, ansi.h - -/* AD9252 ADC DEFINES */ -#define AD9252_ADC_NUMBITS (24) - -// default value is 0xF -#define AD9252_DEV_IND_2_REG (0x04) -#define AD9252_CHAN_H_OFST (0) -#define AD9252_CHAN_H_MSK (0x00000001 << AD9252_CHAN_H_OFST) -#define AD9252_CHAN_G_OFST (1) -#define AD9252_CHAN_G_MSK (0x00000001 << AD9252_CHAN_G_OFST) -#define AD9252_CHAN_F_OFST (2) -#define AD9252_CHAN_F_MSK (0x00000001 << AD9252_CHAN_F_OFST) -#define AD9252_CHAN_E_OFST (3) -#define AD9252_CHAN_E_MSK (0x00000001 << AD9252_CHAN_E_OFST) - -// default value is 0x0F -#define AD9252_DEV_IND_1_REG (0x05) -#define AD9252_CHAN_D_OFST (0) -#define AD9252_CHAN_D_MSK (0x00000001 << AD9252_CHAN_D_OFST) -#define AD9252_CHAN_C_OFST (1) -#define AD9252_CHAN_C_MSK (0x00000001 << AD9252_CHAN_C_OFST) -#define AD9252_CHAN_B_OFST (2) -#define AD9252_CHAN_B_MSK (0x00000001 << AD9252_CHAN_B_OFST) -#define AD9252_CHAN_A_OFST (3) -#define AD9252_CHAN_A_MSK (0x00000001 << AD9252_CHAN_A_OFST) -#define AD9252_CLK_CH_DCO_OFST (4) -#define AD9252_CLK_CH_DCO_MSK (0x00000001 << AD9252_CLK_CH_DCO_OFST) -#define AD9252_CLK_CH_IFCO_OFST (5) -#define AD9252_CLK_CH_IFCO_MSK (0x00000001 << AD9252_CLK_CH_IFCO_OFST) - -// default value is 0x00 -#define AD9252_POWER_MODE_REG (0x08) -#define AD9252_POWER_INTERNAL_OFST (0) -#define AD9252_POWER_INTERNAL_MSK (0x00000007 << AD9252_POWER_INTERNAL_OFST) -#define AD9252_INT_CHIP_RUN_VAL \ - ((0x0 << AD9252_POWER_INTERNAL_OFST) & AD9252_POWER_INTERNAL_MSK) -#define AD9252_INT_FULL_PWR_DWN_VAL \ - ((0x1 << AD9252_POWER_INTERNAL_OFST) & AD9252_POWER_INTERNAL_MSK) -#define AD9252_INT_STANDBY_VAL \ - ((0x2 << AD9252_POWER_INTERNAL_OFST) & AD9252_POWER_INTERNAL_MSK) -#define AD9252_INT_RESET_VAL \ - ((0x3 << AD9252_POWER_INTERNAL_OFST) & AD9252_POWER_INTERNAL_MSK) - -// default value is 0x0 -#define AD9252_TEST_MODE_REG (0x0D) -#define AD9252_OUT_TEST_OFST (0) -#define AD9252_OUT_TEST_MSK (0x0000000F << AD9252_OUT_TEST_OFST) -#define AD9252_TST_OFF_VAL ((0x0 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_MDSCL_SHRT_VAL \ - ((0x1 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_PSTV_FS_VAL \ - ((0x2 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_NGTV_FS_VAL \ - ((0x3 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_ALTRNTNG_CHKRBRD_VAL \ - ((0x4 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_PN_23_SQNC_VAL \ - ((0x5 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_PN_9_SQNC__VAL \ - ((0x6 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_1_0_WRD_TGGL_VAL \ - ((0x7 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_USR_INPT_VAL \ - ((0x8 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_1_0_BT_TGGL_VAL \ - ((0x9 << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_1_x_SYNC_VAL \ - ((0xa << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_1_BIT_HGH_VAL \ - ((0xb << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_MXD_BT_FRQ_VAL \ - ((0xc << AD9252_OUT_TEST_OFST) & AD9252_OUT_TEST_MSK) -#define AD9252_TST_RST_SHRT_GN_OFST (4) -#define AD9252_TST_RST_SHRT_GN_MSK (0x00000001 << AD9252_TST_RST_SHRT_GN_OFST) -#define AD9252_TST_RST_LNG_GN_OFST (5) -#define AD9252_TST_RST_LNG_GN_MSK (0x00000001 << AD9252_TST_RST_LNG_GN_OFST) -#define AD9252_USER_IN_MODE_OFST (6) -#define AD9252_USER_IN_MODE_MSK (0x00000003 << AD9252_USER_IN_MODE_OFST) -#define AD9252_USR_IN_SNGL_VAL \ - ((0x0 << AD9252_USER_IN_MODE_OFST) & AD9252_USER_IN_MODE_MSK) -#define AD9252_USR_IN_ALTRNT_VAL \ - ((0x1 << AD9252_USER_IN_MODE_OFST) & AD9252_USER_IN_MODE_MSK) -#define AD9252_USR_IN_SNGL_ONC_VAL \ - ((0x2 << AD9252_USER_IN_MODE_OFST) & AD9252_USER_IN_MODE_MSK) -#define AD9252_USR_IN_ALTRNT_ONC_VAL \ - ((0x3 << AD9252_USER_IN_MODE_OFST) & AD9252_USER_IN_MODE_MSK) - -// default value is 0x00 -#define AD9252_OUT_MODE_REG (0x14) -#define AD9252_OUT_FORMAT_OFST (0) -#define AD9252_OUT_FORMAT_MSK (0x00000003 << AD9252_OUT_FORMAT_OFST) -#define AD9252_OUT_BINARY_OFST_VAL \ - ((0x0 << AD9252_OUT_FORMAT_OFST) & AD9252_OUT_FORMAT_MSK) -#define AD9252_OUT_TWOS_COMPL_VAL \ - ((0x1 << AD9252_OUT_FORMAT_OFST) & AD9252_OUT_FORMAT_MSK) -#define AD9252_OUT_OTPT_INVRT_OFST (2) -#define AD9252_OUT_OTPT_INVRT_MSK (0x00000001 << AD9252_OUT_OTPT_INVRT_OFST) -#define AD9252_OUT_LVDS_OPT_OFST (6) -#define AD9252_OUT_LVDS_OPT_MSK (0x00000001 << AD9252_OUT_LVDS_OPT_OFST) -#define AD9252_OUT_LVDS_ANSI_VAL \ - ((0x0 << AD9252_OUT_LVDS_OPT_OFST) & AD9252_OUT_LVDS_OPT_MSK) -#define AD9252_OUT_LVDS_IEEE_VAL \ - ((0x1 << AD9252_OUT_LVDS_OPT_OFST) & AD9252_OUT_LVDS_OPT_MSK) - -// default value is 0x3 -#define AD9252_OUT_PHASE_REG (0x16) -#define AD9252_OUT_CLK_OFST (0) -#define AD9252_OUT_CLK_MSK (0x0000000F << AD9252_OUT_CLK_OFST) -#define AD9252_OUT_CLK_0_VAL ((0x0 << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_60_VAL \ - ((0x1 << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_120_VAL \ - ((0x2 << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_180_VAL \ - ((0x3 << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_300_VAL \ - ((0x5 << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_360_VAL \ - ((0x6 << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_480_VAL \ - ((0x8 << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_540_VAL \ - ((0x9 << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_600_VAL \ - ((0xa << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) -#define AD9252_OUT_CLK_660_VAL \ - ((0xb << AD9252_OUT_CLK_OFST) & AD9252_OUT_CLK_MSK) // 0xb - 0xf is 660 - -// defines from the fpga -uint32_t AD9252_Reg = 0x0; -uint32_t AD9252_CsMask = 0x0; -uint32_t AD9252_ClkMask = 0x0; -uint32_t AD9252_DigMask = 0x0; -int AD9252_DigOffset = 0x0; - -void AD9252_SetDefines(uint32_t reg, uint32_t cmsk, uint32_t clkmsk, - uint32_t dmsk, int dofst) { - AD9252_Reg = reg; - AD9252_CsMask = cmsk; - AD9252_ClkMask = clkmsk; - AD9252_DigMask = dmsk; - AD9252_DigOffset = dofst; -} - -void AD9252_Disable() { - bus_w(AD9252_Reg, (bus_r(AD9252_Reg) | AD9252_CsMask | AD9252_ClkMask) & - ~(AD9252_DigMask)); -} - -void AD9252_Set(int addr, int val) { - - u_int32_t codata; - codata = val + (addr << 8); - LOG(logINFO, - ("\tSetting ADC SPI Register. Wrote 0x%04x at 0x%04x\n", val, addr)); - serializeToSPI(AD9252_Reg, codata, AD9252_CsMask, AD9252_ADC_NUMBITS, - AD9252_ClkMask, AD9252_DigMask, AD9252_DigOffset, 0); -} - -void AD9252_Configure() { - LOG(logINFOBLUE, ("Configuring ADC9252:\n")); - - // power mode reset - LOG(logINFO, ("\tPower mode reset\n")); - AD9252_Set(AD9252_POWER_MODE_REG, AD9252_INT_RESET_VAL); - - // power mode chip run - LOG(logINFO, ("\tPower mode chip run\n")); - AD9252_Set(AD9252_POWER_MODE_REG, AD9252_INT_CHIP_RUN_VAL); - - // binary offset - LOG(logINFO, ("\tBinary offset\n")); - AD9252_Set(AD9252_OUT_MODE_REG, AD9252_OUT_BINARY_OFST_VAL); - - // output clock phase -#ifdef GOTTHARDD - LOG(logINFO, ("\tOutput clock phase is at default: 180\n")); -#else - LOG(logINFO, ("\tOutput clock phase: 60\n")); - AD9257_Set(AD9257_OUT_PHASE_REG, AD9257_OUT_CLK_60_VAL); -#endif - - // lvds-iee reduced , binary offset - LOG(logINFO, ("\tLvds-iee reduced, binary offset\n")); - AD9252_Set(AD9252_OUT_MODE_REG, AD9252_OUT_LVDS_IEEE_VAL); - - // all devices on chip to receive next command - LOG(logINFO, ("\tAll devices on chip to receive next command\n")); - AD9252_Set(AD9252_DEV_IND_2_REG, AD9252_CHAN_H_MSK | AD9252_CHAN_G_MSK | - AD9252_CHAN_F_MSK | AD9252_CHAN_E_MSK); - AD9252_Set(AD9252_DEV_IND_1_REG, AD9252_CHAN_D_MSK | AD9252_CHAN_C_MSK | - AD9252_CHAN_B_MSK | AD9252_CHAN_A_MSK | - AD9252_CLK_CH_DCO_MSK | - AD9252_CLK_CH_IFCO_MSK); - - // no test mode - LOG(logINFO, ("\tNo test mode\n")); - AD9252_Set(AD9252_TEST_MODE_REG, AD9252_TST_OFF_VAL); - -#ifdef TESTADC - LOG(logINFOBLUE, ("Putting ADC in Test Mode!\n"); - // mixed bit frequency test mode - LOG(logINFO, ("\tMixed bit frequency test mode\n")); - AD9252_Set(AD9252_TEST_MODE_REG, AD9252_TST_MXD_BT_FRQ_VAL); -#endif -} diff --git a/slsDetectorServers/slsDetectorServer/src/AD9257.c b/slsDetectorServers/slsDetectorServer/src/AD9257.c index 6ebf574f4..568d2f8d8 100644 --- a/slsDetectorServers/slsDetectorServer/src/AD9257.c +++ b/slsDetectorServers/slsDetectorServer/src/AD9257.c @@ -318,7 +318,7 @@ void AD9257_Configure() { AD9257_CLK_CH_IFCO_MSK); // vref -#if defined(GOTTHARDD) || defined(MOENCHD) +#if defined(MOENCHD) LOG(logINFO, ("\tVref default at 2.0\n")); AD9257_SetVrefVoltage(AD9257_VREF_DEFAULT_VAL, 0); #else diff --git a/slsDetectorServers/slsDetectorServer/src/I2C.c b/slsDetectorServers/slsDetectorServer/src/I2C.c index 31efc129a..5c60311ac 100644 --- a/slsDetectorServers/slsDetectorServer/src/I2C.c +++ b/slsDetectorServers/slsDetectorServer/src/I2C.c @@ -106,9 +106,9 @@ (0x0000FFFF << I2C_SDA_HOLD_COUNT_PERIOD_OFST) /** Receive Data Fifo Level register */ -//#define I2C_RX_DATA_FIFO_LVL_OFST (0) -//#define I2C_RX_DATA_FIFO_LVL_MSK (0x000000FF << -// I2C_RX_DATA_FIFO_LVL_OFST) +// #define I2C_RX_DATA_FIFO_LVL_OFST (0) +// #define I2C_RX_DATA_FIFO_LVL_MSK (0x000000FF << +// I2C_RX_DATA_FIFO_LVL_OFST) // defines in the fpga uint32_t I2C_Control_Reg = 0x0; diff --git a/slsDetectorServers/slsDetectorServer/src/XILINX_PLL.c b/slsDetectorServers/slsDetectorServer/src/XILINX_PLL.c new file mode 100644 index 000000000..8adec26be --- /dev/null +++ b/slsDetectorServers/slsDetectorServer/src/XILINX_PLL.c @@ -0,0 +1,201 @@ +// SPDX-License-Identifier: LGPL-3.0-or-other +// Copyright (C) 2021 Contributors to the SLS Detector Package +#include "XILINX_PLL.h" +#include "arm64.h" +#include "clogger.h" +#include +#include +#include + +// https://docs.amd.com/r/en-US/pg065-clk-wiz/Register-Space (simplified, we +// leave some things away) + +// clang-format off +#define XILINX_PLL_INPUT_FREQ (100000) // 100 MHz +#define XILINX_PLL_MIN_FREQ (10000) +#define XILINX_PLL_MAX_FREQ (250000) +#define XILINX_PLL_MAX_CLK_DIV (256) +#define XILINX_PLL_NUM_CLKS (7) +#define XILINX_PLL_MAX_NUM_CLKS_FOR_GET (3) +#define XILINX_PLL_STEP_SIZE (125) +#define XILINX_PLL_HALF_STEP_SIZE (62) + +#define XILINX_PLL_BASE_ADDR (0x0) +#define XILINX_PLL_MEASURE_BASE_ADDR0 (0x1000) // added externally, not part of CLKWIZ core for clks 0 and 1 +#define XILINX_PLL_MEASURE_BASE_ADDR0_MAX_CLKS (2) +#define XILINX_PLL_MEASURE_BASE_ADDR1 (0x2000) // for clks 2 to 6 +#define XILINX_PLL_MEASURE_WIDTH (8) // per clock + +#define XILINX_PLL_RESET_REG (0x000) +#define XILINX_PLL_RESET_VAL (0xA) + +#define XILINX_PLL_STATUS_REG (0x004) +#define XILINX_PLL_STATUS_LOCKED_OFST (0) +#define XILINX_PLL_STATUS_LOCKED_MSK (0x00000001 << XILINX_PLL_STATUS_LOCKED_OFST) + +#define XILINX_PLL_CLKCONFIG_REG (XILINX_PLL_BASE_ADDR + 0x200) +#define XILINX_PLL_DIVCLK_DIVIDE_OFST (0) +#define XILINX_PLL_DIVCLK_DIVIDE_MSK (0x000000FF << XILINX_PLL_DIVCLK_DIVIDE_OFST) +#define XILINX_PLL_CLKFBOUT_MULT_OFST (8) +#define XILINX_PLL_CLKFBOUT_MULT_MSK (0x000000FF << XILINX_PLL_CLKFBOUT_MULT_OFST) +#define XILINX_PLL_CLKFBOUT_FRAC_OFST (16) +#define XILINX_PLL_CLKFBOUT_FRAC_MSK (0x000003FF << XILINX_PLL_CLKFBOUT_FRAC_OFST) +// The value from 0 to 875 representing the fractional multiplied by 1000 +#define XILINX_PLL_CLKFBOUT_FRAC_MAX_VAL (875) + + +#define XILINX_PLL_CLKCONFIG_BASE_ADDR (XILINX_PLL_BASE_ADDR + 0x208) +#define XILINX_PLL_CLKCONFIG_WIDTH (3 * 4) // per clock (7 clocks) + +#define XILINX_PLL_CLK_DIV_REG_OFST (0) +#define XILINX_PLL_CLK_DIV_DIVIDE_OFST (0) +#define XILINX_PLL_CLK_DIV_DIVIDE_MSK (0x000000FF << XILINX_PLL_CLK_DIV_DIVIDE_OFST) +#define XILINX_PLL_CLK_DIV_FRAC_OFST (8) // works on IDX 0 only +#define XILINX_PLL_CLK_DIV_FRAC_MSK (0x000003FF << XILINX_PLL_CLK_DIV_FRAC_OFST) + +#define XILINX_PLL_CLK_PHASE_REG_OFST (4) // signed num for +/- phase +#define XILINX_PLL_CLK_PHASE_OFST (0) +#define XILINX_PLL_CLK_PHASE_MSK (0x0000FFFF << XILINX_PLL_CLK_PHASE_OFST) + +#define XILINX_PLL_CLK_DUTY_REG_OFST (8) // (in %) * 1000 +#define XILINX_PLL_CLK_DUTY_OFST (0) +#define XILINX_PLL_CLK_DUTY_MSK (0x0000FFFF << XILINX_PLL_CLK_DUTY_OFST) + + + +#define XILINX_PLL_LOAD_REG (0x25C) +#define XILINX_PLL_LOAD_RECONFIGURE_OFST (0) // load and reconfigure state machine +#define XILINX_PLL_LOAD_RECONFIGURE_MSK (0x00000001 << XILINX_PLL_LOAD_RECONFIGURE_OFST) +#define XILINX_PLL_LOAD_FROM_REGS_OFST (1) // 0 for default values as compiled into firmware +#define XILINX_PLL_LOAD_FROM_REGS_MSK (0x00000001 << XILINX_PLL_LOAD_FROM_REGS_OFST) + +// clang-format on + +// freq in kHz !! +int XILINX_PLL_setFrequency(uint32_t clk_index, uint32_t freq) { + if (clk_index >= XILINX_PLL_NUM_CLKS) { + LOG(logERROR, ("XILINX_PLL: Invalid clock index %d\n", clk_index)); + return 1; + } + if (freq < XILINX_PLL_MIN_FREQ || freq > XILINX_PLL_MAX_FREQ) { + LOG(logERROR, ("XILINX_PLL: Frequency %d kHz is out of range\n", freq)); + return 1; + } + + // calculate base clock frequency + uint32_t global_reg = bus_r_csp2(XILINX_PLL_CLKCONFIG_REG); +#ifdef VIRTUAL + global_reg = 3073; +#endif + uint32_t clkfbout_mult = ((global_reg & XILINX_PLL_CLKFBOUT_MULT_MSK) >> + XILINX_PLL_CLKFBOUT_MULT_OFST); + uint32_t clkfbout_frac = ((global_reg & XILINX_PLL_CLKFBOUT_FRAC_MSK) >> + XILINX_PLL_CLKFBOUT_FRAC_OFST); + uint32_t divclk_divide = ((global_reg & XILINX_PLL_DIVCLK_DIVIDE_MSK) >> + XILINX_PLL_DIVCLK_DIVIDE_OFST); + uint32_t base_clk_freq = clkfbout_mult * XILINX_PLL_INPUT_FREQ; + base_clk_freq += (clkfbout_frac * XILINX_PLL_INPUT_FREQ / + XILINX_PLL_CLKFBOUT_FRAC_MAX_VAL); + base_clk_freq /= divclk_divide; + + // calcualte clock divider + uint32_t clk_div = base_clk_freq / freq; + if (clk_div < 1 || clk_div > XILINX_PLL_MAX_CLK_DIV) { + LOG(logERROR, + ("XILINX_PLL: Invalid clock divider, need to change base clock\n")); + return 1; + } + + uint32_t clk_div_frac = 0; + // the first clock supports fractional division, increase the precision for + // that one fractional divide is not allowed in fixed or dynamic phase shift + // mode !!!! + if (clk_index == 0) { + float clk_div_frac_f = + (float)base_clk_freq / freq - clk_div; // eg. 2.333 => 0.333 + clk_div_frac = (uint32_t)round(clk_div_frac_f * 1000); // 0.333 => 333 + clk_div_frac = ((clk_div_frac + XILINX_PLL_HALF_STEP_SIZE) / + XILINX_PLL_STEP_SIZE) * + XILINX_PLL_STEP_SIZE; // round to multiples of step size, + // 333 = > 375 + if (clk_div_frac == 1000) { + clk_div_frac = 0; + clk_div++; + } + } + + LOG(logINFOBLUE, ("XILINX_PLL: Setting clock divider to %u.%u\n", clk_div, + clk_div_frac)); + uint32_t clk_addr = XILINX_PLL_CLKCONFIG_BASE_ADDR + + clk_index * XILINX_PLL_CLKCONFIG_WIDTH + + XILINX_PLL_CLK_DIV_REG_OFST; + uint32_t clk_config_val = ((clk_div << XILINX_PLL_CLK_DIV_DIVIDE_OFST) & + XILINX_PLL_CLK_DIV_DIVIDE_MSK) | + ((clk_div_frac << XILINX_PLL_CLK_DIV_FRAC_OFST) & + XILINX_PLL_CLK_DIV_FRAC_MSK); + + bus_w_csp2(clk_addr, clk_config_val); + XILINX_PLL_load(); + XILINX_PLL_waitForLock(); + + // wait for firmware to measure the actual frequency + usleep(2 * 1000 * 1000); + return 0; +} + +uint32_t XILINX_PLL_getFrequency(uint32_t clk_index) { + if (clk_index >= XILINX_PLL_NUM_CLKS) { + LOG(logERROR, ("XILINX_PLL: Invalid clock index %d\n", clk_index)); + return -1; + } + if (clk_index > XILINX_PLL_MAX_NUM_CLKS_FOR_GET) { + LOG(logERROR, + ("XILINX_PLL: get frequency not implemented for this clock %d\n", + clk_index)); + return -1; + } + + uint32_t base_addr = XILINX_PLL_MEASURE_BASE_ADDR0; + if (clk_index >= XILINX_PLL_MEASURE_BASE_ADDR0_MAX_CLKS) { + clk_index -= XILINX_PLL_MEASURE_BASE_ADDR0_MAX_CLKS; + base_addr = XILINX_PLL_MEASURE_BASE_ADDR1; + } + uint32_t addr = base_addr + clk_index * XILINX_PLL_MEASURE_WIDTH; + uint32_t counter_val = bus_r_csp2(addr); + // Hz => round to nearest kHz + uint32_t freq_kHz = (counter_val + 500) / 1000; // round to nearest kHz + return freq_kHz; +} + +bool XILINX_PLL_isLocked() { + uint32_t status = bus_r_csp2(XILINX_PLL_BASE_ADDR + XILINX_PLL_STATUS_REG); + return ((status & XILINX_PLL_STATUS_LOCKED_MSK) >> + XILINX_PLL_STATUS_LOCKED_OFST); +} + +void XILINX_PLL_reset() { + bus_w_csp2(XILINX_PLL_BASE_ADDR + XILINX_PLL_RESET_REG, + XILINX_PLL_RESET_VAL); +} + +void XILINX_PLL_load() { + bus_w_csp2( + XILINX_PLL_BASE_ADDR + XILINX_PLL_LOAD_REG, + (XILINX_PLL_LOAD_RECONFIGURE_MSK | XILINX_PLL_LOAD_FROM_REGS_MSK)); +} + +void XILINX_PLL_waitForLock() { +#ifdef VIRTUAL + return; +#endif + int timeout_us = 10 * 1000; + int count = 500; + while (count > 0) { + usleep(timeout_us); + if (XILINX_PLL_isLocked()) + return; + count--; + } + LOG(logERROR, ("XILINX_PLL: Timeout waiting for PLL to lock (%d ms)\n", + (count * timeout_us) / 1000)); +} \ No newline at end of file diff --git a/slsDetectorServers/slsDetectorServer/src/arm64.c b/slsDetectorServers/slsDetectorServer/src/arm64.c index 0c1cbc67f..034a9856b 100644 --- a/slsDetectorServers/slsDetectorServer/src/arm64.c +++ b/slsDetectorServers/slsDetectorServer/src/arm64.c @@ -13,11 +13,14 @@ /* global variables */ #define CSP0 (0xB0080000) #define CSP1 (0xB0050000) // udp -#define MEM_SIZE_CSP0 (0x10000) +#define CSP2 (0xA0000000) +#define MEM_SIZE_CSP0 (0x20000) #define MEM_SIZE_CSP1 (0x2000) // smaller size for udp +#define MEM_SIZE_CSP2 (0x4000) u_int32_t *csp0base = 0; u_int32_t *csp1base = 0; +u_int32_t *csp2base = 0; void bus_w(u_int32_t offset, u_int32_t data) { volatile u_int32_t *ptr1; @@ -31,6 +34,18 @@ u_int32_t bus_r(u_int32_t offset) { return *ptr1; } +void bus_w_csp2(u_int32_t offset, u_int32_t data) { + volatile u_int32_t *ptr1; + ptr1 = (u_int32_t *)(csp2base + offset / (sizeof(u_int32_t))); + *ptr1 = data; +} + +u_int32_t bus_r_csp2(u_int32_t offset) { + volatile u_int32_t *ptr1; + ptr1 = (u_int32_t *)(csp2base + offset / (sizeof(u_int32_t))); + return *ptr1; +} + uint64_t getU64BitReg(int aLSB, int aMSB) { uint64_t retval = bus_r(aMSB); retval = (retval << 32) | bus_r(aLSB); @@ -51,12 +66,12 @@ u_int32_t writeRegister(u_int32_t offset, u_int32_t data) { int mapCSP0(void) { LOG(logINFO, ("Mapping memory\n")); - u_int32_t csps[2] = {CSP0, CSP1}; - u_int32_t **cspbases[2] = {&csp0base, &csp1base}; - u_int32_t memsize[2] = {MEM_SIZE_CSP0, MEM_SIZE_CSP1}; - char names[2][10] = {"csp0base", "csp1base"}; + u_int32_t csps[3] = {CSP0, CSP1, CSP2}; + u_int32_t **cspbases[3] = {&csp0base, &csp1base, &csp2base}; + u_int32_t memsize[3] = {MEM_SIZE_CSP0, MEM_SIZE_CSP1, MEM_SIZE_CSP2}; + char names[3][10] = {"csp0base", "csp1base", "csp2base"}; - for (int i = 0; i < 2; ++i) { + for (int i = 0; i < 3; ++i) { // if not mapped if (*cspbases[i] == 0) { LOG(logINFO, ("\tMapping memory for %s\n", names[i])); diff --git a/slsDetectorServers/slsDetectorServer/src/common.c b/slsDetectorServers/slsDetectorServer/src/common.c index a978050f1..2bfc79bb7 100644 --- a/slsDetectorServers/slsDetectorServer/src/common.c +++ b/slsDetectorServers/slsDetectorServer/src/common.c @@ -504,8 +504,7 @@ int setupDetectorServer(char *mess, char *sname) { // blackfin boards (respawn) (only kept for backwards compatibility) #ifndef VIRTUAL -#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) || \ - defined(GOTTHARDD) +#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) // delete every line with DetectorServer in /etc/inittab strcpy(cmd, "sed -i '/DetectorServer/d' /etc/inittab"); if (executeCommand(cmd, retvals, logDEBUG1) == FAIL) { diff --git a/slsDetectorServers/slsDetectorServer/src/communication_funcs.c b/slsDetectorServers/slsDetectorServer/src/communication_funcs.c index 690eb0674..b53fe078b 100644 --- a/slsDetectorServers/slsDetectorServer/src/communication_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/communication_funcs.c @@ -590,13 +590,16 @@ int Server_SendResult(int fileDes, intType itype, void *retval, sendData(fileDes, &ret1, sizeof(ret1), INT32); if (ret == FAIL) { // send error message - if (strlen(mess)) + if (strlen(mess)) { sendData(fileDes, mess, MAX_STR_LENGTH, OTHER); + usleep(0); // test + } // debugging feature. should not happen. - else + else { LOG(logERROR, ("No error message provided for this failure in %s " "server. Will mess up TCP.\n", (isControlServer ? "control" : "stop"))); + } } // send return value sendData(fileDes, retval, retvalSize, itype); @@ -619,7 +622,7 @@ void getIpAddressinString(char *cip, uint32_t ip) { inet_ntop(AF_INET, &ip, cip, INET_ADDRSTRLEN); #else sprintf(cip, "%d.%d.%d.%d", (ip >> 24) & 0xff, (ip >> 16) & 0xff, - (ip >> 8) & 0xff, (ip)&0xff); + (ip >> 8) & 0xff, (ip) & 0xff); #endif } diff --git a/slsDetectorServers/slsDetectorServer/src/loadPattern.c b/slsDetectorServers/slsDetectorServer/src/loadPattern.c index 02399321e..929460897 100644 --- a/slsDetectorServers/slsDetectorServer/src/loadPattern.c +++ b/slsDetectorServers/slsDetectorServer/src/loadPattern.c @@ -11,6 +11,10 @@ #ifdef MYTHEN3D extern enum TLogLevel trimmingPrint; +extern uint32_t clkDivider[]; +#endif +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) +extern uint32_t clkFrequency[]; #endif #if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) @@ -50,27 +54,12 @@ void initializePatternWord() { memset(virtual_pattern, 0, sizeof(virtual_pattern)); } #endif -#endif -#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) uint64_t validate_readPatternIOControl() { -#if defined(CHIPTESTBOARDD) return getU64BitReg(PATTERN_IO_CNTRL_LSB_REG, PATTERN_IO_CNTRL_MSB_REG); -#elif defined(XILINX_CHIPTESTBOARDD) - return (uint64_t)(bus_r(PINIOCTRLREG)); -#endif } int validate_writePatternIOControl(char *message, uint64_t arg) { - // validate input -#ifdef XILINX_CHIPTESTBOARDD - if (arg > BIT32_MSK) { - strcpy(message, "Could not set pattern IO Control. Must be 32 bit for " - "this detector\n"); - LOG(logERROR, (message)); - return FAIL; - } -#endif writePatternIOControl(arg); @@ -91,15 +80,9 @@ int validate_writePatternIOControl(char *message, uint64_t arg) { } void writePatternIOControl(uint64_t word) { -#ifdef CHIPTESTBOARDD LOG(logINFO, ("Setting Pattern I/O Control: 0x%llx\n", (long long int)word)); setU64BitReg(word, PATTERN_IO_CNTRL_LSB_REG, PATTERN_IO_CNTRL_MSB_REG); -#elif defined(XILINX_CHIPTESTBOARDD) - uint32_t val = (uint32_t)word; - LOG(logINFO, ("Setting Pattern I/O Control: 0x%x\n", val)); - bus_w(PINIOCTRLREG, val); -#endif } #endif @@ -118,7 +101,7 @@ int validate_readPatternWord(char *message, int addr, uint64_t *word) { } uint64_t readPatternWord(int addr) { -#ifdef MYTHEN3D +#if defined(MYTHEN3D) || defined(XILINX_CHIPTESTBOARDD) LOG(logDEBUG1, (" Reading Pattern Word (addr:0x%x)\n", addr)); // the first word in RAM as base plus the offset of the word to write (addr) uint32_t reg_lsb = PATTERN_STEP0_LSB_REG + addr * REG_OFFSET * 2; @@ -178,7 +161,7 @@ void writePatternWord(int addr, uint64_t word) { LOG(logDEBUG1, ("Setting Pattern Word (addr:0x%x, word:0x%llx)\n", addr, (long long int)word)); -#ifndef MYTHEN3D +#ifdef CHIPTESTBOARDD uint32_t reg = PATTERN_CNTRL_REG; // write word @@ -195,7 +178,6 @@ void writePatternWord(int addr, uint64_t word) { #ifdef VIRTUAL virtual_pattern[addr] = word; #endif -// mythen #else // the first word in RAM as base plus the offset of the word to write (addr) uint32_t reg_lsb = PATTERN_STEP0_LSB_REG + addr * REG_OFFSET * 2; @@ -219,29 +201,15 @@ int validate_getPatternWaitAddresses(char *message, int level, int *addr) { } int getPatternWaitAddress(int level) { - switch (level) { - case 0: - return ((bus_r(PATTERN_WAIT_0_ADDR_REG) & PATTERN_WAIT_0_ADDR_MSK) >> - PATTERN_WAIT_0_ADDR_OFST); - case 1: - return ((bus_r(PATTERN_WAIT_1_ADDR_REG) & PATTERN_WAIT_1_ADDR_MSK) >> - PATTERN_WAIT_1_ADDR_OFST); - case 2: - return ((bus_r(PATTERN_WAIT_2_ADDR_REG) & PATTERN_WAIT_2_ADDR_MSK) >> - PATTERN_WAIT_2_ADDR_OFST); -#ifndef MYTHEN3D - case 3: - return ((bus_r(PATTERN_WAIT_3_ADDR_REG) & PATTERN_WAIT_3_ADDR_MSK) >> - PATTERN_WAIT_3_ADDR_OFST); - case 4: - return ((bus_r(PATTERN_WAIT_4_ADDR_REG) & PATTERN_WAIT_4_ADDR_MSK) >> - PATTERN_WAIT_4_ADDR_OFST); - case 5: - return ((bus_r(PATTERN_WAIT_5_ADDR_REG) & PATTERN_WAIT_5_ADDR_MSK) >> - PATTERN_WAIT_5_ADDR_OFST); -#endif - default: + if (level < 0 || level >= MAX_LEVELS) { return -1; + } else { + return ((bus_r(PATTERN_LOOPDEF_BASE + + (PATTERN_WAIT_ADDR_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET) & + PATTERN_WAIT_ADDR_MSK) >> + PATTERN_WAIT_ADDR_OFST); } } @@ -285,39 +253,18 @@ void setPatternWaitAddress(int level, int addr) { LOG(logINFO, #endif ("Setting Pattern Wait Address (level:%d, addr:0x%x)\n", level, addr)); - switch (level) { - case 0: - bus_w(PATTERN_WAIT_0_ADDR_REG, - ((addr << PATTERN_WAIT_0_ADDR_OFST) & PATTERN_WAIT_0_ADDR_MSK)); - break; - case 1: - bus_w(PATTERN_WAIT_1_ADDR_REG, - ((addr << PATTERN_WAIT_1_ADDR_OFST) & PATTERN_WAIT_1_ADDR_MSK)); - break; - case 2: - bus_w(PATTERN_WAIT_2_ADDR_REG, - ((addr << PATTERN_WAIT_2_ADDR_OFST) & PATTERN_WAIT_2_ADDR_MSK)); - break; -#ifndef MYTHEN3D - case 3: - bus_w(PATTERN_WAIT_3_ADDR_REG, - ((addr << PATTERN_WAIT_3_ADDR_OFST) & PATTERN_WAIT_3_ADDR_MSK)); - break; - case 4: - bus_w(PATTERN_WAIT_4_ADDR_REG, - ((addr << PATTERN_WAIT_4_ADDR_OFST) & PATTERN_WAIT_4_ADDR_MSK)); - break; - case 5: - bus_w(PATTERN_WAIT_5_ADDR_REG, - ((addr << PATTERN_WAIT_5_ADDR_OFST) & PATTERN_WAIT_5_ADDR_MSK)); - break; -#endif - default: + if (level < 0 || level >= MAX_LEVELS) { return; + } else { + bus_w(PATTERN_LOOPDEF_BASE + (PATTERN_WAIT_ADDR_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET, + ((addr << PATTERN_WAIT_ADDR_OFST) & PATTERN_WAIT_ADDR_MSK)); } } -int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime) { +int validate_getPatternWaitClocksAndInterval(char *message, int level, + uint64_t *waittime, int clocks) { // validate input if (level < 0 || level >= MAX_LEVELS) { sprintf(message, @@ -326,38 +273,45 @@ int validate_getPatternWaitTime(char *message, int level, uint64_t *waittime) { LOG(logERROR, (message)); return FAIL; } - *waittime = getPatternWaitTime(level); + if (clocks) { + *waittime = getPatternWaitClocks(level); + } else { + *waittime = getPatternWaitInterval(level); + } return OK; } -uint64_t getPatternWaitTime(int level) { - switch (level) { - case 0: - return getU64BitReg(PATTERN_WAIT_TIMER_0_LSB_REG, - PATTERN_WAIT_TIMER_0_MSB_REG); - case 1: - return getU64BitReg(PATTERN_WAIT_TIMER_1_LSB_REG, - PATTERN_WAIT_TIMER_1_MSB_REG); - case 2: - return getU64BitReg(PATTERN_WAIT_TIMER_2_LSB_REG, - PATTERN_WAIT_TIMER_2_MSB_REG); -#ifndef MYTHEN3D - case 3: - return getU64BitReg(PATTERN_WAIT_TIMER_3_LSB_REG, - PATTERN_WAIT_TIMER_3_MSB_REG); - case 4: - return getU64BitReg(PATTERN_WAIT_TIMER_4_LSB_REG, - PATTERN_WAIT_TIMER_4_MSB_REG); - case 5: - return getU64BitReg(PATTERN_WAIT_TIMER_5_LSB_REG, - PATTERN_WAIT_TIMER_5_MSB_REG); -#endif - default: +uint64_t getPatternWaitClocks(int level) { + if (level < 0 || level >= MAX_LEVELS) { return -1; + } else { + return getU64BitReg( + PATTERN_LOOPDEF_BASE + (PATTERN_WAIT_TIMER_LSB_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET, + PATTERN_LOOPDEF_BASE + (PATTERN_WAIT_TIMER_MSB_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET); } } -int validate_setPatternWaitTime(char *message, int level, uint64_t waittime) { +uint64_t getPatternWaitInterval(int level) { + uint64_t numClocks = getPatternWaitClocks(level); + int runclk = 0; +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + runclk = clkFrequency[RUN_CLK]; +#elif MYTHEN3D + runclk = clkDivider[SYSTEM_C0]; +#endif + if (runclk == 0) { + LOG(logERROR, ("runclk is 0. Cannot divide by 0. Returning -1.\n")); + return -1; + } + return numClocks / (NS_TO_CLK_CYCLE * runclk); +} + +int validate_setPatternWaitClocksAndInterval(char *message, int level, + uint64_t waittime, int clocks) { // validate input if (level < 0 || level >= MAX_LEVELS) { sprintf(message, @@ -367,12 +321,21 @@ int validate_setPatternWaitTime(char *message, int level, uint64_t waittime) { return FAIL; } - setPatternWaitTime(level, waittime); + uint64_t retval = 0; + if (clocks) { + setPatternWaitClocks(level, waittime); + // validate result + retval = getPatternWaitClocks(level); + LOG(logDEBUG1, ("Pattern wait time in clocks (level:%d) retval: %d\n", + level, (long long int)retval)); + } else { + setPatternWaitInterval(level, waittime); + // validate result + retval = getPatternWaitInterval(level); + LOG(logDEBUG1, ("Pattern wait time (level:%d) retval: %d\n", level, + (long long int)retval)); + } - // validate result - uint64_t retval = getPatternWaitTime(level); - LOG(logDEBUG1, ("Pattern wait time (level:%d) retval: %d\n", level, - (long long int)retval)); int ret = OK; char mode[128]; memset(mode, 0, sizeof(mode)); @@ -381,46 +344,47 @@ int validate_setPatternWaitTime(char *message, int level, uint64_t waittime) { return ret; } -void setPatternWaitTime(int level, uint64_t t) { +void setPatternWaitClocks(int level, uint64_t t) { #ifdef MYTHEN3D LOG(trimmingPrint, #else LOG(logINFO, #endif - ("Setting Pattern Wait Time (level:%d) :%lld\n", level, + ("Setting Pattern Wait Time in clocks (level:%d) :%lld\n", level, (long long int)t)); - switch (level) { - case 0: - setU64BitReg(t, PATTERN_WAIT_TIMER_0_LSB_REG, - PATTERN_WAIT_TIMER_0_MSB_REG); - break; - case 1: - setU64BitReg(t, PATTERN_WAIT_TIMER_1_LSB_REG, - PATTERN_WAIT_TIMER_1_MSB_REG); - break; - case 2: - setU64BitReg(t, PATTERN_WAIT_TIMER_2_LSB_REG, - PATTERN_WAIT_TIMER_2_MSB_REG); - break; -#ifndef MYTHEN3D - case 3: - setU64BitReg(t, PATTERN_WAIT_TIMER_3_LSB_REG, - PATTERN_WAIT_TIMER_3_MSB_REG); - break; - case 4: - setU64BitReg(t, PATTERN_WAIT_TIMER_4_LSB_REG, - PATTERN_WAIT_TIMER_4_MSB_REG); - break; - case 5: - setU64BitReg(t, PATTERN_WAIT_TIMER_5_LSB_REG, - PATTERN_WAIT_TIMER_5_MSB_REG); - break; -#endif - default: + + if (level < 0 || level >= MAX_LEVELS) { return; + } else { + return setU64BitReg( + t, + PATTERN_LOOPDEF_BASE + (PATTERN_WAIT_TIMER_LSB_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET, + PATTERN_LOOPDEF_BASE + (PATTERN_WAIT_TIMER_MSB_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET); } } +void setPatternWaitInterval(int level, uint64_t t) { +#ifdef MYTHEN3D + LOG(trimmingPrint, +#else + LOG(logINFO, +#endif + ("Setting Pattern Wait Time (level:%d) :%lld ns\n", level, + (long long int)t)); + int runclk = 0; +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) + runclk = clkFrequency[RUN_CLK]; +#elif MYTHEN3D + runclk = clkDivider[SYSTEM_C0]; +#endif + uint64_t numClocks = t * (NS_TO_CLK_CYCLE * runclk); + setPatternWaitClocks(level, numClocks); +} + int validate_getPatternLoopCycles(char *message, int level, int *numLoops) { // validate input if (level < 0 || level >= MAX_LEVELS) { @@ -435,23 +399,13 @@ int validate_getPatternLoopCycles(char *message, int level, int *numLoops) { } int getPatternLoopCycles(int level) { - switch (level) { - case 0: - return bus_r(PATTERN_LOOP_0_ITERATION_REG); - case 1: - return bus_r(PATTERN_LOOP_1_ITERATION_REG); - case 2: - return bus_r(PATTERN_LOOP_2_ITERATION_REG); -#ifndef MYTHEN3D - case 3: - return bus_r(PATTERN_LOOP_3_ITERATION_REG); - case 4: - return bus_r(PATTERN_LOOP_4_ITERATION_REG); - case 5: - return bus_r(PATTERN_LOOP_5_ITERATION_REG); -#endif - default: + if (level < 0 || level >= MAX_LEVELS) { return -1; + } else { + return bus_r(PATTERN_LOOPDEF_BASE + + (PATTERN_LOOP_ITERATION_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET); } } @@ -490,29 +444,13 @@ void setPatternLoopCycles(int level, int nLoop) { LOG(logINFO, #endif ("Setting Pattern Loop Cycles(level:%d, nLoop:%d)\n", level, nLoop)); - switch (level) { - case 0: - bus_w(PATTERN_LOOP_0_ITERATION_REG, nLoop); - break; - case 1: - bus_w(PATTERN_LOOP_1_ITERATION_REG, nLoop); - break; - case 2: - bus_w(PATTERN_LOOP_2_ITERATION_REG, nLoop); - break; -#ifndef MYTHEN3D - case 3: - bus_w(PATTERN_LOOP_3_ITERATION_REG, nLoop); - break; - case 4: - bus_w(PATTERN_LOOP_4_ITERATION_REG, nLoop); - break; - case 5: - bus_w(PATTERN_LOOP_5_ITERATION_REG, nLoop); - break; -#endif - default: + if (level < 0 || level >= MAX_LEVELS) { return; + } else { + bus_w(PATTERN_LOOPDEF_BASE + (PATTERN_LOOP_ITERATION_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET, + nLoop); } } @@ -583,59 +521,22 @@ int validate_getPatternLoopAddresses(char *message, int level, int *startAddr, } void getPatternLoopAddresses(int level, int *startAddr, int *stopAddr) { - switch (level) { - case 0: - *startAddr = - ((bus_r(PATTERN_LOOP_0_ADDR_REG) & PATTERN_LOOP_0_ADDR_STRT_MSK) >> - PATTERN_LOOP_0_ADDR_STRT_OFST); - *stopAddr = - ((bus_r(PATTERN_LOOP_0_ADDR_REG) & PATTERN_LOOP_0_ADDR_STP_MSK) >> - PATTERN_LOOP_0_ADDR_STP_OFST); - break; - case 1: - *startAddr = - ((bus_r(PATTERN_LOOP_1_ADDR_REG) & PATTERN_LOOP_1_ADDR_STRT_MSK) >> - PATTERN_LOOP_1_ADDR_STRT_OFST); - *stopAddr = - ((bus_r(PATTERN_LOOP_1_ADDR_REG) & PATTERN_LOOP_1_ADDR_STP_MSK) >> - PATTERN_LOOP_1_ADDR_STP_OFST); - break; - case 2: - *startAddr = - ((bus_r(PATTERN_LOOP_2_ADDR_REG) & PATTERN_LOOP_2_ADDR_STRT_MSK) >> - PATTERN_LOOP_2_ADDR_STRT_OFST); - *stopAddr = - ((bus_r(PATTERN_LOOP_2_ADDR_REG) & PATTERN_LOOP_2_ADDR_STP_MSK) >> - PATTERN_LOOP_2_ADDR_STP_OFST); - break; -#ifndef MYTHEN3D - case 3: - *startAddr = - ((bus_r(PATTERN_LOOP_3_ADDR_REG) & PATTERN_LOOP_3_ADDR_STRT_MSK) >> - PATTERN_LOOP_3_ADDR_STRT_OFST); - *stopAddr = - ((bus_r(PATTERN_LOOP_3_ADDR_REG) & PATTERN_LOOP_3_ADDR_STP_MSK) >> - PATTERN_LOOP_3_ADDR_STP_OFST); - break; - case 4: - *startAddr = - ((bus_r(PATTERN_LOOP_4_ADDR_REG) & PATTERN_LOOP_4_ADDR_STRT_MSK) >> - PATTERN_LOOP_4_ADDR_STRT_OFST); - *stopAddr = - ((bus_r(PATTERN_LOOP_4_ADDR_REG) & PATTERN_LOOP_4_ADDR_STP_MSK) >> - PATTERN_LOOP_4_ADDR_STP_OFST); - break; - case 5: - *startAddr = - ((bus_r(PATTERN_LOOP_5_ADDR_REG) & PATTERN_LOOP_5_ADDR_STRT_MSK) >> - PATTERN_LOOP_5_ADDR_STRT_OFST); - *stopAddr = - ((bus_r(PATTERN_LOOP_5_ADDR_REG) & PATTERN_LOOP_5_ADDR_STP_MSK) >> - PATTERN_LOOP_5_ADDR_STP_OFST); - break; -#endif - default: - return; + if (level < 0 || level >= MAX_LEVELS) { + *startAddr = -1; + *stopAddr = -1; + } else { + *startAddr = ((bus_r(PATTERN_LOOPDEF_BASE + + (PATTERN_LOOP_ADDR_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET) & + PATTERN_LOOP_ADDR_STRT_MSK) >> + PATTERN_LOOP_ADDR_STRT_OFST); + *stopAddr = ((bus_r(PATTERN_LOOPDEF_BASE + + (PATTERN_LOOP_ADDR_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET) & + PATTERN_LOOP_ADDR_STP_MSK) >> + PATTERN_LOOP_ADDR_STP_OFST); } } @@ -691,53 +592,16 @@ void setPatternLoopAddresses(int level, int startAddr, int stopAddr) { ("Setting Pattern Loop Address (level:%d, startaddr:0x%x, " "stopaddr:0x%x)\n", level, startAddr, stopAddr)); - switch (level) { - case 0: - bus_w(PATTERN_LOOP_0_ADDR_REG, - ((startAddr << PATTERN_LOOP_0_ADDR_STRT_OFST) & - PATTERN_LOOP_0_ADDR_STRT_MSK) | - ((stopAddr << PATTERN_LOOP_0_ADDR_STP_OFST) & - PATTERN_LOOP_0_ADDR_STP_MSK)); - break; - case 1: - bus_w(PATTERN_LOOP_1_ADDR_REG, - ((startAddr << PATTERN_LOOP_1_ADDR_STRT_OFST) & - PATTERN_LOOP_1_ADDR_STRT_MSK) | - ((stopAddr << PATTERN_LOOP_1_ADDR_STP_OFST) & - PATTERN_LOOP_1_ADDR_STP_MSK)); - break; - case 2: - bus_w(PATTERN_LOOP_2_ADDR_REG, - ((startAddr << PATTERN_LOOP_2_ADDR_STRT_OFST) & - PATTERN_LOOP_2_ADDR_STRT_MSK) | - ((stopAddr << PATTERN_LOOP_2_ADDR_STP_OFST) & - PATTERN_LOOP_2_ADDR_STP_MSK)); - break; -#ifndef MYTHEN3D - case 3: - bus_w(PATTERN_LOOP_3_ADDR_REG, - ((startAddr << PATTERN_LOOP_3_ADDR_STRT_OFST) & - PATTERN_LOOP_3_ADDR_STRT_MSK) | - ((stopAddr << PATTERN_LOOP_3_ADDR_STP_OFST) & - PATTERN_LOOP_3_ADDR_STP_MSK)); - break; - case 4: - bus_w(PATTERN_LOOP_4_ADDR_REG, - ((startAddr << PATTERN_LOOP_4_ADDR_STRT_OFST) & - PATTERN_LOOP_4_ADDR_STRT_MSK) | - ((stopAddr << PATTERN_LOOP_4_ADDR_STP_OFST) & - PATTERN_LOOP_4_ADDR_STP_MSK)); - break; - case 5: - bus_w(PATTERN_LOOP_5_ADDR_REG, - ((startAddr << PATTERN_LOOP_5_ADDR_STRT_OFST) & - PATTERN_LOOP_5_ADDR_STRT_MSK) | - ((stopAddr << PATTERN_LOOP_5_ADDR_STP_OFST) & - PATTERN_LOOP_5_ADDR_STP_MSK)); - break; -#endif - default: + if (level < 0 || level >= MAX_LEVELS) { return; + } else { + bus_w(PATTERN_LOOPDEF_BASE + (PATTERN_LOOP_ADDR_WORD_OFST + + level * PATTERN_LOOPDEF_NWORDS_OFST) * + REG_OFFSET, + ((startAddr << PATTERN_LOOP_ADDR_STRT_OFST) & + PATTERN_LOOP_ADDR_STRT_MSK) | + ((stopAddr << PATTERN_LOOP_ADDR_STP_OFST) & + PATTERN_LOOP_ADDR_STP_MSK)); } } @@ -759,17 +623,43 @@ uint64_t getPatternBitMask() { return getU64BitReg(PATTERN_SET_LSB_REG, PATTERN_SET_MSB_REG); } -#ifdef MYTHEN3D void startPattern() { LOG(logINFOBLUE, ("Starting Pattern\n")); +#ifdef MYTHEN3D bus_w(CONTROL_REG, bus_r(CONTROL_REG) | CONTROL_STRT_PATTERN_MSK); usleep(1); while (bus_r(PAT_STATUS_REG) & PAT_STATUS_RUN_BUSY_MSK) { usleep(1); } +#elif CHIPTESTBOARDD + // we only want to run the pattern here. No acquisition, no UDP packets + + // disable 10G UDP temporarily + // except if the pattern explicitly contains udp trigger points + uint32_t conf_reg_tmp = bus_r(CONFIG_REG); + if ((bus_r(STREAMING_CTRL_REG) & STREAMING_CTRL_ENA_MSK) == 0) { + bus_w(CONFIG_REG, conf_reg_tmp & ~CONFIG_GB10_SND_UDP_MSK); + } + + // run the pattern, wait till done + bus_w(CONTROL_REG, bus_r(CONTROL_REG) | CONTROL_STRT_ACQSTN_MSK); + bus_w(CONTROL_REG, bus_r(CONTROL_REG) & ~CONTROL_STRT_ACQSTN_MSK); + usleep(1); + while (bus_r(STATUS_REG) & STATUS_RN_BSY_MSK) { + usleep(1); + } + + // go back to original config + bus_w(CONFIG_REG, conf_reg_tmp); +#elif XILINX_CHIPTESTBOARDD + bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) | START_F_MSK); + usleep(1); + while (bus_r(FLOW_CONTROL_REG) & RSM_BUSY_MSK) { + usleep(1); + } +#endif LOG(logINFOBLUE, ("Pattern done\n")); } -#endif char *getPatternFileName() { return clientPatternfile; } @@ -797,7 +687,7 @@ int loadPattern(char *message, enum TLogLevel printLevel, } } // iocontrol -#if !defined(MYTHEN3D) && !defined(XILINX_CHIPTESTBOARDD) // TODO +#if !defined(MYTHEN3D) if (ret == OK) { ret = validate_writePatternIOControl(message, pat->ioctrl); } @@ -830,7 +720,8 @@ int loadPattern(char *message, enum TLogLevel printLevel, } // wait time - ret = validate_setPatternWaitTime(message, i, pat->waittime[i]); + ret = validate_setPatternWaitClocksAndInterval(message, i, + pat->waittime[i], 1); if (ret == FAIL) { break; } @@ -857,7 +748,7 @@ int getPattern(char *message, patternParameters *pat) { pat->word[i] = retval64; } // iocontrol -#if !defined(MYTHEN3D) && !defined(XILINX_CHIPTESTBOARDD) // TODO +#if !defined(MYTHEN3D) if (ret == OK) { validate_readPatternIOControl(); } @@ -894,7 +785,8 @@ int getPattern(char *message, patternParameters *pat) { pat->wait[i] = retval1; // wait time - ret = validate_getPatternWaitTime(message, i, &retval64); + ret = validate_getPatternWaitClocksAndInterval(message, i, + &retval64, 1); if (ret == FAIL) { break; } @@ -993,12 +885,12 @@ int loadPatternFile(char *patFname, char *errMessage) { } // patioctrl -#if !defined(MYTHEN3D) && !defined(XILINX_CHIPTESTBOARDD) // TODO +#if !defined(MYTHEN3D) // TODO if (!strncmp(line, "patioctrl", strlen("patioctrl"))) { uint64_t arg = 0; // cannot scan values -#ifdef VIRTUAL +#if defined(VIRTUAL) || defined(XILINX_CHIPTESTBOARDD) if (sscanf(line, "%s 0x%lx", command, &arg) != 2) { #else if (sscanf(line, "%s 0x%llx", command, &arg) != 2) { @@ -1095,7 +987,8 @@ int loadPatternFile(char *patFname, char *errMessage) { break; } - if (validate_setPatternWaitTime(temp, level, waittime) == FAIL) { + if (validate_setPatternWaitClocksAndInterval(temp, level, waittime, + 1) == FAIL) { break; } } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c index 5064999b3..df17a5518 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer.c @@ -30,11 +30,7 @@ extern int checkModuleFlag; extern int ignoreConfigFileFlag; // Global variables from slsDetectorFunctionList -#ifdef GOTTHARDD -extern int phaseShift; -#endif -#if defined(GOTTHARDD) || defined(GOTTHARD2D) || defined(EIGERD) || \ - defined(MYTHEN3D) +#if defined(GOTTHARD2D) || defined(EIGERD) || defined(MYTHEN3D) extern int masterCommandLine; #endif #ifdef EIGERD @@ -59,8 +55,7 @@ int main(int argc, char *argv[]) { char version[MAX_STR_LENGTH] = {0}; memset(version, 0, MAX_STR_LENGTH); ignoreConfigFileFlag = 0; -#if defined(GOTTHARDD) || defined(GOTTHARD2D) || defined(EIGERD) || \ - defined(MYTHEN3D) +#if defined(GOTTHARD2D) || defined(EIGERD) || defined(MYTHEN3D) masterCommandLine = -1; #endif #ifdef EIGERD @@ -82,17 +77,16 @@ int main(int argc, char *argv[]) { "\t-g, --nomodule : [Mythen3][Gotthard2][Xilinx Ctb] \n" "\t Generic or No Module mode. Skips " "detector type checks. \n" - "\t-f, --phaseshift : [Gotthard] only. Sets phase shift. \n" "\t-d, --devel : Developer mode. Skips firmware " "checks. \n" "\t-u, --update : Update mode. Skips firmware checks " "and " "initial detector setup. \n" "\t-i, --ignore-config : " - "[Eiger][Jungfrau][Gotthard][Gotthard2] \n" + "[Eiger][Jungfrau][Gotthard2] \n" "\t Ignore config file. \n" "\t-m, --master : " - "[Eiger][Mythen3][Gotthard][Gotthard2] \n" + "[Eiger][Mythen3][Gotthard2] \n" "\t Set Master to 0 or 1. Precedence " "over " "config file. Only for virtual servers except Eiger. \n" @@ -117,7 +111,6 @@ int main(int argc, char *argv[]) { {"help", no_argument, NULL, 'h'}, {"version", no_argument, NULL, 'v'}, {"port", required_argument, NULL, 'p'}, - {"phaseshift", required_argument, NULL, 'f'}, {"nomodule", no_argument, NULL, 'g'}, // generic {"devel", no_argument, NULL, 'd'}, {"update", no_argument, NULL, 'u'}, @@ -133,7 +126,7 @@ int main(int argc, char *argv[]) { int c = 0; while (c != -1) { - c = getopt_long(argc, argv, "hvp:f:gduim:t:s", long_options, + c = getopt_long(argc, argv, "hvp:gduim:t:s", long_options, &option_index); // Detect the end of the options @@ -143,9 +136,7 @@ int main(int argc, char *argv[]) { switch (c) { case 'v': -#ifdef GOTTHARDD - strcpy(version, APIGOTTHARD); -#elif EIGERD +#ifdef EIGERD strcpy(version, APIEIGER); #elif JUNGFRAUD strcpy(version, APIJUNGFRAU); @@ -157,33 +148,20 @@ int main(int argc, char *argv[]) { strcpy(version, APIMYTHEN3); #elif GOTTHARD2D strcpy(version, APIGOTTHARD2); +#elif XILINX_CHIPTESTBOARDD + strcpy(version, APIXILINXCTB); #endif LOG(logINFO, ("SLS Detector Server Version: %s\n", version)); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; case 'p': if (sscanf(optarg, "%d", &portno) != 1) { LOG(logERROR, ("Cannot scan port argument\n%s", helpMessage)); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } LOG(logINFO, ("Detected port: %d\n", portno)); break; - case 'f': -#ifndef GOTTHARDD - LOG(logERROR, - ("Phase shift argument not implemented for this detector\n")); - exit(EXIT_FAILURE); -#else - if (sscanf(optarg, "%d", &phaseShift) != 1) { - LOG(logERROR, - ("Cannot scan phase shift argument\n%s", helpMessage)); - exit(EXIT_FAILURE); - } - LOG(logINFO, ("Detected phase shift: %d\n", phaseShift)); -#endif - break; - case 'g': LOG(logINFO, ("Detected generic mode (no module)\n")); checkModuleFlag = 0; @@ -205,13 +183,12 @@ int main(int argc, char *argv[]) { break; case 'i': -#if defined(EIGERD) || defined(GOTTHARDD) || defined(GOTTHARD2D) || \ - defined(JUNGFRAUD) +#if defined(EIGERD) || defined(GOTTHARD2D) || defined(JUNGFRAUD) LOG(logINFO, ("Ignoring config file\n")); ignoreConfigFileFlag = 1; #else LOG(logERROR, ("No server config files for this detector\n")); - exit(EXIT_FAILURE); + return EXIT_FAILURE; #endif break; @@ -219,12 +196,11 @@ int main(int argc, char *argv[]) { #if !defined(VIRTUAL) && !defined(EIGERD) LOG(logERROR, ("Cannot set master via the detector server for this " "detector\n")); - exit(EXIT_FAILURE); -#elif defined(GOTTHARDD) || defined(GOTTHARD2D) || defined(EIGERD) || \ - defined(MYTHEN3D) + return EXIT_FAILURE; +#elif defined(GOTTHARD2D) || defined(EIGERD) || defined(MYTHEN3D) if (sscanf(optarg, "%d", &masterCommandLine) != 1) { LOG(logERROR, ("Cannot scan master argument\n%s", helpMessage)); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } if (masterCommandLine == 1) { LOG(logINFO, ("Detector Master mode\n")); @@ -233,7 +209,7 @@ int main(int argc, char *argv[]) { } #else LOG(logERROR, ("No master implemented for this detector server\n")); - exit(EXIT_FAILURE); + return EXIT_FAILURE; #endif break; @@ -241,7 +217,7 @@ int main(int argc, char *argv[]) { #ifdef EIGERD if (sscanf(optarg, "%d", &topCommandLine) != 1) { LOG(logERROR, ("Cannot scan top argument\n%s", helpMessage)); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } if (topCommandLine == 1) { LOG(logINFO, ("Detector Top mode\n")); @@ -250,16 +226,16 @@ int main(int argc, char *argv[]) { } #else LOG(logERROR, ("No top implemented for this detector server\n")); - exit(EXIT_FAILURE); + return EXIT_FAILURE; #endif break; case 'h': printf("%s", helpMessage); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; default: printf("\n%s", helpMessage); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } } @@ -400,5 +376,5 @@ int main(int argc, char *argv[]) { #endif } LOG(logINFO, ("Goodbye!\n")); - return 0; + return EXIT_SUCCESS; } diff --git a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c index ca5cc4e17..157daa377 100644 --- a/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c +++ b/slsDetectorServers/slsDetectorServer/src/slsDetectorServer_funcs.c @@ -20,9 +20,7 @@ #include // defined in the detector specific Makefile -#ifdef GOTTHARDD -const enum detectorType myDetectorType = GOTTHARD; -#elif EIGERD +#ifdef EIGERD const enum detectorType myDetectorType = EIGER; #elif JUNGFRAUD const enum detectorType myDetectorType = JUNGFRAU; @@ -115,6 +113,28 @@ int printSocketReadError() { return FAIL; } +int sendError(int file_des) { + ret = FAIL; + LOG(logERROR, (mess)); + Server_SendResult(file_des, INT32, NULL, 0); + return ret; +} + +void setMemoryAllocationErrorMessage() { + struct sysinfo info; + sysinfo(&info); + sprintf( + mess, + "Memory allocation error (%s). Available space: %d MB. Please reboot", + getFunctionNameFromEnum((enum detFuncs)fnum), + (int)(info.freeram / (1024 * 1024))); +#ifdef EIGERD + strcat(mess, ".\n"); +#else + strcat(mess, " using sls_detector_put rebootcontroller.\n"); +#endif +} + void init_detector() { memset(udpDetails, 0, sizeof(udpDetails)); #ifdef VIRTUAL @@ -259,7 +279,6 @@ void function_table() { flist[F_SET_STORAGE_CELL_DELAY] = &set_storage_cell_delay; flist[F_GET_FRAMES_LEFT] = &get_frames_left; flist[F_GET_TRIGGERS_LEFT] = &get_triggers_left; - flist[F_GET_EXPTIME_LEFT] = &get_exptime_left; flist[F_GET_PERIOD_LEFT] = &get_period_left; flist[F_GET_DELAY_AFTER_TRIGGER_LEFT] = &get_delay_after_trigger_left; flist[F_GET_MEASURED_PERIOD] = &get_measured_period; @@ -268,8 +287,6 @@ void function_table() { flist[F_GET_ACTUAL_TIME] = &get_actual_time; flist[F_GET_MEASUREMENT_TIME] = &get_measurement_time; flist[F_SET_DYNAMIC_RANGE] = &set_dynamic_range; - flist[F_SET_ROI] = &set_roi; - flist[F_GET_ROI] = &get_roi; flist[F_LOCK_SERVER] = &lock_server; flist[F_GET_LAST_CLIENT_IP] = &get_last_client_ip; flist[F_ENABLE_TEN_GIGA] = &enable_ten_giga; @@ -280,7 +297,7 @@ void function_table() { flist[F_SET_PATTERN_LOOP_ADDRESSES] = &set_pattern_loop_addresses; flist[F_SET_PATTERN_LOOP_CYCLES] = &set_pattern_loop_cycles; flist[F_SET_PATTERN_WAIT_ADDR] = &set_pattern_wait_addr; - flist[F_SET_PATTERN_WAIT_TIME] = &set_pattern_wait_time; + flist[F_SET_PATTERN_WAIT_CLOCKS] = &set_pattern_wait_clocks; flist[F_SET_PATTERN_MASK] = &set_pattern_mask; flist[F_GET_PATTERN_MASK] = &get_pattern_mask; flist[F_SET_PATTERN_BIT_MASK] = &set_pattern_bit_mask; @@ -496,7 +513,8 @@ void function_table() { flist[F_SET_TIMING_INFO_DECODER] = &set_timing_info_decoder; flist[F_GET_COLLECTION_MODE] = &get_collection_mode; flist[F_SET_COLLECTION_MODE] = &set_collection_mode; - + flist[F_GET_PATTERN_WAIT_INTERVAL] = &get_pattern_wait_interval; + flist[F_SET_PATTERN_WAIT_INTERVAL] = &set_pattern_wait_interval; // check if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) { LOG(logERROR, ("The last detector function enum has reached its " @@ -620,7 +638,7 @@ int get_external_signal_flag(int file_des) { LOG(logDEBUG1, ("Getting external signal flag (%d)\n", arg)); -#if !defined(GOTTHARDD) && !defined(MYTHEN3D) +#if !defined(MYTHEN3D) functionNotImplemented(); #else // get @@ -651,7 +669,7 @@ int set_external_signal_flag(int file_des) { LOG(logDEBUG1, ("Setting external signal flag [%d] to %d\n", signalIndex, flag)); -#if !defined(GOTTHARDD) && !defined(MYTHEN3D) +#if !defined(MYTHEN3D) functionNotImplemented(); #else if (Server_VerifyLock() == OK) { @@ -809,8 +827,8 @@ int set_firmware_test(int file_des) { memset(mess, 0, sizeof(mess)); LOG(logDEBUG1, ("Executing firmware test\n")); -#if !defined(GOTTHARDD) && !defined(JUNGFRAUD) && !defined(MOENCHD) && \ - !defined(CHIPTESTBOARDD) && !defined(GOTTHARD2D) && !defined(MYTHEN3D) && \ +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ + !defined(GOTTHARD2D) && !defined(MYTHEN3D) && \ !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else @@ -828,8 +846,8 @@ int set_bus_test(int file_des) { memset(mess, 0, sizeof(mess)); LOG(logDEBUG1, ("Executing bus test\n")); -#if !defined(GOTTHARDD) && !defined(JUNGFRAUD) && !defined(MOENCHD) && \ - !defined(CHIPTESTBOARDD) && !defined(GOTTHARD2D) && !defined(MYTHEN3D) +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ + !defined(GOTTHARD2D) && !defined(MYTHEN3D) functionNotImplemented(); #else ret = testBus(); @@ -850,8 +868,7 @@ int set_image_test_mode(int file_des) { return printSocketReadError(); LOG(logDEBUG1, ("Setting image test mode to \n", arg)); -#if defined(GOTTHARDD) || \ - ((defined(EIGERD) || defined(JUNGFRAUD) || defined(MOENCHD)) && \ +#if ((defined(EIGERD) || defined(JUNGFRAUD) || defined(MOENCHD)) && \ defined(VIRTUAL)) setTestImageMode(arg); #else @@ -866,8 +883,7 @@ int get_image_test_mode(int file_des) { int retval = -1; LOG(logDEBUG1, ("Getting image test mode\n")); -#if defined(GOTTHARDD) || \ - ((defined(EIGERD) || defined(JUNGFRAUD) || defined(MOENCHD)) && \ +#if ((defined(EIGERD) || defined(JUNGFRAUD) || defined(MOENCHD)) && \ defined(VIRTUAL)) retval = getTestImageMode(); LOG(logDEBUG1, ("image test mode retval: %d\n", retval)); @@ -881,32 +897,7 @@ enum DACINDEX getDACIndex(enum dacIndex ind) { enum DACINDEX serverDacIndex = -1; // check if dac exists for this detector switch (ind) { -#ifdef GOTTHARDD - case VREF_DS: - serverDacIndex = G_VREF_DS; - break; - case VCASCN_PB: - serverDacIndex = G_VCASCN_PB; - break; - case VCASCP_PB: - serverDacIndex = G_VCASCP_PB; - break; - case VOUT_CM: - serverDacIndex = G_VOUT_CM; - break; - case VCASC_OUT: - serverDacIndex = G_VCASC_OUT; - break; - case VIN_CM: - serverDacIndex = G_VIN_CM; - break; - case VREF_COMP: - serverDacIndex = G_VREF_COMP; - break; - case IB_TESTC: - serverDacIndex = G_IB_TESTC; - break; -#elif EIGERD +#ifdef EIGERD case VTHRESHOLD: serverDacIndex = E_VTHRESHOLD; break; @@ -1251,15 +1242,7 @@ int validateAndSetDac(enum dacIndex ind, int val, int mV) { #endif #endif -#ifdef GOTTHARDD - if (retval == -1) { - ret = FAIL; - strcpy(mess, "Invalid Voltage. Valid values are 0, 90, " - "110, 120, 150, 180, 200\n"); - LOG(logERROR, (mess)); - } else - validate(&ret, mess, val, retval, "set high voltage", DEC); -#elif EIGERD +#ifdef EIGERD if ((retval != SLAVE_HIGH_VOLTAGE_READ_VAL) && (retval < 0)) { ret = FAIL; if (retval == -1) @@ -1502,7 +1485,7 @@ int get_adc(int file_des) { serverAdcIndex = TEMP_FPGA; break; #endif -#if defined(GOTTHARDD) || defined(JUNGFRAUD) || defined(MOENCHD) +#if defined(JUNGFRAUD) || defined(MOENCHD) case TEMPERATURE_FPGA: serverAdcIndex = TEMP_FPGA; break; @@ -1671,14 +1654,9 @@ int write_register(int file_des) { sprintf(mess, "Could not write to register 0x%x.\n", addr); LOG(logERROR, (mess)); } -#else -#ifdef GOTTHARDD - writeRegister16And32(addr, val); - uint32_t retval = readRegister16And32(addr); #else writeRegister(addr, val); uint32_t retval = readRegister(addr); -#endif LOG(logDEBUG1, ("Write register retval (0x%x): 0x%x\n", addr, retval)); // validate if (validate && ret == OK && retval != val) { @@ -1715,8 +1693,6 @@ int read_register(int file_des) { addr); LOG(logERROR, (mess)); } -#elif GOTTHARDD - retval = readRegister16And32(addr); #else retval = readRegister(addr); #endif @@ -1728,67 +1704,45 @@ int get_module(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); - sls_detector_module module; - int *myDac = NULL; - int *myChan = NULL; - module.dacs = NULL; - module.chanregs = NULL; - #if !defined(MYTHEN3D) && !defined(EIGERD) functionNotImplemented(); + return Server_SendResult(file_des, INT32, NULL, 0); #else - - // allocate to receive module structure - // allocate dacs - myDac = malloc(getNumberOfDACs() * sizeof(int)); - // error - if (getNumberOfDACs() > 0 && myDac == NULL) { - ret = FAIL; - sprintf(mess, "Could not allocate dacs\n"); - LOG(logERROR, (mess)); - } else - module.dacs = myDac; - - // allocate chans - if (ret == OK) { - myChan = malloc(getTotalNumberOfChannels() * sizeof(int)); - if (getTotalNumberOfChannels() > 0 && myChan == NULL) { - ret = FAIL; - strcpy(mess, "Could not allocate chans\n"); - LOG(logERROR, (mess)); - } else - module.chanregs = myChan; + int ndac = getNumberOfDACs(); + int nchan = getTotalNumberOfChannels(); + if (ndac <= 0 || nchan <= 0) { + strcpy(mess, "Invalid number of dacs/channels to set module\n"); + return sendError(file_des); } - // receive module structure - if (ret == OK) { - module.nchip = getNumberOfChips(); - module.nchan = getTotalNumberOfChannels(); - module.ndac = getNumberOfDACs(); - - // ensure nchan is not 0, else trimbits not copied - if (module.nchan == 0) { - strcpy(mess, "Could not get module as the number of channels to " - "copy is 0\n"); - LOG(logERROR, (mess)); - return FAIL; - } - getModule(&module); - } -#endif - Server_SendResult(file_des, INT32, NULL, 0); - if (ret != FAIL) { - if (sendModule(file_des, &module) < 0) { - ret = FAIL; - strcpy(mess, "Could not send module data\n"); - LOG(logERROR, (mess)); - } - } - if (myChan != NULL) - free(myChan); - if (myDac != NULL) + sls_detector_module module; + module.dacs = NULL; + module.chanregs = NULL; + int *myDac = malloc(ndac * sizeof(int)); + int *myChan = malloc(nchan * sizeof(int)); + if (myDac == NULL || myChan == NULL) { free(myDac); + free(myChan); + setMemoryAllocationErrorMessage(); + return sendError(file_des); + } + module.dacs = myDac; + module.ndac = ndac; + module.chanregs = myChan; + module.nchan = nchan; + module.nchip = getNumberOfChips(); + getModule(&module); + + Server_SendResult(file_des, INT32, NULL, 0); + if (ret == OK && sendModule(file_des, &module) < 0) { + strcpy(mess, "Could not send module data\n"); + ret = FAIL; + LOG(logERROR, (mess)); + } + free(myChan); + free(myDac); return ret; +#endif } int set_module(int file_des) { @@ -1798,63 +1752,53 @@ int set_module(int file_des) { #if !(defined(MYTHEN3D) || defined(EIGERD)) functionNotImplemented(); #else + int ndac = getNumberOfDACs(); + int nchan = getTotalNumberOfChannels(); + if (ndac <= 0 || nchan <= 0) { + strcpy(mess, "Invalid number of dacs/channels to set module\n"); + return sendError(file_des); + } sls_detector_module module; - int *myDac = NULL; - int *myChan = NULL; module.dacs = NULL; module.chanregs = NULL; - - // allocate to receive arguments - // allocate dacs - myDac = malloc(getNumberOfDACs() * sizeof(int)); - // error - if (getNumberOfDACs() > 0 && myDac == NULL) { - ret = FAIL; - strcpy(mess, "Could not allocate dacs\n"); - LOG(logERROR, (mess)); - } else - module.dacs = myDac; - - // allocate chans - if (ret == OK) { - myChan = malloc(getTotalNumberOfChannels() * sizeof(int)); - if (getTotalNumberOfChannels() > 0 && myChan == NULL) { - ret = FAIL; - strcpy(mess, "Could not allocate chans\n"); - LOG(logERROR, (mess)); - } else - module.chanregs = myChan; + int *myDac = malloc(ndac * sizeof(int)); + int *myChan = malloc(nchan * sizeof(int)); + if (myDac == NULL || myChan == NULL) { + free(myDac); + free(myChan); + setMemoryAllocationErrorMessage(); + return sendError(file_des); } - // receive arguments - if (ret == OK) { - module.nchip = getNumberOfChips(); - module.nchan = getTotalNumberOfChannels(); - module.ndac = getNumberOfDACs(); - int ts = receiveModule(file_des, &module); - if (ts < 0) { - free(myChan); - free(myDac); - return printSocketReadError(); - } - LOG(logDEBUG1, ("module register is %d, nchan %d, nchip %d, " - "ndac %d, iodelay %d, tau %d, eV %d\n", - module.reg, module.nchan, module.nchip, module.ndac, - module.iodelay, module.tau, module.eV[0])); - // should at least have a dac - if (ts <= (int)sizeof(sls_detector_module)) { - ret = FAIL; - strcpy(mess, "Cannot set module. Received incorrect number of " - "dacs or channels\n"); - LOG(logERROR, (mess)); - } + module.dacs = myDac; + module.ndac = ndac; + module.chanregs = myChan; + module.nchan = nchan; + module.nchip = getNumberOfChips(); + + int ts = receiveModule(file_des, &module); + if (ts < 0) { + free(myChan); + free(myDac); + return printSocketReadError(); + } + LOG(logDEBUG1, ("module register is %d, nchan %d, nchip %d, " + "ndac %d, iodelay %d, tau %d, eV %d\n", + module.reg, module.nchan, module.nchip, module.ndac, + module.iodelay, module.tau, module.eV[0])); + // should at least have a dac + if (ts <= (int)sizeof(sls_detector_module)) { + strcpy(mess, "Cannot set module. Received incorrect number of " + "dacs or channels\n"); + free(myChan); + free(myDac); + return sendError(file_des); } // only set - if (ret == OK && Server_VerifyLock() == OK) { + if (Server_VerifyLock() == OK) { // check index - -// setsettings + // setsettings #ifndef MYTHEN3D // m3 uses reg for chip (not settings) validate_settings((enum detectorSettings)(module.reg)); @@ -1867,10 +1811,8 @@ int set_module(int file_des) { #endif LOG(logDEBUG1, ("Settings: %d\n", retval)); } - if (myChan != NULL) - free(myChan); - if (myDac != NULL) - free(myDac); + free(myChan); + free(myDac); #endif return Server_SendResult(file_des, INT32, NULL, 0); @@ -1884,12 +1826,6 @@ void validate_settings(enum detectorSettings sett) { #elif JUNGFRAUD case GAIN0: case HIGHGAIN0: -#elif GOTTHARDD - case DYNAMICGAIN: - case HIGHGAIN: - case LOWGAIN: - case MEDIUMGAIN: - case VERYHIGHGAIN: #elif GOTTHARD2D case DYNAMICGAIN: case FIXGAIN1: @@ -1950,16 +1886,6 @@ int set_settings(int file_des) { if ((int)isett != GET_FLAG) { validate(&ret, mess, (int)isett, (int)retval, "set settings", DEC); -#ifdef GOTTHARDD - if (ret == OK) { - ret = resetToDefaultDacs(0); - if (ret == FAIL) { - strcpy(mess, "Could change settings, but could not set to " - "default dacs\n"); - LOG(logERROR, (mess)); - } - } -#endif #ifdef MYTHEN3D // changed for setsettings (direct), // custom trimbit file (setmodule with myMod.reg as -1), @@ -2025,101 +1951,106 @@ int acquire(int blocking, int file_des) { #if defined(JUNGFRAUD) // chipv1.1 has to be configured before acquisition if (getChipVersion() == 11 && !isChipConfigured()) { - ret = FAIL; - strcpy(mess, "Could not start acquisition. Chip is not configured. " - "Power it on to configure it.\n"); - LOG(logERROR, (mess)); - } else + ret = FAIL; + strcpy(mess, + "Could not start acquisition. Chip is not configured. " + "Power it on to configure it.\n"); + LOG(logERROR, (mess)); + } else #endif #if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) - if ((getReadoutMode() == ANALOG_AND_DIGITAL || - getReadoutMode() == ANALOG_ONLY) && - (getNumAnalogSamples() <= 0)) { - ret = FAIL; - sprintf(mess, - "Could not start acquisition. Invalid number of analog " - "samples: %d.\n", - getNumAnalogSamples()); - LOG(logERROR, (mess)); - } else if ((getReadoutMode() == ANALOG_AND_DIGITAL || - getReadoutMode() == DIGITAL_ONLY || - getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && - (getNumDigitalSamples() <= 0)) { - ret = FAIL; - sprintf(mess, + if ((getReadoutMode() == ANALOG_AND_DIGITAL || + getReadoutMode() == ANALOG_ONLY) && + (getNumAnalogSamples() <= 0)) { + ret = FAIL; + sprintf(mess, + "Could not start acquisition. Invalid number of analog " + "samples: %d.\n", + getNumAnalogSamples()); + LOG(logERROR, (mess)); + } else if ((getReadoutMode() == ANALOG_AND_DIGITAL || + getReadoutMode() == DIGITAL_ONLY || + getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && + (getNumDigitalSamples() <= 0)) { + ret = FAIL; + sprintf( + mess, "Could not start acquisition. Invalid number of digital " "samples: %d.\n", getNumDigitalSamples()); - LOG(logERROR, (mess)); - } else if ((getReadoutMode() == TRANSCEIVER_ONLY || - getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && - (getNumTransceiverSamples() <= 0)) { - ret = FAIL; - sprintf(mess, - "Could not start acquisition. Invalid number of " - "transceiver " - "samples: %d.\n", - getNumTransceiverSamples()); - LOG(logERROR, (mess)); - } else + LOG(logERROR, (mess)); + } else if ((getReadoutMode() == TRANSCEIVER_ONLY || + getReadoutMode() == DIGITAL_AND_TRANSCEIVER) && + (getNumTransceiverSamples() <= 0)) { + ret = FAIL; + sprintf(mess, + "Could not start acquisition. Invalid number of " + "transceiver " + "samples: %d.\n", + getNumTransceiverSamples()); + LOG(logERROR, (mess)); + } else #endif #ifdef EIGERD - // check for hardware mac and hardware ip - if (udpDetails[0].srcmac != getDetectorMAC()) { - ret = FAIL; - uint64_t sourcemac = getDetectorMAC(); - char src_mac[MAC_ADDRESS_SIZE]; - getMacAddressinString(src_mac, MAC_ADDRESS_SIZE, sourcemac); - sprintf(mess, - "Invalid udp source mac address for this detector. " - "Must be " - "same as hardware detector mac address %s\n", - src_mac); - LOG(logERROR, (mess)); - } else if (!enableTenGigabitEthernet(GET_FLAG) && - (udpDetails[0].srcip != getDetectorIP())) { - ret = FAIL; - uint32_t sourceip = getDetectorIP(); - char src_ip[INET_ADDRSTRLEN]; - getIpAddressinString(src_ip, sourceip); - sprintf(mess, - "Invalid udp source ip address for this detector. Must " - "be " - "same as hardware detector ip address %s in 1G readout " - "mode \n", - src_ip); - LOG(logERROR, (mess)); - } else + // check for hardware mac and hardware ip + if (udpDetails[0].srcmac != getDetectorMAC()) { + ret = FAIL; + uint64_t sourcemac = getDetectorMAC(); + char src_mac[MAC_ADDRESS_SIZE]; + getMacAddressinString(src_mac, MAC_ADDRESS_SIZE, sourcemac); + sprintf(mess, + "Invalid udp source mac address for this detector. " + "Must be " + "same as hardware detector mac address %s\n", + src_mac); + LOG(logERROR, (mess)); + } else if (!enableTenGigabitEthernet(GET_FLAG) && + (udpDetails[0].srcip != getDetectorIP())) { + ret = FAIL; + uint32_t sourceip = getDetectorIP(); + char src_ip[INET_ADDRSTRLEN]; + getIpAddressinString(src_ip, sourceip); + sprintf( + mess, + "Invalid udp source ip address for this detector. Must " + "be " + "same as hardware detector ip address %s in 1G readout " + "mode \n", + src_ip); + LOG(logERROR, (mess)); + } else #endif - if (configured == FAIL) { - ret = FAIL; - strcpy(mess, "Could not start acquisition because "); - strcat(mess, configureMessage); - LOG(logERROR, (mess)); - } else if (sharedMemory_getScanStatus() == RUNNING) { - ret = FAIL; - strcpy(mess, "Could not start acquisition because a scan is " - "already running!\n"); - LOG(logERROR, (mess)); - } else { - memset(scanErrMessage, 0, MAX_STR_LENGTH); - sharedMemory_setScanStop(0); - sharedMemory_setScanStatus(IDLE); // if it was error - if (pthread_create(&pthread_tid, NULL, &start_state_machine, - &blocking)) { - ret = FAIL; - strcpy(mess, "Could not start acquisition thread!\n"); - LOG(logERROR, (mess)); - } else { - // wait for blocking always (scan or not) - // non blocking-no scan also wait (for error message) - // non blcoking-scan dont wait (there is - // scanErrorMessage) - if (blocking || !scan) { - pthread_join(pthread_tid, NULL); + if (configured == FAIL) { + ret = FAIL; + strcpy(mess, "Could not start acquisition because "); + strcat(mess, configureMessage); + LOG(logERROR, (mess)); + } else if (sharedMemory_getScanStatus() == RUNNING) { + ret = FAIL; + strcpy(mess, + "Could not start acquisition because a scan is " + "already running!\n"); + LOG(logERROR, (mess)); + } else { + memset(scanErrMessage, 0, MAX_STR_LENGTH); + sharedMemory_setScanStop(0); + sharedMemory_setScanStatus(IDLE); // if it was error + if (pthread_create(&pthread_tid, NULL, &start_state_machine, + &blocking)) { + ret = FAIL; + strcpy(mess, "Could not start acquisition thread!\n"); + LOG(logERROR, (mess)); + } else { + // wait for blocking always (scan or not) + // non blocking-no scan also wait (for error message) + // non blcoking-scan dont wait (there is + // scanErrorMessage) + if (blocking || !scan) { + pthread_join(pthread_tid, NULL); + } else + pthread_detach(pthread_tid); + } } - } - } } return Server_SendResult(file_des, INT32, NULL, 0); } @@ -2213,6 +2144,13 @@ void *start_state_machine(void *arg) { ret = FAIL; strcpy(mess, "Could not start read frames thread!\n"); LOG(logERROR, (mess)); + } else { + // blocking or scan + // wait to finish reading from fifo (1g real ctb) + if (*blocking || times > 1) + pthread_join(pthread_tid_ctb_1g, NULL); + else + pthread_detach(pthread_tid_ctb_1g); } } // add scan error message @@ -2229,12 +2167,6 @@ void *start_state_machine(void *arg) { #endif // blocking or scan if (*blocking || times > 1) { - // wait to finish reading from fifo (1g real ctb) -#if defined(CHIPTESTBOARDD) && !defined(VIRTUAL) - if (!enableTenGigabitEthernet(-1)) { - pthread_join(pthread_tid_ctb_1g, NULL); - } -#endif #ifdef EIGERD waitForAcquisitionEnd(&ret, mess); if (ret == FAIL && scan) { @@ -2712,8 +2644,8 @@ int get_delay_after_trigger(int file_des) { memset(mess, 0, sizeof(mess)); int64_t retval = -1; -#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(GOTTHARDD) && \ - !defined(CHIPTESTBOARDD) && !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else @@ -2735,8 +2667,8 @@ int set_delay_after_trigger(int file_des) { LOG(logDEBUG1, ("Setting delay after trigger %lld ns\n", (long long int)arg)); -#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(GOTTHARDD) && \ - !defined(CHIPTESTBOARDD) && !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else @@ -2946,8 +2878,8 @@ int get_frames_left(int file_des) { memset(mess, 0, sizeof(mess)); int64_t retval = -1; -#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(GOTTHARDD) && \ - !defined(CHIPTESTBOARDD) && !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else @@ -2955,6 +2887,7 @@ int get_frames_left(int file_des) { retval = getNumFramesLeft(); LOG(logDEBUG1, ("retval num frames left %lld\n", (long long int)retval)); #endif + return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); } @@ -2963,8 +2896,8 @@ int get_triggers_left(int file_des) { memset(mess, 0, sizeof(mess)); int64_t retval = -1; -#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(GOTTHARDD) && \ - !defined(CHIPTESTBOARDD) && !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else @@ -2975,28 +2908,13 @@ int get_triggers_left(int file_des) { return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); } -int get_exptime_left(int file_des) { - ret = OK; - memset(mess, 0, sizeof(mess)); - int64_t retval = -1; - -#ifndef GOTTHARDD - functionNotImplemented(); -#else - // get only - retval = getExpTimeLeft(); - LOG(logDEBUG1, ("retval exptime left %lld ns\n", (long long int)retval)); -#endif - return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); -} - int get_period_left(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); int64_t retval = -1; -#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(GOTTHARDD) && \ - !defined(CHIPTESTBOARDD) && !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else @@ -3012,8 +2930,8 @@ int get_delay_after_trigger_left(int file_des) { memset(mess, 0, sizeof(mess)); int64_t retval = -1; -#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(GOTTHARDD) && \ - !defined(CHIPTESTBOARDD) && !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) && !defined(GOTTHARD2D) && \ !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else @@ -3137,9 +3055,8 @@ int set_dynamic_range(int file_des) { case 16: case 32: #endif -#if defined(GOTTHARDD) || defined(JUNGFRAUD) || defined(MOENCHD) || \ - defined(CHIPTESTBOARDD) || defined(GOTTHARD2D) || \ - defined(XILINX_CHIPTESTBOARDD) +#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) || \ + defined(GOTTHARD2D) || defined(XILINX_CHIPTESTBOARDD) case 16: #endif if (dr >= 0) { @@ -3170,67 +3087,6 @@ int set_dynamic_range(int file_des) { return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); } -int set_roi(int file_des) { - ret = OK; - memset(mess, 0, sizeof(mess)); - ROI arg; - - // receive ROI - if (receiveData(file_des, &arg.xmin, sizeof(int), INT32) < 0) - return printSocketReadError(); - if (receiveData(file_des, &arg.xmax, sizeof(int), INT32) < 0) - return printSocketReadError(); - if (receiveData(file_des, &arg.ymin, sizeof(int), INT32) < 0) - return printSocketReadError(); - if (receiveData(file_des, &arg.ymax, sizeof(int), INT32) < 0) - return printSocketReadError(); - LOG(logDEBUG1, ("Set ROI: [%d, %d, %d, %d]\n", arg.xmin, arg.xmax, arg.ymin, - arg.ymax)); - -#ifndef GOTTHARDD - functionNotImplemented(); -#else - // only set - if (Server_VerifyLock() == OK) { - ret = setROI(arg); - if (ret == FAIL) { - sprintf(mess, "Could not set ROI. Invalid xmin or xmax\n"); - LOG(logERROR, (mess)); - } - // old firmware requires a redo configure mac - else { - configure_mac(); - } - } -#endif - - return Server_SendResult(file_des, INT32, NULL, 0); -} - -int get_roi(int file_des) { - ret = OK; - memset(mess, 0, sizeof(mess)); - ROI retval; - -#ifndef GOTTHARDD - functionNotImplemented(); -#else - // only get - retval = getROI(); - LOG(logDEBUG1, ("nRois: (%d, %d, %d, %d)\n", retval.xmin, retval.xmax, - retval.ymin, retval.ymax)); -#endif - - Server_SendResult(file_des, INT32, NULL, 0); - if (ret != FAIL) { - sendData(file_des, &retval.xmin, sizeof(int), INT32); - sendData(file_des, &retval.xmax, sizeof(int), INT32); - sendData(file_des, &retval.ymin, sizeof(int), INT32); - sendData(file_des, &retval.ymax, sizeof(int), INT32); - } - return ret; -} - int lock_server(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); @@ -3280,8 +3136,8 @@ int enable_ten_giga(int file_des) { return printSocketReadError(); LOG(logDEBUG, ("Setting 10GbE: %d\n", arg)); -#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(GOTTHARDD) || \ - defined(GOTTHARD2D) || defined(XILINX_CHIPTESTBOARDD) +#if defined(JUNGFRAUD) || defined(MOENCHD) || defined(GOTTHARD2D) || \ + defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else // set & get @@ -3540,13 +3396,13 @@ int set_pattern_wait_addr(int file_des) { return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); } -int set_pattern_wait_time(int file_des) { +int set_pattern_wait_clocks(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); uint64_t args[2] = {-1, -1}; uint64_t retval = -1; - if (receiveData(file_des, args, sizeof(args), INT32) < 0) + if (receiveData(file_des, args, sizeof(args), INT64) < 0) return printSocketReadError(); #if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD) && \ !defined(MYTHEN3D) @@ -3554,16 +3410,23 @@ int set_pattern_wait_time(int file_des) { #else int loopLevel = (int)args[0]; uint64_t timeval = args[1]; - LOG(logDEBUG1, ("Setting Pattern wait time (loopLevel:%d timeval:0x%llx)\n", - loopLevel, (long long int)timeval)); + LOG(logDEBUG1, + ("Setting Pattern wait clocks (loopLevel:%d clocks:0x%lld)\n", + loopLevel, (long long int)timeval)); if (((int64_t)timeval == GET_FLAG) || (Server_VerifyLock() == OK)) { // set if ((int64_t)timeval != GET_FLAG) { - ret = validate_setPatternWaitTime(mess, loopLevel, timeval); + ret = validate_setPatternWaitClocksAndInterval(mess, loopLevel, + timeval, 1); } // get if (ret == OK) { - ret = validate_getPatternWaitTime(mess, loopLevel, &retval); + ret = validate_getPatternWaitClocksAndInterval(mess, loopLevel, + &retval, 1); + if ((int64_t)timeval != GET_FLAG) { + validate64(&ret, mess, (int64_t)timeval, retval, + "set pattern wait clocks", DEC); + } } } #endif @@ -3693,12 +3556,6 @@ int write_adc_register(int file_des) { if (Server_VerifyLock() == OK) { #if defined(JUNGFRAUD) || defined(MOENCHD) || defined(CHIPTESTBOARDD) AD9257_Set(addr, val); -#elif GOTTHARDD - if (isHardwareVersion_1_0()) { - AD9252_Set(addr, val); - } else { - AD9257_Set(addr, val); - } #endif } #endif @@ -4065,7 +3922,7 @@ int program_fpga(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); -#if defined(EIGERD) || defined(GOTTHARDD) +#if defined(EIGERD) functionNotImplemented(); return Server_SendResult(file_des, INT32, NULL, 0); #else @@ -4079,8 +3936,7 @@ int reset_fpga(int file_des) { memset(mess, 0, sizeof(mess)); LOG(logDEBUG1, ("Reset FPGA\n")); -#if defined(EIGERD) || defined(GOTTHARDD) || defined(GOTTHARD2D) || \ - defined(MYTHEN3D) +#if defined(EIGERD) || defined(GOTTHARD2D) || defined(MYTHEN3D) functionNotImplemented(); #else // only set @@ -5486,7 +5342,8 @@ int set_dest_udp_mac(int file_des) { if (receiveData(file_des, &arg, sizeof(arg), INT64) < 0) return printSocketReadError(); - LOG(logINFO, ("Setting udp destination mac: 0x%lx\n", arg)); + LOG(logINFO, + ("Setting udp destination mac: 0x%llx\n", (long long unsigned)arg)); // only set if (Server_VerifyLock() == OK) { @@ -5507,7 +5364,8 @@ int get_dest_udp_mac(int file_des) { LOG(logDEBUG1, ("Getting udp destination mac\n")); // get only retval = udpDetails[0].dstmac; - LOG(logDEBUG1, ("udp destination mac retval: 0x%lx\n", retval)); + LOG(logDEBUG1, + ("udp destination mac retval: 0x%llx\n", (long long unsigned)retval)); return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); } @@ -5940,7 +5798,7 @@ int set_clock_frequency(int file_des) { return printSocketReadError(); LOG(logDEBUG1, ("Setting clock (%d) frequency : %u\n", args[0], args[1])); -#if !defined(CHIPTESTBOARDD) +#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else @@ -5953,7 +5811,7 @@ int set_clock_frequency(int file_des) { case ADC_CLOCK: c = ADC_CLK; break; -#ifdef CHIPTESTBOARDD +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) case DBIT_CLOCK: c = DBIT_CLK; break; @@ -5981,11 +5839,24 @@ int set_clock_frequency(int file_des) { LOG(logINFO, ("Same %s: %d %s\n", modeName, val, myDetectorType == GOTTHARD2 ? "Hz" : "MHz")); } else { - setFrequency(c, val); - int retval = getFrequency(c); - LOG(logDEBUG1, ("retval %s: %d %s\n", modeName, retval, - myDetectorType == GOTTHARD2 ? "Hz" : "MHz")); - validate(&ret, mess, val, retval, modeName, DEC); + int ret = setFrequency(c, val); + if (ret == FAIL) { + sprintf(mess, "Could not set %s to %d %s\n", modeName, val, + myDetectorType == XILINX_CHIPTESTBOARD ? "kHz" + : "MHz"); + LOG(logERROR, (mess)); + } else { + int retval = getFrequency(c); + LOG(logDEBUG1, + ("retval %s: %d %s\n", modeName, retval, + myDetectorType == XILINX_CHIPTESTBOARD ? "kHz" + : "MHz")); +#if !defined(XILINX_CHIPTESTBOARDD) + // XCTB will give the actual frequency, which is not + // 100% identical to the set frequency + validate(&ret, mess, val, retval, modeName, DEC); +#endif + } } } } @@ -6003,13 +5874,14 @@ int get_clock_frequency(int file_des) { return printSocketReadError(); LOG(logDEBUG1, ("Getting clock (%d) frequency\n", arg)); -#if !defined(CHIPTESTBOARDD) && !defined(GOTTHARD2D) && !defined(MYTHEN3D) +#if !defined(CHIPTESTBOARDD) && !defined(GOTTHARD2D) && !defined(MYTHEN3D) && \ + !defined(XILINX_CHIPTESTBOARDD) functionNotImplemented(); #else // get only enum CLKINDEX c = 0; switch (arg) { -#if defined(CHIPTESTBOARDD) +#if defined(CHIPTESTBOARDD) || defined(XILINX_CHIPTESTBOARDD) case ADC_CLOCK: c = ADC_CLK; break; @@ -6039,8 +5911,11 @@ int get_clock_frequency(int file_des) { LOG(logDEBUG1, ("retval %s clock (%d) frequency: %d %s\n", clock_names[c], (int)c, retval, - myDetectorType == GOTTHARD2 || myDetectorType == MYTHEN3 ? "Hz" - : "MHz")); + myDetectorType == XILINX_CHIPTESTBOARD + ? "kHz" + : (myDetectorType == GOTTHARD2 || myDetectorType == MYTHEN3 + ? "Hz" + : "MHz"))); } #endif return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); @@ -6057,7 +5932,7 @@ int set_clock_phase(int file_des) { (args[2] == 0 ? "" : "degrees"))); #if !defined(CHIPTESTBOARDD) && !defined(JUNGFRAUD) && !defined(MOENCHD) && \ - !defined(GOTTHARDD) && !defined(GOTTHARD2D) && !defined(MYTHEN3D) + !defined(GOTTHARD2D) && !defined(MYTHEN3D) functionNotImplemented(); #else // only set @@ -6067,8 +5942,7 @@ int set_clock_phase(int file_des) { int inDegrees = args[2] == 0 ? 0 : 1; enum CLKINDEX c = 0; switch (ind) { -#if defined(CHIPTESTBOARDD) || defined(JUNGFRAUD) || defined(MOENCHD) || \ - defined(GOTTHARDD) +#if defined(CHIPTESTBOARDD) || defined(JUNGFRAUD) || defined(MOENCHD) case ADC_CLOCK: c = ADC_CLK; break; @@ -6098,15 +5972,6 @@ int set_clock_phase(int file_des) { sprintf(modeName, "%s clock (%d) phase %s", clock_names[c], (int)c, (inDegrees == 0 ? "" : "(degrees)")); - // gotthard1d doesnt take degrees and cannot get phase -#ifdef GOTTHARDD - if (inDegrees != 0) { - ret = FAIL; - strcpy(mess, - "Cannot set phase in degrees for this detector.\n"); - LOG(logERROR, (mess)); - } -#else if (getPhase(c, inDegrees) == val) { LOG(logINFO, ("Same %s: %d\n", modeName, val)); } else if (inDegrees && (val < 0 || val > 359)) { @@ -6123,18 +5988,12 @@ int set_clock_phase(int file_des) { "phase shifts)\n", modeName, val, getMaxPhase(c) - 1); LOG(logERROR, (mess)); - } -#endif - else { + } else { int ret = setPhase(c, val, inDegrees); if (ret == FAIL) { sprintf(mess, "Could not set %s to %d.\n", modeName, val); LOG(logERROR, (mess)); - } - - // gotthard1d doesnt take degrees and cannot get phase -#ifndef GOTTHARDD - else { + } else { int retval = getPhase(c, inDegrees); LOG(logDEBUG1, ("retval %s : %d\n", modeName, retval)); if (!inDegrees) { @@ -6150,7 +6009,6 @@ int set_clock_phase(int file_des) { } } } -#endif } } } @@ -6547,6 +6405,10 @@ int set_veto_photon(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); +#ifndef GOTTHARD2D + functionNotImplemented(); +#else + int args[2] = {-1, -1}; if (receiveData(file_des, args, sizeof(args), INT32) < 0) return printSocketReadError(); @@ -6554,14 +6416,17 @@ int set_veto_photon(int file_des) { const int numChannels = args[1]; int *gainIndices = malloc(sizeof(int) * numChannels); - if (receiveData(file_des, gainIndices, sizeof(int) * numChannels, INT32) < - 0) { + int *values = malloc(sizeof(int) * numChannels); + if (gainIndices == NULL || values == NULL) { free(gainIndices); - return printSocketReadError(); + free(values); + setMemoryAllocationErrorMessage(); + return sendError(file_des); } - int *values = malloc(sizeof(int) * numChannels); - if (receiveData(file_des, values, sizeof(int) * numChannels, INT32) < 0) { + if ((receiveData(file_des, gainIndices, sizeof(int) * numChannels, INT32) < + 0) || + (receiveData(file_des, values, sizeof(int) * numChannels, INT32)) < 0) { free(gainIndices); free(values); return printSocketReadError(); @@ -6570,9 +6435,6 @@ int set_veto_photon(int file_des) { LOG(logINFO, ("Setting Veto Photon: [chipIndex:%d, nch:%d]\n", chipIndex, numChannels)); -#ifndef GOTTHARD2D - functionNotImplemented(); -#else // only set if (Server_VerifyLock() == OK) { if (numChannels != NCHAN) { @@ -6619,66 +6481,60 @@ int set_veto_photon(int file_des) { } } } + + free(gainIndices); + free(values); #endif - if (gainIndices != NULL) { - free(gainIndices); - } - if (values != NULL) { - free(values); - } return Server_SendResult(file_des, INT32, NULL, 0); } int get_veto_photon(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); - int arg = -1; - int *retvals = NULL; - int *gainRetvals = NULL; +#ifndef GOTTHARD2D + functionNotImplemented(); + return Server_SendResult(file_des, INT32, NULL, 0); +#else + + int arg = -1; if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) return printSocketReadError(); LOG(logDEBUG1, ("Getting veto photon [chip Index:%d]\n", arg)); -#ifndef GOTTHARD2D - functionNotImplemented(); -#else - retvals = malloc(sizeof(int) * NCHAN); - gainRetvals = malloc(sizeof(int) * NCHAN); + int *retvals = malloc(sizeof(int) * NCHAN); + int *gainRetvals = malloc(sizeof(int) * NCHAN); + if (gainRetvals == NULL || retvals == NULL) { + free(gainRetvals); + free(retvals); + setMemoryAllocationErrorMessage(); + return sendError(file_des); + } memset(retvals, 0, sizeof(int) * NCHAN); memset(gainRetvals, 0, sizeof(int) * NCHAN); - if (retvals == NULL || gainRetvals == NULL) { + // get only + int chipIndex = arg; + if (chipIndex < -1 || chipIndex >= NCHIP) { ret = FAIL; - strcpy( - mess, - "Could not get veto photon. Could not allocate memory in server\n"); + sprintf(mess, "Could not get veto photon. Invalid chip index %d\n", + chipIndex); LOG(logERROR, (mess)); } else { - // get only - int chipIndex = arg; - if (chipIndex < -1 || chipIndex >= NCHIP) { - ret = FAIL; - sprintf(mess, "Could not get veto photon. Invalid chip index %d\n", - chipIndex); + ret = getVetoPhoton(chipIndex, retvals, gainRetvals); + if (ret == FAIL) { + strcpy(mess, "Could not get veto photon for chipIndex -1. Not the " + "same for all chips. Select specific chip index " + "instead.\n"); LOG(logERROR, (mess)); } else { - ret = getVetoPhoton(chipIndex, retvals, gainRetvals); - if (ret == FAIL) { - strcpy(mess, - "Could not get veto photon for chipIndex -1. Not the " - "same for all chips. Select specific chip index " - "instead.\n"); - LOG(logERROR, (mess)); - } else { - for (int i = 0; i < NCHAN; ++i) { - LOG(logDEBUG1, - ("%d:[%d, %d]\n", i, retvals[i], gainRetvals[i])); - } + for (int i = 0; i < NCHAN; ++i) { + LOG(logDEBUG1, + ("%d:[%d, %d]\n", i, retvals[i], gainRetvals[i])); } } } -#endif + Server_SendResult(file_des, INT32, NULL, 0); if (ret != FAIL) { int nch = NCHAN; @@ -6686,13 +6542,10 @@ int get_veto_photon(int file_des) { sendData(file_des, gainRetvals, sizeof(int) * NCHAN, INT32); sendData(file_des, retvals, sizeof(int) * NCHAN, INT32); } - if (retvals != NULL) { - free(retvals); - } - if (gainRetvals != NULL) { - free(gainRetvals); - } + free(retvals); + free(gainRetvals); return ret; +#endif } int set_veto_reference(int file_des) { @@ -7421,7 +7274,8 @@ int get_receiver_parameters(int file_des) { // dynamic range ret = getDynamicRange(&i32); if (ret == FAIL) { - i32 = 0; + sprintf(mess, "Could not get dynamic range.\n"); + return sendError(file_des); } n += sendData(file_des, &i32, sizeof(i32), INT32); if (n < 0) @@ -7473,32 +7327,7 @@ int get_receiver_parameters(int file_des) { if (n < 0) return printSocketReadError(); - // roi - { - ROI roi; -#ifdef GOTTHARDD - roi = getROI(); -#else - roi.xmin = -1; - roi.xmax = -1; - roi.ymin = -1; - roi.ymax = -1; -#endif - n += sendData(file_des, &roi.xmin, sizeof(int), INT32); - if (n < 0) - return printSocketReadError(); - n += sendData(file_des, &roi.xmax, sizeof(int), INT32); - if (n < 0) - return printSocketReadError(); - n += sendData(file_des, &roi.ymin, sizeof(int), INT32); - if (n < 0) - return printSocketReadError(); - n += sendData(file_des, &roi.ymax, sizeof(int), INT32); - if (n < 0) - return printSocketReadError(); - } - - // counter mask + // counter mask #ifdef MYTHEN3D u32 = getCounterMask(); #else @@ -7625,6 +7454,20 @@ int get_receiver_parameters(int file_des) { u32 = 0; #endif n += sendData(file_des, &u32, sizeof(u32), INT32); + if (n < 0) + return printSocketReadError(); + + // readout speed +#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD) + ret = getReadoutSpeed(&i32); + if (ret == FAIL) { + sprintf(mess, "Could not get readout speed.\n"); + return sendError(file_des); + } +#else + i32 = 0; +#endif + n += sendData(file_des, &i32, sizeof(i32), INT32); if (n < 0) return printSocketReadError(); @@ -7637,7 +7480,8 @@ int start_pattern(int file_des) { memset(mess, 0, sizeof(mess)); LOG(logDEBUG1, ("Starting Pattern\n")); -#ifndef MYTHEN3D +#if !defined(MYTHEN3D) && !defined(XILINX_CHIPTESTBOARDD) && \ + !defined(CHIPTESTBOARDD) functionNotImplemented(); #else // only set @@ -7861,18 +7705,20 @@ int set_pattern(int file_des) { !defined(MYTHEN3D) functionNotImplemented(); #else - patternParameters *pat = malloc(sizeof(patternParameters)); + if (pat == NULL) { + setMemoryAllocationErrorMessage(); + return sendError(file_des); + } memset(pat, 0, sizeof(patternParameters)); + // ignoring endianness for eiger if (receiveData(file_des, pat, sizeof(patternParameters), INT32) < 0) { - if (pat != NULL) - free(pat); + free(pat); return printSocketReadError(); } if (receiveData(file_des, args, MAX_STR_LENGTH, OTHER) < 0) { - if (pat != NULL) - free(pat); + free(pat); return printSocketReadError(); } @@ -7880,8 +7726,7 @@ int set_pattern(int file_des) { LOG(logDEBUG1, ("Setting Pattern from structure\n")); ret = loadPattern(mess, logINFO, pat, args); } - if (pat != NULL) - free(pat); + free(pat); #endif return Server_SendResult(file_des, INT32, NULL, 0); @@ -7917,6 +7762,10 @@ int get_pattern(int file_des) { #else patternParameters *pat = malloc(sizeof(patternParameters)); + if (pat == NULL) { + setMemoryAllocationErrorMessage(); + return sendError(file_des); + } memset(pat, 0, sizeof(patternParameters)); if (Server_VerifyLock() == OK) { @@ -7926,8 +7775,7 @@ int get_pattern(int file_des) { // ignoring endianness for eiger int ret = Server_SendResult(file_des, INT32, pat, sizeof(patternParameters)); - if (pat != NULL) - free(pat); + free(pat); return ret; #endif } @@ -8035,10 +7883,13 @@ int set_scan(int file_des) { if (ret == OK) { scan = 1; numScanSteps = (abs(stop - start) / abs(step)) + 1; - if (scanSteps != NULL) { - free(scanSteps); - } + // freed only at startup of the next scan + free(scanSteps); scanSteps = malloc(numScanSteps * sizeof(int)); + if (scanSteps == NULL) { + setMemoryAllocationErrorMessage(); + return sendError(file_des); + } for (int i = 0; i != numScanSteps; ++i) { scanSteps[i] = start + i * step; LOG(logDEBUG1, ("scansteps[%d]:%d\n", i, scanSteps[i])); @@ -8312,55 +8163,54 @@ int set_adc_config(int file_des) { int get_bad_channels(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); - int nretvals = 0; - int *retvals = NULL; - LOG(logDEBUG1, ("Getting bad channels\n")); #if !defined(GOTTHARD2D) && !defined(MYTHEN3D) functionNotImplemented(); + return Server_SendResult(file_des, INT32, NULL, 0); #else // get only - retvals = getBadChannels(&nretvals); + int nretvals = 0; + int *retvals = getBadChannels(&nretvals); if (nretvals == -1) { - ret = FAIL; - strcpy(mess, "Could not get bad channels. Memory allcoation error\n"); - LOG(logERROR, (mess)); + setMemoryAllocationErrorMessage(); + return sendError(file_des); } -#endif + Server_SendResult(file_des, INT32, NULL, 0); - if (ret != FAIL) { - sendData(file_des, &nretvals, sizeof(nretvals), INT32); - if (nretvals > 0) { - sendData(file_des, retvals, sizeof(int) * nretvals, INT32); - } - } - if (retvals != NULL) { - free(retvals); + sendData(file_des, &nretvals, sizeof(nretvals), INT32); + if (nretvals > 0) { + sendData(file_des, retvals, sizeof(int) * nretvals, INT32); } + free(retvals); return ret; +#endif } int set_bad_channels(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); - int nargs = 0; - int *args = NULL; - - if (receiveData(file_des, &nargs, sizeof(nargs), INT32) < 0) - return printSocketReadError(); - - if (nargs > 0) { - args = malloc(nargs * sizeof(int)); - if (receiveData(file_des, args, nargs * sizeof(int), INT32) < 0) - return printSocketReadError(); - } - - LOG(logDEBUG1, ("Setting %d bad channels\n", nargs)); #if !defined(GOTTHARD2D) && !defined(MYTHEN3D) functionNotImplemented(); #else + int nargs = 0; + if (receiveData(file_des, &nargs, sizeof(nargs), INT32) < 0) + return printSocketReadError(); + int *args = NULL; + if (nargs > 0) { + args = malloc(nargs * sizeof(int)); + if (args == NULL) { + setMemoryAllocationErrorMessage(); + return sendError(file_des); + } + if (receiveData(file_des, args, nargs * sizeof(int), INT32) < 0) { + free(args); + return printSocketReadError(); + } + } + LOG(logDEBUG1, ("Setting %d bad channels\n", nargs)); + // only set if (Server_VerifyLock() == OK) { // validate bad channel number @@ -8389,11 +8239,11 @@ int set_bad_channels(int file_des) { int nretvals = 0; int *retvals = getBadChannels(&nretvals); if (nretvals == -1) { - ret = FAIL; - strcpy(mess, "Could not get bad channels. Memory " - "allcoation error\n"); - LOG(logERROR, (mess)); - } else if (nretvals != nargs) { + free(args); + setMemoryAllocationErrorMessage(); + return sendError(file_des); + } + if (nretvals != nargs) { ret = FAIL; sprintf(mess, "Could not set bad channels. Set %d channels, but " @@ -8402,15 +8252,11 @@ int set_bad_channels(int file_des) { nargs, nretvals); LOG(logERROR, (mess)); } - if (retvals != NULL) { - free(retvals); - } + free(retvals); } } } - if (args != NULL) { - free(args); - } + free(args); #endif return Server_SendResult(file_des, INT32, NULL, 0); } @@ -8467,8 +8313,7 @@ int get_bursts_left(int file_des) { int start_readout(int file_des) { ret = OK; memset(mess, 0, sizeof(mess)); -#if !defined(MYTHEN3D) && !defined(CHIPTESTBOARDD) && \ - !defined(XILINX_CHIPTESTBOARDD) +#if !defined(MYTHEN3D) && !defined(CHIPTESTBOARDD) functionNotImplemented(); #else if (Server_VerifyLock() == OK) { @@ -8515,7 +8360,8 @@ int start_readout(int file_des) { ret = FAIL; strcpy(mess, "Could not start read frames thread!\n"); LOG(logERROR, (mess)); - } + } else + pthread_detach(pthread_tid_ctb_1g); } } #endif @@ -8601,8 +8447,8 @@ int get_master(int file_des) { LOG(logDEBUG1, ("Getting master\n")); -#if !defined(MYTHEN3D) && !defined(EIGERD) && !defined(GOTTHARDD) && \ - !defined(GOTTHARD2D) && !defined(JUNGFRAUD) && !defined(MOENCHD) +#if !defined(MYTHEN3D) && !defined(EIGERD) && !defined(GOTTHARD2D) && \ + !defined(JUNGFRAUD) && !defined(MOENCHD) functionNotImplemented(); #else ret = isMaster(&retval); @@ -9097,16 +8943,9 @@ int get_comp_disable_time(int file_des) { functionNotImplemented(); #else // get only - if (getChipVersion() != 11) { - ret = FAIL; - strcpy(mess, - "Cannot get comparator disable time. Only valid for chipv1.1\n"); - LOG(logERROR, (mess)); - } else { - retval = getComparatorDisableTime(); - LOG(logDEBUG1, - ("retval comp disable time %lld ns\n", (long long int)retval)); - } + retval = getComparatorDisableTime(); + LOG(logDEBUG1, + ("retval comp disable time %lld ns\n", (long long int)retval)); #endif return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); } @@ -9124,23 +8963,16 @@ int set_comp_disable_time(int file_des) { #else // only set if (Server_VerifyLock() == OK) { - if (getChipVersion() != 11) { - ret = FAIL; - strcpy(mess, "Cannot get comparator disable time. Only valid for " - "chipv1.1\n"); + ret = setComparatorDisableTime(arg); + int64_t retval = getComparatorDisableTime(); + LOG(logDEBUG1, + ("retval get comp disable time %lld ns\n", (long long int)retval)); + if (ret == FAIL) { + sprintf(mess, + "Could not set comp disable time. Set %lld ns, read " + "%lld ns.\n", + (long long int)arg, (long long int)retval); LOG(logERROR, (mess)); - } else { - ret = setComparatorDisableTime(arg); - int64_t retval = getComparatorDisableTime(); - LOG(logDEBUG1, ("retval get comp disable time %lld ns\n", - (long long int)retval)); - if (ret == FAIL) { - sprintf(mess, - "Could not set comp disable time. Set %lld ns, read " - "%lld ns.\n", - (long long int)arg, (long long int)retval); - LOG(logERROR, (mess)); - } } } #endif @@ -9378,7 +9210,7 @@ int get_dest_udp_list(int file_des) { memset(mess, 0, sizeof(mess)); uint32_t arg = 0; uint16_t retvals16[2] = {}; - uint32_t retvals32[3] = {}; + uint32_t retvals32[2] = {}; uint64_t retvals64[2] = {}; if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) @@ -9911,8 +9743,7 @@ void receive_program_via_blackfin(int file_des, enum PROGRAM_INDEX index, char *checksum, char *serverName, int forceDeleteNormalFile) { -#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) && \ - !defined(GOTTHARDD) +#if !defined(JUNGFRAUD) && !defined(MOENCHD) && !defined(CHIPTESTBOARDD) ret = FAIL; sprintf(mess, "Could not %s. program via blackfin not implmented for this " @@ -9938,14 +9769,9 @@ void receive_program_via_blackfin(int file_des, enum PROGRAM_INDEX index, src = malloc(MAX_BLACKFIN_PROGRAM_SIZE); if (src == NULL) { fclose(fd); - struct sysinfo info; - sysinfo(&info); - sprintf(mess, - "Could not %s. Memory allocation failure. Free " - "space: %d MB\n", - functionType, (int)(info.freeram / (1024 * 1024))); - LOG(logERROR, (mess)); + setMemoryAllocationErrorMessage(); ret = FAIL; + LOG(logERROR, (mess)); } } Server_SendResult(file_des, INT32, NULL, 0); @@ -10088,6 +9914,7 @@ void receive_program_default(int file_des, enum PROGRAM_INDEX index, } Server_SendResult(file_des, INT32, NULL, 0); if (ret == FAIL) { + free(src); return; } @@ -10623,15 +10450,9 @@ int set_bit(int file_des) { ret = setBit(addr, nBit, validate); #else uint32_t bitmask = (1 << nBit); -#ifdef GOTTHARDD - uint32_t val = readRegister16And32(addr) | bitmask; - writeRegister16And32(addr, val); - uint32_t retval = readRegister16And32(addr) | bitmask; -#else uint32_t val = readRegister(addr) | bitmask; writeRegister(addr, val); uint32_t retval = readRegister(addr) | bitmask; -#endif if (validate && (!(retval & bitmask))) { ret = FAIL; } @@ -10672,15 +10493,9 @@ int clear_bit(int file_des) { ret = clearBit(addr, nBit, validate); #else uint32_t bitmask = (1 << nBit); -#ifdef GOTTHARDD - uint32_t val = readRegister16And32(addr) & ~bitmask; - writeRegister16And32(addr, val); - uint32_t retval = readRegister16And32(addr) & ~bitmask; -#else uint32_t val = readRegister(addr) & ~bitmask; writeRegister(addr, val); uint32_t retval = readRegister(addr) & ~bitmask; -#endif if (validate && (retval & bitmask)) { ret = FAIL; } @@ -10720,12 +10535,8 @@ int get_bit(int file_des) { sprintf(mess, "Could not get bit %d.\n", nBit); LOG(logERROR, (mess)); } -#else -#ifdef GOTTHARDD - uint32_t regval = readRegister16And32(addr); #else uint32_t regval = readRegister(addr); -#endif retval = (regval & (1 << nBit)) >> nBit; LOG(logDEBUG1, ("regval: 0x%x bit value:0%d\n", regval, retval)); #endif @@ -11115,11 +10926,18 @@ int get_timing_info_decoder(int file_des) { functionNotImplemented(); #else // get only - ret = getTimingInfoDecoder(&retval); - LOG(logDEBUG1, ("retval timing info decoder: %d\n", retval)); - if (ret == FAIL) { - strcpy(mess, "Could not get timing info decoder\n"); + if (isHardwareVersion_1_0()) { + ret = FAIL; + sprintf(mess, "Could not get timing info decoder. Not supported " + "for hardware version 1.0\n"); LOG(logERROR, (mess)); + } else { + ret = getTimingInfoDecoder(&retval); + LOG(logDEBUG1, ("retval timing info decoder: %d\n", retval)); + if (ret == FAIL) { + strcpy(mess, "Could not get timing info decoder\n"); + LOG(logERROR, (mess)); + } } #endif return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); @@ -11147,6 +10965,12 @@ int set_timing_info_decoder(int file_des) { modeNotImplemented("Timing info decoder index", (int)arg); break; } + if (ret == OK && isHardwareVersion_1_0()) { + ret = FAIL; + sprintf(mess, "Could not set timing info decoder. Not supported " + "for hardware version 1.0\n"); + LOG(logERROR, (mess)); + } if (ret == OK) { ret = setTimingInfoDecoder(arg); if (ret == FAIL) { @@ -11221,3 +11045,54 @@ int set_collection_mode(int file_des) { #endif return Server_SendResult(file_des, INT32, NULL, 0); } + +int get_pattern_wait_interval(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + int loopLevel = -1; + uint64_t retval = -1; + + if (receiveData(file_des, &loopLevel, sizeof(loopLevel), INT32) < 0) + return printSocketReadError(); +#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) + functionNotImplemented(); +#else + LOG(logDEBUG1, + ("Getting Pattern wait interva (loopLevel:%d)\n", loopLevel)); + ret = validate_getPatternWaitClocksAndInterval(mess, loopLevel, &retval, 0); +#endif + return Server_SendResult(file_des, INT64, &retval, sizeof(retval)); +} + +int set_pattern_wait_interval(int file_des) { + ret = OK; + memset(mess, 0, sizeof(mess)); + uint64_t args[2] = {-1, -1}; + + if (receiveData(file_des, args, sizeof(args), INT64) < 0) + return printSocketReadError(); +#if !defined(CHIPTESTBOARDD) && !defined(XILINX_CHIPTESTBOARDD) && \ + !defined(MYTHEN3D) + functionNotImplemented(); +#else + int loopLevel = (int)args[0]; + uint64_t timeval = args[1]; + LOG(logDEBUG1, + ("Setting Pattern wait interval (loopLevel:%d timeval:0x%llx ns)\n", + loopLevel, (long long int)timeval)); + if (Server_VerifyLock() == OK) { + ret = validate_setPatternWaitClocksAndInterval(mess, loopLevel, timeval, + 0); + if (ret == OK) { + uint64_t retval = 0; + ret = validate_getPatternWaitClocksAndInterval(mess, loopLevel, + &retval, 0); + validate64(&ret, mess, (int64_t)timeval, retval, + "set pattern wait interval", DEC); + } + } + +#endif + return Server_SendResult(file_des, INT64, NULL, 0); +} \ No newline at end of file diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/CMakeLists.txt b/slsDetectorServers/xilinx_ctbDetectorServer/CMakeLists.txt index 78a5fbfb7..6abf22bd2 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/xilinx_ctbDetectorServer/CMakeLists.txt @@ -6,6 +6,7 @@ add_executable(xilinx_ctbDetectorServer_virtual ../slsDetectorServer/src/slsDetectorServer_funcs.c ../slsDetectorServer/src/communication_funcs.c ../slsDetectorServer/src/arm64.c + ../slsDetectorServer/src/XILINX_PLL.c ../slsDetectorServer/src/common.c ../slsDetectorServer/src/sharedMemory.c ../slsDetectorServer/src/loadPattern.c @@ -40,3 +41,9 @@ set_target_properties(xilinx_ctbDetectorServer_virtual PROPERTIES install(TARGETS xilinx_ctbDetectorServer_virtual RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) + +configure_file(chip_config_xilinx.txt ${CMAKE_BINARY_DIR}/bin/chip_config_xilinx.txt COPYONLY) +configure_file(reset_chip_xilinx.txt ${CMAKE_BINARY_DIR}/bin/reset_chip_xilinx.txt COPYONLY) +configure_file(enable_clock_pattern.pyat ${CMAKE_BINARY_DIR}/bin/enable_clock_pattern.pyat COPYONLY) +configure_file(readout_pattern.pyat ${CMAKE_BINARY_DIR}/bin/readout_pattern.pyat COPYONLY) + diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/Makefile b/slsDetectorServers/xilinx_ctbDetectorServer/Makefile index 06a4d986d..f08ac3792 100755 --- a/slsDetectorServers/xilinx_ctbDetectorServer/Makefile +++ b/slsDetectorServers/xilinx_ctbDetectorServer/Makefile @@ -7,7 +7,12 @@ support_lib = ../../slsSupportLib/include/ det_lib = ../../slsDetectorSoftware/include/sls/ md5_dir = ../../slsSupportLib/src/ -CROSS = aarch64-none-linux-gnu- +ifeq ($(shell uname -m),aarch64) + # no cross compilation needed when on aarch64 + CROSS = +else + CROSS = aarch64-none-linux-gnu- +endif CC = $(CROSS)gcc #TODO: allow these warnings and fix code CFLAGS += -Wall -std=gnu99 -Wno-format-overflow -Wno-format-truncation -DXILINX_CHIPTESTBOARDD -DARMPROCESSOR -DSTOP_SERVER -I$(main_inc) -I$(support_lib) -I$(det_lib) -I$(current_dir) #-DDEBUG1 #-DVERBOSEI #-DVERBOSE @@ -18,7 +23,7 @@ DESTDIR ?= bin INSTMODE = 0777 SRCS = slsDetectorFunctionList.c -SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)arm64.c $(main_src)common.c $(main_src)/sharedMemory.c $(main_src)/loadPattern.c $(md5_dir)md5.c $(main_src)programViaArm.c $(main_src)LTC2620_Driver.c +SRCS += $(main_src)slsDetectorServer.c $(main_src)slsDetectorServer_funcs.c $(main_src)communication_funcs.c $(main_src)arm64.c $(main_src)XILINX_PLL.c $(main_src)common.c $(main_src)/sharedMemory.c $(main_src)/loadPattern.c $(md5_dir)md5.c $(main_src)programViaArm.c $(main_src)LTC2620_Driver.c OBJS = $(SRCS:.c=.o) @@ -31,11 +36,10 @@ version: clean versioning $(PROGS) boot: $(OBJS) -version_branch=$(API_BRANCH) version_name=APIXILINXCTB version_path=slsDetectorServers/xilinx_ctbDetectorServer versioning: - cd ../../ && echo $(PWD) && echo `tput setaf 6; ./updateAPIVersion.sh $(version_name) $(version_path) $(version_branch); tput sgr0;` + cd ../../ && echo $(PWD) && echo `tput setaf 6; python updateAPIVersion.py $(version_name) $(version_path); tput sgr0;` $(PROGS): $(OBJS) @@ -43,6 +47,10 @@ $(PROGS): $(OBJS) mkdir -p $(DESTDIR) $(CC) -o $@ $^ $(CFLAGS) $(LDLIBS) mv $(PROGS) $(DESTDIR) + cp chip_config_xilinx.txt $(DESTDIR) + cp reset_chip_xilinx.txt $(DESTDIR) + cp enable_clock_pattern.pyat $(DESTDIR) + cp readout_pattern.pyat $(DESTDIR) rm $(main_src)*.o $(md5_dir)*.o clean: rm -rf $(DESTDIR)/$(PROGS) *.o *.gdb $(main_src)*.o $(md5_dir)*.o diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/RegisterDefs.h b/slsDetectorServers/xilinx_ctbDetectorServer/RegisterDefs.h index 3563a8b82..4d5563e45 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/xilinx_ctbDetectorServer/RegisterDefs.h @@ -2,10 +2,16 @@ // Copyright (C) 2021 Contributors to the SLS Detector Package #pragma once -#define CTRL_REG (0x0) +// clang-format off -#define POWER_VIO_OFST (0) -#define POWER_VIO_MSK (0x00000001 << POWER_VIO_OFST) +#define REG_OFFSET (4) +#define PATTERN_STEP0_MSB_REG (0x10004) +#define PATTERN_STEP0_LSB_REG (0x10000) + +#define CTRL_REG (0x8000) + +#define POWER_VIO_OFST (0) +#define POWER_VIO_MSK (0x00000001 << POWER_VIO_OFST) #define POWER_VCC_A_OFST (1) #define POWER_VCC_A_MSK (0x00000001 << POWER_VCC_A_OFST) #define POWER_VCC_B_OFST (2) @@ -15,1006 +21,447 @@ #define POWER_VCC_D_OFST (4) #define POWER_VCC_D_MSK (0x00000001 << POWER_VCC_D_OFST) -#define EMPTY4REG (0x4) +#define STATUS_REG (0x8004) -#define STATUSREG1 (0x8) +#define PATTERN_RUNNING_OFST (0) +#define PATTERN_RUNNING_MSK (0x00000001 << PATTERN_RUNNING_OFST) +#define RX_BUSY_OFST (1) +#define RX_BUSY_MSK (0x00000001 << RX_BUSY_OFST) +#define PROCESSING_BUSY_OFST (2) +#define PROCESSING_BUSY_MSK (0x00000001 << PROCESSING_BUSY_OFST) +#define UDP_GEN_BUSY_OFST (3) +#define UDP_GEN_BUSY_MSK (0x00000001 << UDP_GEN_BUSY_OFST) +#define NETWORK_BUSY_OFST (4) +#define NETWORK_BUSY_MSK (0x00000001 << NETWORK_BUSY_OFST) +#define WAIT_FOR_TRIGGER_OFST (5) +#define WAIT_FOR_TRIGGER_MSK (0x00000001 << WAIT_FOR_TRIGGER_OFST) +#define RX_NOT_GOOD_OFST (6) +#define RX_NOT_GOOD_MSK (0x00000001 << RX_NOT_GOOD_OFST) -#define TRANSMISSIONBUSY_OFST (0) -#define TRANSMISSIONBUSY_MSK (0x00000001 << TRANSMISSIONBUSY_OFST) +#define STATUS_REG2 (0x8008) -#define STATUSREG2 (0xC) - -#define FPGAVERSIONREG (0x10) +#define FPGAVERSIONREG (0x800C) #define FPGACOMPDATE_OFST (0) #define FPGACOMPDATE_MSK (0x00ffffff << FPGACOMPDATE_OFST) -#define FPGADETTYPE_OFST (24) -#define FPGADETTYPE_MSK (0x000000ff << FPGADETTYPE_OFST) +#define FPGADETTYPE_OFST (24) +#define FPGADETTYPE_MSK (0x000000ff << FPGADETTYPE_OFST) -#define EMPTY14REG (0x14) +#define FPGA_GIT_HEAD (0x8010) -#define FIXEDPATTERNREG (0x18) +#define FIXEDPATTERNREG (0x8014) #define FIXEDPATTERNVAL (0xACDC2016) -#define EMPTY1CREG (0x1C) - -#define APIVERSIONREG (0x20) +#define APIVERSIONREG (0x8018) #define APICOMPDATE_OFST (0) #define APICOMPDATE_MSK (0x00ffffff << APICOMPDATE_OFST) -#define APIDETTYPE_OFST (24) -#define APIDETTYPE_MSK (0x000000ff << APIDETTYPE_OFST) +#define APIDETTYPE_OFST (24) +#define APIDETTYPE_MSK (0x000000ff << APIDETTYPE_OFST) -#define EMPTY24REG (0x24) +#define A_FIFO_OVERFLOW_STATUS_REG (0x9000) -#define PKTPACKETLENGTHREG (0x28) +#define A_FIFO_EMPTY_STATUS_REG (0x9004) -#define PACKETLENGTH1G_OFST (0) -#define PACKETLENGTH1G_MSK (0x0000ffff << PACKETLENGTH1G_OFST) +#define A_FIFO_FULL_STATUS_REG (0x9008) + +#define D_FIFO_OVERFLOW_STATUS_REG (0x900C) + +#define D_FIFO_OVERFLOW_STATUS_OFST (0) +#define D_FIFO_OVERFLOW_STATUS_MSK (0x00000001 << D_FIFO_OVERFLOW_STATUS_OFST) + +#define D_FIFO_EMPTY_STATUS_REG (0x9010) + +#define D_FIFO_EMPTY_STATUS_OFST (0) +#define D_FIFO_EMPTY_STATUS_MSK (0x00000001 << D_FIFO_EMPTY_STATUS_OFST) + +#define D_FIFO_FULL_STATUS_REG (0x9014) + +#define D_FIFO_FULL_STATUS_OFST (0) +#define D_FIFO_FULL_STATUS_MSK (0x00000001 << D_FIFO_FULL_STATUS_OFST) + +#define X_FIFO_OVERFLOW_STATUS_REG (0x9018) + +#define X_FIFO_OVERFLOW_STATUS_OFST (0) +#define X_FIFO_OVERFLOW_STATUS_MSK (0x0000000f << X_FIFO_OVERFLOW_STATUS_OFST) + +#define X_FIFO_EMPTY_STATUS_REG (0x901C) + +#define X_FIFO_EMPTY_STATUS_OFST (0) +#define X_FIFO_EMPTY_STATUS_MSK (0x0000000f << X_FIFO_EMPTY_STATUS_OFST) + +#define X_FIFO_FULL_STATUS_REG (0x9020) + +#define X_FIFO_FULL_STATUS_OFST (0) +#define X_FIFO_FULL_STATUS_MSK (0x0000000f << X_FIFO_FULL_STATUS_OFST) + +#define A_FIFO_CLEAN_REG (0x9024) + +#define D_FIFO_CLEAN_REG (0x9028) + +#define D_FIFO_CLEAN_OFST (0) +#define D_FIFO_CLEAN_MSK (0x00000001 << D_FIFO_CLEAN_OFST) + +#define X_FIFO_CLEAN_REG (0x902C) + +#define X_FIFO_CLEAN_OFST (0) +#define X_FIFO_CLEAN_MSK (0x0000000f << X_FIFO_CLEAN_OFST) + +#define FIFO_TO_GB_CONTROL_REG (0xA000) + +#define ENABLED_CHANNELS_ADC_OFST (0) +#define ENABLED_CHANNELS_ADC_MSK (0x000000ff << ENABLED_CHANNELS_ADC_OFST) +#define ENABLED_CHANNELS_D_OFST (8) +#define ENABLED_CHANNELS_D_MSK (0x00000001 << ENABLED_CHANNELS_D_OFST) +#define ENABLED_CHANNELS_X_OFST (9) +#define ENABLED_CHANNELS_X_MSK (0x0000000f << ENABLED_CHANNELS_X_OFST) +#define RO_MODE_ADC_OFST (13) +#define RO_MODE_ADC_MSK (0x00000001 << RO_MODE_ADC_OFST) +#define RO_MODE_D_OFST (14) +#define RO_MODE_D_MSK (0x00000001 << RO_MODE_D_OFST) +#define RO_MODE_X_OFST (15) +#define RO_MODE_X_MSK (0x00000001 << RO_MODE_X_OFST) +#define COUNT_FRAMES_FROM_UPDATE_OFST (16) +#define COUNT_FRAMES_FROM_UPDATE_MSK (0x00000001 << COUNT_FRAMES_FROM_UPDATE_OFST) +#define START_STREAMING_P_OFST (17) +#define START_STREAMING_P_MSK (0x00000001 << START_STREAMING_P_OFST) +#define STREAM_BUFFER_CLEAR_OFST (18) +#define STREAM_BUFFER_CLEAR_MSK (0x00000001 << STREAM_BUFFER_CLEAR_OFST) + +#define NO_SAMPLES_D_REG (0xA004) + +#define NO_SAMPLES_D_OFST (0) +#define NO_SAMPLES_D_MSK (0x00003fff << NO_SAMPLES_D_OFST) + +#define NO_SAMPLES_A_REG (0xA008) + +#define NO_SAMPLES_A_OFST (0) +#define NO_SAMPLES_A_MSK (0x00003fff << NO_SAMPLES_A_OFST) + +#define NO_SAMPLES_X_REG (0xA00C) + +#define NO_SAMPLES_X_OFST (0) +#define NO_SAMPLES_X_MSK (0x00001fff << NO_SAMPLES_X_OFST) + +#define COUNT_FRAMES_FROM_REG_1 (0xA010) + +#define COUNT_FRAMES_FROM_REG_2 (0xA014) + +#define LOCAL_FRAME_NUMBER_REG_1 (0xA018) + +#define LOCAL_FRAME_NUMBER_REG_2 (0xA01C) + +#define PKTPACKETLENGTHREG (0xA020) + +#define PACKETLENGTH1G_OFST (0) +#define PACKETLENGTH1G_MSK (0x0000ffff << PACKETLENGTH1G_OFST) #define PACKETLENGTH10G_OFST (16) #define PACKETLENGTH10G_MSK (0x0000ffff << PACKETLENGTH10G_OFST) -#define EMPTY2CREG (0x2C) +#define PKTNOPACKETSREG (0xA024) -#define PKTNOPACKETSREG (0x30) - -#define NOPACKETS1G_OFST (0) -#define NOPACKETS1G_MSK (0x0000003f << NOPACKETS1G_OFST) +#define NOPACKETS1G_OFST (0) +#define NOPACKETS1G_MSK (0x0000003f << NOPACKETS1G_OFST) #define NOPACKETS10G_OFST (16) #define NOPACKETS10G_MSK (0x0000003f << NOPACKETS10G_OFST) -#define EMPTY34REG (0x34) +#define PKTCTRLREG (0xA028) -#define PKTCTRLREG (0x38) - -#define NOSERVERS_OFST (0) -#define NOSERVERS_MSK (0x0000003f << NOSERVERS_OFST) +#define NOSERVERS_OFST (0) +#define NOSERVERS_MSK (0x0000003f << NOSERVERS_OFST) #define SERVERSTART_OFST (8) #define SERVERSTART_MSK (0x0000001f << SERVERSTART_OFST) -#define ETHINTERF_OFST (16) -#define ETHINTERF_MSK (0x00000001 << ETHINTERF_OFST) +#define ETHINTERF_OFST (16) +#define ETHINTERF_MSK (0x00000001 << ETHINTERF_OFST) -#define EMPTY3CREG (0x3C) - -#define PKTCOORDREG1 (0x40) +#define PKTCOORDREG1 (0xA02C) #define COORDX_OFST (0) #define COORDX_MSK (0x0000ffff << COORDX_OFST) #define COORDY_OFST (16) #define COORDY_MSK (0x0000ffff << COORDY_OFST) -#define EMPTY44REG (0x44) - -#define PKTCOORDREG2 (0x48) +#define PKTCOORDREG2 (0xA030) #define COORDZ_OFST (0) #define COORDZ_MSK (0x0000ffff << COORDZ_OFST) -#define EMPTY4CREG (0x4C) +#define PATTERN_OUT_LSB_REG (0xB000) -#define EMPTY50REG (0x50) +#define PATTERN_OUT_MSB_REG (0xB004) -#define EMPTY54REG (0x54) +#define PATTERN_IN_LSB_REG (0xB008) -#define EMPTY58REG (0x58) +#define PATTERN_IN_MSB_REG (0xB00C) -#define EMPTY5CREG (0x5C) +#define PATTERN_MASK_LSB_REG (0xB010) -#define EMPTY60REG (0x60) +#define PATTERN_MASK_MSB_REG (0xB014) -#define EMPTY64REG (0x64) +#define PATTERN_SET_LSB_REG (0xB018) -#define EMPTY68REG (0x68) +#define PATTERN_SET_MSB_REG (0xB01C) -#define EMPTY6CREG (0x6C) +#define PATTERN_CNTRL_REG (0xB020) -#define EMPTY70REG (0x70) - -#define EMPTY74REG (0x74) - -#define EMPTY78REG (0x78) - -#define EMPTY7CREG (0x7C) - -#define EMPTY80REG (0x80) - -#define EMPTY84REG (0x84) - -#define EMPTY88REG (0x88) - -#define EMPTY8CREG (0x8C) - -#define EMPTY90REG (0x90) - -#define EMPTY94REG (0x94) - -#define EMPTY98REG (0x98) - -#define EMPTY9CREG (0x9C) - -#define FLOW_STATUS_REG (0x100) - -#define RSM_BUSY_OFST (0) -#define RSM_BUSY_MSK (0x00000001 << RSM_BUSY_OFST) -#define RSM_TRG_WAIT_OFST (3) -#define RSM_TRG_WAIT_MSK (0x00000001 << RSM_TRG_WAIT_OFST) -#define CSM_BUSY_OFST (17) -#define CSM_BUSY_MSK (0x00000001 << CSM_BUSY_OFST) - -#define EMPTY104REG (0x104) - -#define FLOW_CONTROL_REG (0x108) - -#define START_F_OFST (0) -#define START_F_MSK (0x00000001 << START_F_OFST) -#define STOP_F_OFST (1) -#define STOP_F_MSK (0x00000001 << STOP_F_OFST) -#define RST_F_OFST (2) -#define RST_F_MSK (0x00000001 << RST_F_OFST) -#define SW_TRIGGER_F_OFST (3) -#define SW_TRIGGER_F_MSK (0x00000001 << SW_TRIGGER_F_OFST) -#define TRIGGER_ENABLE_OFST (4) -#define TRIGGER_ENABLE_MSK (0x00000001 << TRIGGER_ENABLE_OFST) - -#define EMPTY10CREG (0x10C) - -#define TIME_FROM_START_OUT_REG_1 (0x110) - -#define TIME_FROM_START_OUT_REG_2 (0x114) - -#define FRAMES_FROM_START_OUT_REG_1 (0x118) - -#define FRAMES_FROM_START_OUT_REG_2 (0x11C) - -#define FRAME_TIME_OUT_REG_1 (0x120) - -#define FRAME_TIME_OUT_REG_2 (0x124) - -#define DELAY_OUT_REG_1 (0x128) - -#define DELAY_OUT_REG_2 (0x12C) - -#define CYCLES_OUT_REG_1 (0x130) - -#define CYCLES_OUT_REG_2 (0x134) - -#define FRAMES_OUT_REG_1 (0x138) - -#define FRAMES_OUT_REG_2 (0x13C) - -#define PERIOD_OUT_REG_1 (0x140) - -#define PERIOD_OUT_REG_2 (0x144) - -#define DELAY_IN_REG_1 (0x148) - -#define DELAY_IN_REG_2 (0x14C) - -#define CYCLES_IN_REG_1 (0x150) - -#define CYCLES_IN_REG_2 (0x154) - -#define FRAMES_IN_REG_1 (0x158) - -#define FRAMES_IN_REG_2 (0x15C) - -#define PERIOD_IN_REG_1 (0x160) - -#define PERIOD_IN_REG_2 (0x164) - -#define EMPTY168REG (0x168) - -#define EMPTY16CREG (0x16C) - -#define EMPTY170REG (0x170) - -#define EMPTY174REG (0x174) - -#define EMPTY178REG (0x178) - -#define EMPTY17CREG (0x17C) - -#define EMPTY180REG (0x180) - -#define EMPTY184REG (0x184) - -#define EMPTY188REG (0x188) - -#define EMPTY18CREG (0x18C) - -#define EMPTY190REG (0x190) - -#define EMPTY194REG (0x194) - -#define EMPTY198REG (0x198) - -#define EMPTY19CREG (0x19C) - -#define PATTERN_OUT_LSB_REG (0x200) - -#define PATTERN_OUT_MSB_REG (0x204) - -#define PATTERN_IN_LSB_REG (0x208) - -#define PATTERN_IN_MSB_REG (0x20C) - -#define PATTERN_MASK_LSB_REG (0x210) - -#define PATTERN_MASK_MSB_REG (0x214) - -#define PATTERN_SET_LSB_REG (0x218) - -#define PATTERN_SET_MSB_REG (0x21C) - -#define PATTERN_CNTRL_REG (0x220) - -#define PATTERN_CNTRL_WR_OFST (0) -#define PATTERN_CNTRL_WR_MSK (0x00000001 << PATTERN_CNTRL_WR_OFST) -#define PATTERN_CNTRL_RD_OFST (1) -#define PATTERN_CNTRL_RD_MSK (0x00000001 << PATTERN_CNTRL_RD_OFST) +#define PATTERN_CNTRL_WR_OFST (0) +#define PATTERN_CNTRL_WR_MSK (0x00000001 << PATTERN_CNTRL_WR_OFST) +#define PATTERN_CNTRL_RD_OFST (1) +#define PATTERN_CNTRL_RD_MSK (0x00000001 << PATTERN_CNTRL_RD_OFST) #define PATTERN_CNTRL_ADDR_OFST (16) #define PATTERN_CNTRL_ADDR_MSK (0x00001fff << PATTERN_CNTRL_ADDR_OFST) -#define EMPTY224REG (0x224) - -#define PATTERN_LIMIT_REG (0x228) +#define PATTERN_LIMIT_REG (0xB024) #define PATTERN_LIMIT_STRT_OFST (0) #define PATTERN_LIMIT_STRT_MSK (0x00001fff << PATTERN_LIMIT_STRT_OFST) -#define PATTERN_LIMIT_STP_OFST (16) -#define PATTERN_LIMIT_STP_MSK (0x00001fff << PATTERN_LIMIT_STP_OFST) +#define PATTERN_LIMIT_STP_OFST (16) +#define PATTERN_LIMIT_STP_MSK (0x00001fff << PATTERN_LIMIT_STP_OFST) -#define EMPTY22CREG (0x22C) +#define PATTERN_IO_CNTRL_LSB_REG (0xB028) -#define PATTERN_LOOP_0_ADDR_REG (0x230) +#define PATTERN_IO_CNTRL_MSB_REG (0xB02C) -#define PATTERN_LOOP_0_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_0_ADDR_STRT_MSK \ - (0x00001fff << PATTERN_LOOP_0_ADDR_STRT_OFST) -#define PATTERN_LOOP_0_ADDR_STP_OFST (16) -#define PATTERN_LOOP_0_ADDR_STP_MSK (0x00001fff << PATTERN_LOOP_0_ADDR_STP_OFST) +#define FLOW_CONTROL_REG (0xB030) -#define EMPTY234REG (0x234) +#define START_F_OFST (0) +#define START_F_MSK (0x00000001 << START_F_OFST) +#define STOP_F_OFST (1) +#define STOP_F_MSK (0x00000001 << STOP_F_OFST) +#define RST_F_OFST (2) +#define RST_F_MSK (0x00000001 << RST_F_OFST) +#define SW_TRIGGER_F_OFST (3) +#define SW_TRIGGER_F_MSK (0x00000001 << SW_TRIGGER_F_OFST) +#define TRIGGER_ENABLE_OFST (4) +#define TRIGGER_ENABLE_MSK (0x00000001 << TRIGGER_ENABLE_OFST) +#define RSM_BUSY_OFST (5) +#define RSM_BUSY_MSK (0x00000001 << RSM_BUSY_OFST) +#define RSM_TRG_WAIT_OFST (6) +#define RSM_TRG_WAIT_MSK (0x00000001 << RSM_TRG_WAIT_OFST) +#define CSM_BUSY_OFST (7) +#define CSM_BUSY_MSK (0x00000001 << CSM_BUSY_OFST) -#define PATTERN_LOOP_0_ITERATION_REG (0x238) +#define DELAY_IN_REG_1 (0xB034) -#define EMPTY23CREG (0x23C) +#define DELAY_IN_REG_2 (0xB038) -#define PATTERN_WAIT_0_ADDR_REG (0x240) +#define CYCLES_IN_REG_1 (0xB03C) -#define PATTERN_WAIT_0_ADDR_OFST (0) -#define PATTERN_WAIT_0_ADDR_MSK (0x00001fff << PATTERN_WAIT_0_ADDR_OFST) +#define CYCLES_IN_REG_2 (0xB040) -#define EMPTY244REG (0x244) +#define FRAMES_IN_REG_1 (0xB044) -#define PATTERN_WAIT_TIMER_0_LSB_REG (0x248) +#define FRAMES_IN_REG_2 (0xB048) -#define PATTERN_WAIT_TIMER_0_MSB_REG (0x24C) +#define PERIOD_IN_REG_1 (0xB04C) -#define PATTERN_LOOP_1_ADDR_REG (0x250) +#define PERIOD_IN_REG_2 (0xB050) -#define PATTERN_LOOP_1_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_1_ADDR_STRT_MSK \ - (0x00001fff << PATTERN_LOOP_1_ADDR_STRT_OFST) -#define PATTERN_LOOP_1_ADDR_STP_OFST (16) -#define PATTERN_LOOP_1_ADDR_STP_MSK (0x00001fff << PATTERN_LOOP_1_ADDR_STP_OFST) +#define PATTERN_TEST_REG (0xB054) -#define EMPTY254REG (0x254) +#define PATTERN_FIRMWARE_REG (0xB058) -#define PATTERN_LOOP_1_ITERATION_REG (0x258) +#define PATTERN_WIDTH_OFST (0) +#define PATTERN_WIDTH_MSK (0x000000ff << PATTERN_WIDTH_OFST) +#define PATTERN_ADDR_WIDTH_OFST (8) +#define PATTERN_ADDR_WIDTH_MSK (0x000000ff << PATTERN_ADDR_WIDTH_OFST) +#define PATTERN_NLOOPS_NWAITS_OFST (16) +#define PATTERN_NLOOPS_NWAITS_MSK (0x000000ff << PATTERN_NLOOPS_NWAITS_OFST) +#define DIRECT_PATTERN_RAM_OFST (24) +#define DIRECT_PATTERN_RAM_MSK (0x00000001 << DIRECT_PATTERN_RAM_OFST) -#define EMPTY25CREG (0x25C) +#define TIME_FROM_START_OUT_REG_1 (0xB05C) -#define PATTERN_WAIT_1_ADDR_REG (0x260) +#define TIME_FROM_START_OUT_REG_2 (0xB060) -#define PATTERN_WAIT_1_ADDR_OFST (0) -#define PATTERN_WAIT_1_ADDR_MSK (0x00001fff << PATTERN_WAIT_1_ADDR_OFST) +#define FRAMES_FROM_START_OUT_REG_1 (0xB064) -#define EMPTY264REG (0x264) +#define FRAMES_FROM_START_OUT_REG_2 (0xB068) -#define PATTERN_WAIT_TIMER_1_LSB_REG (0x268) +#define FRAME_TIME_OUT_REG_1 (0xB06C) -#define PATTERN_WAIT_TIMER_1_MSB_REG (0x26C) +#define FRAME_TIME_OUT_REG_2 (0xB070) -#define PATTERN_LOOP_2_ADDR_REG (0x270) +#define PATTERN_LOOPDEF_BASE (0xB080) -#define PATTERN_LOOP_2_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_2_ADDR_STRT_MSK \ - (0x00001fff << PATTERN_LOOP_2_ADDR_STRT_OFST) -#define PATTERN_LOOP_2_ADDR_STP_OFST (16) -#define PATTERN_LOOP_2_ADDR_STP_MSK (0x00001fff << PATTERN_LOOP_2_ADDR_STP_OFST) +#define PATTERN_LOOP_ADDR_WORD_OFST (0) +#define PATTERN_LOOP_ADDR_WORD_MSK (0x00000001 << PATTERN_LOOP_ADDR_WORD_OFST) +#define PATTERN_LOOP_ITERATION_WORD_OFST (1) +#define PATTERN_LOOP_ITERATION_WORD_MSK (0x00000001 << PATTERN_LOOP_ITERATION_WORD_OFST) +#define PATTERN_WAIT_ADDR_WORD_OFST (2) +#define PATTERN_WAIT_ADDR_WORD_MSK (0x00000001 << PATTERN_WAIT_ADDR_WORD_OFST) +#define PATTERN_WAIT_TIMER_LSB_WORD_OFST (3) +#define PATTERN_WAIT_TIMER_LSB_WORD_MSK (0x00000001 << PATTERN_WAIT_TIMER_LSB_WORD_OFST) +#define PATTERN_WAIT_TIMER_MSB_WORD_OFST (4) +#define PATTERN_WAIT_TIMER_MSB_WORD_MSK (0x00000001 << PATTERN_WAIT_TIMER_MSB_WORD_OFST) +#define PATTERN_LOOPDEF_NWORDS_OFST (5) +#define PATTERN_LOOPDEF_NWORDS_MSK (0x00000001 << PATTERN_LOOPDEF_NWORDS_OFST) +#define PATTERN_WAIT_ADDR_OFST (0) +#define PATTERN_WAIT_ADDR_MSK (0x00001fff << PATTERN_WAIT_ADDR_OFST) +#define PATTERN_LOOP_ADDR_STRT_OFST (0) +#define PATTERN_LOOP_ADDR_STRT_MSK (0x00001fff << PATTERN_LOOP_ADDR_STRT_OFST) +#define PATTERN_LOOP_ADDR_STP_OFST (16) +#define PATTERN_LOOP_ADDR_STP_MSK (0x00001fff << PATTERN_LOOP_ADDR_STP_OFST) -#define EMPTY274REG (0x274) +#define DBITFIFOCTRLREG (0xC000) -#define PATTERN_LOOP_2_ITERATION_REG (0x278) +#define DBITRD_OFST (0) +#define DBITRD_MSK (0x00000001 << DBITRD_OFST) +#define DBITRST_OFST (1) +#define DBITRST_MSK (0x00000001 << DBITRST_OFST) +#define DBITFULL_OFST (2) +#define DBITFULL_MSK (0x00000001 << DBITFULL_OFST) +#define DBITEMPTY_OFST (3) +#define DBITEMPTY_MSK (0x00000001 << DBITEMPTY_OFST) +#define DBITUNDERFLOW_OFST (4) +#define DBITUNDERFLOW_MSK (0x00000001 << DBITUNDERFLOW_OFST) +#define DBITOVERFLOW_OFST (5) +#define DBITOVERFLOW_MSK (0x00000001 << DBITOVERFLOW_OFST) -#define EMPTY27CREG (0x27C) +#define DBITFIFODATAREG1 (0xC004) -#define PATTERN_WAIT_2_ADDR_REG (0x280) +#define DBITFIFODATAREG2 (0xC008) -#define PATTERN_WAIT_2_ADDR_OFST (0) -#define PATTERN_WAIT_2_ADDR_MSK (0x00001fff << PATTERN_WAIT_2_ADDR_OFST) +#define MATTERHORNSPIREG1 (0xC00C) -#define EMPTY284REG (0x284) +#define MATTERHORNSPIREG2 (0xC010) -#define PATTERN_WAIT_TIMER_2_LSB_REG (0x288) +#define MATTERHORNSPICTRL (0xC014) -#define PATTERN_WAIT_TIMER_2_MSB_REG (0x28C) - -#define PATTERN_LOOP_3_ADDR_REG (0x290) - -#define PATTERN_LOOP_3_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_3_ADDR_STRT_MSK \ - (0x00001fff << PATTERN_LOOP_3_ADDR_STRT_OFST) -#define PATTERN_LOOP_3_ADDR_STP_OFST (16) -#define PATTERN_LOOP_3_ADDR_STP_MSK (0x00001fff << PATTERN_LOOP_3_ADDR_STP_OFST) - -#define EMPTY294REG (0x294) - -#define PATTERN_LOOP_3_ITERATION_REG (0x298) - -#define EMPTY29CREG (0x29C) - -#define PATTERN_WAIT_3_ADDR_REG (0x300) - -#define PATTERN_WAIT_3_ADDR_OFST (0) -#define PATTERN_WAIT_3_ADDR_MSK (0x00001fff << PATTERN_WAIT_3_ADDR_OFST) - -#define EMPTY304REG (0x304) - -#define PATTERN_WAIT_TIMER_3_LSB_REG (0x308) - -#define PATTERN_WAIT_TIMER_3_MSB_REG (0x30C) - -#define PATTERN_LOOP_4_ADDR_REG (0x310) - -#define PATTERN_LOOP_4_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_4_ADDR_STRT_MSK \ - (0x00001fff << PATTERN_LOOP_4_ADDR_STRT_OFST) -#define PATTERN_LOOP_4_ADDR_STP_OFST (16) -#define PATTERN_LOOP_4_ADDR_STP_MSK (0x00001fff << PATTERN_LOOP_4_ADDR_STP_OFST) - -#define EMPTY314REG (0x314) - -#define PATTERN_LOOP_4_ITERATION_REG (0x318) - -#define EMPTY31CREG (0x31C) - -#define PATTERN_WAIT_4_ADDR_REG (0x320) - -#define PATTERN_WAIT_4_ADDR_OFST (0) -#define PATTERN_WAIT_4_ADDR_MSK (0x00001fff << PATTERN_WAIT_4_ADDR_OFST) - -#define EMPTY324REG (0x324) - -#define PATTERN_WAIT_TIMER_4_LSB_REG (0x328) - -#define PATTERN_WAIT_TIMER_4_MSB_REG (0x32C) - -#define PATTERN_LOOP_5_ADDR_REG (0x330) - -#define PATTERN_LOOP_5_ADDR_STRT_OFST (0) -#define PATTERN_LOOP_5_ADDR_STRT_MSK \ - (0x00001fff << PATTERN_LOOP_5_ADDR_STRT_OFST) -#define PATTERN_LOOP_5_ADDR_STP_OFST (16) -#define PATTERN_LOOP_5_ADDR_STP_MSK (0x00001fff << PATTERN_LOOP_5_ADDR_STP_OFST) - -#define EMPTY334REG (0x334) - -#define PATTERN_LOOP_5_ITERATION_REG (0x338) - -#define EMPTY33CREG (0x33C) - -#define PATTERN_WAIT_5_ADDR_REG (0x340) - -#define PATTERN_WAIT_5_ADDR_OFST (0) -#define PATTERN_WAIT_5_ADDR_MSK (0x00001fff << PATTERN_WAIT_5_ADDR_OFST) - -#define EMPTY344REG (0x344) - -#define PATTERN_WAIT_TIMER_5_LSB_REG (0x348) - -#define PATTERN_WAIT_TIMER_5_MSB_REG (0x34C) - -#define PINIOCTRLREG (0x350) - -#define EMPTY354REG (0x354) - -#define EMPTY358REG (0x358) - -#define EMPTY35CREG (0x35C) - -#define EMPTY360REG (0x360) - -#define EMPTY364REG (0x364) - -#define EMPTY368REG (0x368) - -#define EMPTY36CREG (0x36C) - -#define EMPTY370REG (0x370) - -#define EMPTY374REG (0x374) - -#define EMPTY378REG (0x378) - -#define EMPTY37CREG (0x37C) - -#define EMPTY380REG (0x380) - -#define EMPTY384REG (0x384) - -#define EMPTY388REG (0x388) - -#define EMPTY38CREG (0x38C) - -#define EMPTY390REG (0x390) - -#define EMPTY394REG (0x394) - -#define EMPTY398REG (0x398) - -#define EMPTY39CREG (0x39C) - -#define EMPTY3A0REG (0x3A0) - -#define EMPTY3A4REG (0x3A4) - -#define EMPTY3A8REG (0x3A8) - -#define EMPTY3ACREG (0x3AC) - -#define EMPTY3B0REG (0x3B0) - -#define EMPTY3B4REG (0x3B4) - -#define EMPTY3B8REG (0x3B8) - -#define EMPTY3BCREG (0x3BC) - -#define EMPTY3C0REG (0x3C0) - -#define EMPTY3C4REG (0x3C4) - -#define EMPTY3C8REG (0x3C8) - -#define EMPTY3CCREG (0x3CC) - -#define EMPTY3D0REG (0x3D0) - -#define EMPTY3D4REG (0x3D4) - -#define EMPTY3D8REG (0x3D8) - -#define EMPTY3DCREG (0x3DC) - -#define EMPTY3E0REG (0x3E0) - -#define EMPTY3E4REG (0x3E4) - -#define EMPTY3E8REG (0x3E8) - -#define EMPTY3ECREG (0x3EC) - -#define EMPTY3F0REG (0x3F0) - -#define EMPTY3F4REG (0x3F4) - -#define EMPTY3F8REG (0x3F8) - -#define EMPTY3FCREG (0x3FC) - -#define EMPTY400REG (0x400) - -#define EMPTY404REG (0x404) - -#define EMPTY408REG (0x408) - -#define EMPTY40CREG (0x40C) - -#define EMPTY410REG (0x410) - -#define EMPTY414REG (0x414) - -#define EMPTY418REG (0x418) - -#define EMPTY41CREG (0x41C) - -#define EMPTY420REG (0x420) - -#define EMPTY424REG (0x424) - -#define EMPTY428REG (0x428) - -#define EMPTY42CREG (0x42C) - -#define EMPTY430REG (0x430) - -#define EMPTY434REG (0x434) - -#define EMPTY438REG (0x438) - -#define EMPTY43CREG (0x43C) - -#define EMPTY440REG (0x440) - -#define EMPTY444REG (0x444) - -#define EMPTY448REG (0x448) - -#define EMPTY44CREG (0x44C) - -#define EMPTY450REG (0x450) - -#define EMPTY454REG (0x454) - -#define EMPTY458REG (0x458) - -#define EMPTY45CREG (0x45C) - -#define EMPTY460REG (0x460) - -#define EMPTY464REG (0x464) - -#define EMPTY468REG (0x468) - -#define EMPTY46CREG (0x46C) - -#define EMPTY470REG (0x470) - -#define EMPTY474REG (0x474) - -#define EMPTY478REG (0x478) - -#define EMPTY47CREG (0x47C) - -#define EMPTY480REG (0x480) - -#define EMPTY484REG (0x484) - -#define EMPTY488REG (0x488) - -#define EMPTY48CREG (0x48C) - -#define EMPTY490REG (0x490) - -#define EMPTY494REG (0x494) - -#define EMPTY498REG (0x498) - -#define EMPTY49CREG (0x49C) - -#define EMPTY4A0REG (0x4A0) - -#define EMPTY4A4REG (0x4A4) - -#define EMPTY4A8REG (0x4A8) - -#define EMPTY4ACREG (0x4AC) - -#define EMPTY4B0REG (0x4B0) - -#define EMPTY4B4REG (0x4B4) - -#define EMPTY4B8REG (0x4B8) - -#define EMPTY4BCREG (0x4BC) - -#define EMPTY4C0REG (0x4C0) - -#define EMPTY4C4REG (0x4C4) - -#define EMPTY4C8REG (0x4C8) - -#define EMPTY4CCREG (0x4CC) - -#define EMPTY4D0REG (0x4D0) - -#define EMPTY4D4REG (0x4D4) - -#define EMPTY4D8REG (0x4D8) - -#define EMPTY4DCREG (0x4DC) - -#define EMPTY4E0REG (0x4E0) - -#define EMPTY4E4REG (0x4E4) - -#define EMPTY4E8REG (0x4E8) - -#define EMPTY4ECREG (0x4EC) - -#define EMPTY4F0REG (0x4F0) - -#define EMPTY4F4REG (0x4F4) - -#define EMPTY4F8REG (0x4F8) - -#define EMPTY4FCREG (0x4FC) - -#define FIFO_TO_GB_CONTROL_REG (0x500) - -#define ENABLED_CHANNELS_ADC_OFST (0) -#define ENABLED_CHANNELS_ADC_MSK (0x000000ff << ENABLED_CHANNELS_ADC_OFST) -#define ENABLED_CHANNELS_D_OFST (8) -#define ENABLED_CHANNELS_D_MSK (0x00000001 << ENABLED_CHANNELS_D_OFST) -#define ENABLED_CHANNELS_X_OFST (9) -#define ENABLED_CHANNELS_X_MSK (0x0000000f << ENABLED_CHANNELS_X_OFST) -#define RO_MODE_ADC_OFST (13) -#define RO_MODE_ADC_MSK (0x00000001 << RO_MODE_ADC_OFST) -#define RO_MODE_D_OFST (14) -#define RO_MODE_D_MSK (0x00000001 << RO_MODE_D_OFST) -#define RO_MODE_X_OFST (15) -#define RO_MODE_X_MSK (0x00000001 << RO_MODE_X_OFST) -#define COUNT_FRAMES_FROM_UPDATE_OFST (16) -#define COUNT_FRAMES_FROM_UPDATE_MSK \ - (0x00000001 << COUNT_FRAMES_FROM_UPDATE_OFST) -#define START_STREAMING_P_OFST (17) -#define START_STREAMING_P_MSK (0x00000001 << START_STREAMING_P_OFST) - -#define EMPTY504REG (0x504) - -#define NO_SAMPLES_D_REG (0x508) - -#define NO_SAMPLES_D_OFST (0) -#define NO_SAMPLES_D_MSK (0x00003fff << NO_SAMPLES_D_OFST) - -#define EMPTY50CREG (0x50C) - -#define NO_SAMPLES_A_REG (0x510) - -#define NO_SAMPLES_A_OFST (0) -#define NO_SAMPLES_A_MSK (0x00003fff << NO_SAMPLES_A_OFST) - -#define EMPTY514REG (0x514) - -#define NO_SAMPLES_X_REG (0x518) - -#define NO_SAMPLES_X_OFST (0) -#define NO_SAMPLES_X_MSK (0x00001fff << NO_SAMPLES_X_OFST) - -#define EMPTY51CREG (0x51C) - -#define COUNT_FRAMES_FROM_REG_1 (0x520) - -#define COUNT_FRAMES_FROM_REG_2 (0x524) - -#define LOCAL_FRAME_NUMBER_REG_1 (0x528) - -#define LOCAL_FRAME_NUMBER_REG_2 (0x52C) - -#define EMPTY530REG (0x530) - -#define EMPTY534REG (0x534) - -#define EMPTY538REG (0x538) - -#define EMPTY53CREG (0x53C) - -#define EMPTY540REG (0x540) - -#define EMPTY544REG (0x544) - -#define EMPTY548REG (0x548) - -#define EMPTY54CREG (0x54C) - -#define EMPTY550REG (0x550) - -#define EMPTY554REG (0x554) - -#define EMPTY558REG (0x558) - -#define EMPTY55CREG (0x55C) - -#define EMPTY560REG (0x560) - -#define EMPTY564REG (0x564) - -#define EMPTY568REG (0x568) - -#define EMPTY56CREG (0x56C) - -#define EMPTY570REG (0x570) - -#define EMPTY574REG (0x574) - -#define EMPTY578REG (0x578) - -#define EMPTY57CREG (0x57C) - -#define A_FIFO_OVERFLOW_STATUS_REG (0x580) - -#define EMPTY584REG (0x584) - -#define A_FIFO_EMPTY_STATUS_REG (0x588) - -#define EMPTY58CREG (0x58C) - -#define A_FIFO_FULL_STATUS_REG (0x590) - -#define EMPTY594REG (0x594) - -#define D_FIFO_OVERFLOW_STATUS_REG (0x598) - -#define D_FIFO_OVERFLOW_STATUS_OFST (0) -#define D_FIFO_OVERFLOW_STATUS_MSK (0x00000001 << D_FIFO_OVERFLOW_STATUS_OFST) - -#define EMPTY59CREG (0x59C) - -#define D_FIFO_EMPTY_STATUS_REG (0x5A0) - -#define D_FIFO_EMPTY_STATUS_OFST (0) -#define D_FIFO_EMPTY_STATUS_MSK (0x00000001 << D_FIFO_EMPTY_STATUS_OFST) - -#define EMPTY5A4REG (0x5A4) - -#define D_FIFO_FULL_STATUS_REG (0x5A8) - -#define D_FIFO_FULL_STATUS_OFST (0) -#define D_FIFO_FULL_STATUS_MSK (0x00000001 << D_FIFO_FULL_STATUS_OFST) - -#define EMPTY5ACREG (0x5AC) - -#define X_FIFO_OVERFLOW_STATUS_REG (0x5B0) - -#define X_FIFO_OVERFLOW_STATUS_OFST (0) -#define X_FIFO_OVERFLOW_STATUS_MSK (0x0000000f << X_FIFO_OVERFLOW_STATUS_OFST) - -#define EMPTY5B4REG (0x5B4) - -#define X_FIFO_EMPTY_STATUS_REG (0x5B8) - -#define X_FIFO_EMPTY_STATUS_OFST (0) -#define X_FIFO_EMPTY_STATUS_MSK (0x0000000f << X_FIFO_EMPTY_STATUS_OFST) - -#define EMPTY5BCREG (0x5BC) - -#define X_FIFO_FULL_STATUS_REG (0x5C0) - -#define X_FIFO_FULL_STATUS_OFST (0) -#define X_FIFO_FULL_STATUS_MSK (0x0000000f << X_FIFO_FULL_STATUS_OFST) - -#define EMPTY5C4REG (0x5C4) - -#define A_FIFO_CLEAN_REG (0x5C8) - -#define EMPTY5CCREG (0x5CC) - -#define D_FIFO_CLEAN_REG (0x5D0) - -#define D_FIFO_CLEAN_OFST (0) -#define D_FIFO_CLEAN_MSK (0x00000001 << D_FIFO_CLEAN_OFST) - -#define EMPTY5D4REG (0x5D4) - -#define X_FIFO_CLEAN_REG (0x5D8) - -#define X_FIFO_CLEAN_OFST (0) -#define X_FIFO_CLEAN_MSK (0x0000000f << X_FIFO_CLEAN_OFST) - -#define EMPTY5DCREG (0x5DC) - -#define EMPTY5E0REG (0x5E0) - -#define EMPTY5E4REG (0x5E4) - -#define EMPTY5E8REG (0x5E8) - -#define EMPTY5ECREG (0x5EC) - -#define EMPTY5F0REG (0x5F0) - -#define EMPTY5F4REG (0x5F4) - -#define EMPTY5F8REG (0x5F8) - -#define EMPTY5FCREG (0x5FC) - -#define MATTERHORNSPIREG1 (0x600) - -#define MATTERHORNSPIREG2 (0x604) - -#define MATTERHORNSPICTRL (0x608) - -#define CONFIGSTART_P_OFST (0) -#define CONFIGSTART_P_MSK (0x00000001 << CONFIGSTART_P_OFST) -#define PERIPHERYRST_P_OFST (1) -#define PERIPHERYRST_P_MSK (0x00000001 << PERIPHERYRST_P_OFST) -#define STARTREAD_P_OFST (2) -#define STARTREAD_P_MSK (0x00000001 << STARTREAD_P_OFST) -#define BUSY_OFST (3) -#define BUSY_MSK (0x00000001 << BUSY_OFST) +#define CONFIGSTART_P_OFST (0) +#define CONFIGSTART_P_MSK (0x00000001 << CONFIGSTART_P_OFST) +#define PERIPHERYRST_P_OFST (1) +#define PERIPHERYRST_P_MSK (0x00000001 << PERIPHERYRST_P_OFST) +#define STARTREAD_P_OFST (2) +#define STARTREAD_P_MSK (0x00000001 << STARTREAD_P_OFST) +#define BUSY_OFST (3) +#define BUSY_MSK (0x00000001 << BUSY_OFST) #define READOUTFROMASIC_OFST (4) #define READOUTFROMASIC_MSK (0x00000001 << READOUTFROMASIC_OFST) -#define EMPTY60CREG (0x60C) +#define TRANSCEIVERRXCTRL0REG1 (0xC100) -#define EMPTY610REG (0x610) +#define TRANSCEIVERRXCTRL0REG2 (0xC104) -#define EMPTY614REG (0x614) +#define TRANSCEIVERRXCTRL1REG1 (0xC108) -#define EMPTY618REG (0x618) +#define TRANSCEIVERRXCTRL1REG2 (0xC10C) -#define EMPTY61CREG (0x61C) +#define TRANSCEIVERRXCTRL2REG (0xC110) -#define EMPTY620REG (0x620) +#define TRANSCEIVERRXCTRL3REG (0xC114) -#define EMPTY624REG (0x624) - -#define EMPTY628REG (0x628) - -#define EMPTY62CREG (0x62C) - -#define TRANSCEIVERRXCTRL0REG1 (0x630) - -#define TRANSCEIVERRXCTRL0REG2 (0x634) - -#define TRANSCEIVERRXCTRL1REG1 (0x638) - -#define TRANSCEIVERRXCTRL1REG2 (0x63C) - -#define TRANSCEIVERRXCTRL2REG (0x640) - -#define EMPTY644REG (0x644) - -#define TRANSCEIVERRXCTRL3REG (0x648) - -#define EMPTY64CREG (0x64C) - -#define TRANSCEIVERSTATUS (0x650) +#define TRANSCEIVERSTATUS (0xC118) #define LINKDOWNLATCHEDOUT_OFST (0) #define LINKDOWNLATCHEDOUT_MSK (0x00000001 << LINKDOWNLATCHEDOUT_OFST) -#define TXUSERCLKACTIVE_OFST (1) -#define TXUSERCLKACTIVE_MSK (0x00000001 << TXUSERCLKACTIVE_OFST) -#define RXUSERCLKACTIVE_OFST (2) -#define RXUSERCLKACTIVE_MSK (0x00000001 << RXUSERCLKACTIVE_OFST) -#define RXCOMMADET_OFST (3) -#define RXCOMMADET_MSK (0x0000000f << RXCOMMADET_OFST) -#define RXBYTEREALIGN_OFST (7) -#define RXBYTEREALIGN_MSK (0x0000000f << RXBYTEREALIGN_OFST) -#define RXBYTEISALIGNED_OFST (11) -#define RXBYTEISALIGNED_MSK (0x0000000f << RXBYTEISALIGNED_OFST) -#define GTWIZRXCDRSTABLE_OFST (15) -#define GTWIZRXCDRSTABLE_MSK (0x00000001 << GTWIZRXCDRSTABLE_OFST) -#define RESETTXDONE_OFST (16) -#define RESETTXDONE_MSK (0x00000001 << RESETTXDONE_OFST) -#define RESETRXDONE_OFST (17) -#define RESETRXDONE_MSK (0x00000001 << RESETRXDONE_OFST) -#define RXPMARESETDONE_OFST (18) -#define RXPMARESETDONE_MSK (0x0000000f << RXPMARESETDONE_OFST) -#define TXPMARESETDONE_OFST (22) -#define TXPMARESETDONE_MSK (0x0000000f << TXPMARESETDONE_OFST) -#define GTTPOWERGOOD_OFST (26) -#define GTTPOWERGOOD_MSK (0x0000000f << GTTPOWERGOOD_OFST) +#define TXUSERCLKACTIVE_OFST (1) +#define TXUSERCLKACTIVE_MSK (0x00000001 << TXUSERCLKACTIVE_OFST) +#define RXUSERCLKACTIVE_OFST (2) +#define RXUSERCLKACTIVE_MSK (0x00000001 << RXUSERCLKACTIVE_OFST) +#define RXCOMMADET_OFST (3) +#define RXCOMMADET_MSK (0x0000000f << RXCOMMADET_OFST) +#define RXBYTEREALIGN_OFST (7) +#define RXBYTEREALIGN_MSK (0x0000000f << RXBYTEREALIGN_OFST) +#define RXBYTEISALIGNED_OFST (11) +#define RXBYTEISALIGNED_MSK (0x0000000f << RXBYTEISALIGNED_OFST) +#define GTWIZRXCDRSTABLE_OFST (15) +#define GTWIZRXCDRSTABLE_MSK (0x00000001 << GTWIZRXCDRSTABLE_OFST) +#define RESETTXDONE_OFST (16) +#define RESETTXDONE_MSK (0x00000001 << RESETTXDONE_OFST) +#define RESETRXDONE_OFST (17) +#define RESETRXDONE_MSK (0x00000001 << RESETRXDONE_OFST) +#define RXPMARESETDONE_OFST (18) +#define RXPMARESETDONE_MSK (0x0000000f << RXPMARESETDONE_OFST) +#define TXPMARESETDONE_OFST (22) +#define TXPMARESETDONE_MSK (0x0000000f << TXPMARESETDONE_OFST) +#define GTTPOWERGOOD_OFST (26) +#define GTTPOWERGOOD_MSK (0x0000000f << GTTPOWERGOOD_OFST) -#define EMPTY654REG (0x654) +#define TRANSCEIVERSTATUS2 (0xC11C) -#define TRANSCEIVERCONTROL (0x658) +#define RXLOCKED_OFST (0) +#define RXLOCKED_MSK (0x0000000f << RXLOCKED_OFST) -#define GTWIZRESETALL_OFST (0) -#define GTWIZRESETALL_MSK (0x00000001 << GTWIZRESETALL_OFST) +#define TRANSCEIVERCONTROL (0xC120) + +#define GTWIZRESETALL_OFST (0) +#define GTWIZRESETALL_MSK (0x00000001 << GTWIZRESETALL_OFST) #define RESETTXPLLANDDATAPATH_OFST (1) #define RESETTXPLLANDDATAPATH_MSK (0x00000001 << RESETTXPLLANDDATAPATH_OFST) -#define RESETTXDATAPATHIN_OFST (2) -#define RESETTXDATAPATHIN_MSK (0x00000001 << RESETTXDATAPATHIN_OFST) +#define RESETTXDATAPATHIN_OFST (2) +#define RESETTXDATAPATHIN_MSK (0x00000001 << RESETTXDATAPATHIN_OFST) #define RESETRXPLLANDDATAPATH_OFST (3) #define RESETRXPLLANDDATAPATH_MSK (0x00000001 << RESETRXPLLANDDATAPATH_OFST) -#define RESETRXDATAPATHIN_OFST (4) -#define RESETRXDATAPATHIN_MSK (0x00000001 << RESETRXDATAPATHIN_OFST) -#define RXPOLARITY_OFST (5) -#define RXPOLARITY_MSK (0x0000000f << RXPOLARITY_OFST) +#define RESETRXDATAPATHIN_OFST (4) +#define RESETRXDATAPATHIN_MSK (0x00000001 << RESETRXDATAPATHIN_OFST) +#define RXPOLARITY_OFST (5) +#define RXPOLARITY_MSK (0x0000000f << RXPOLARITY_OFST) +#define RXERRORCNTRESET_OFST (9) +#define RXERRORCNTRESET_MSK (0x0000000f << RXERRORCNTRESET_OFST) +#define RXMSBLSBINVERT_OFST (13) +#define RXMSBLSBINVERT_MSK (0x0000000f << RXMSBLSBINVERT_OFST) -#define EMPTY65CREG (0x65C) +#define TRANSCEIVERERRCNT_REG0 (0xC124) -#define EMPTY660REG (0x660) +#define TRANSCEIVERERRCNT_REG1 (0xC128) -#define EMPTY664REG (0x664) +#define TRANSCEIVERERRCNT_REG2 (0xC12C) -#define EMPTY668REG (0x668) +#define TRANSCEIVERERRCNT_REG3 (0xC130) -#define EMPTY66CREG (0x66C) +#define TRANSCEIVERALIGNCNT_REG0 (0xC134) -#define EMPTY670REG (0x670) +#define RXALIGNCNTCH0_OFST (0) +#define RXALIGNCNTCH0_MSK (0x0000ffff << RXALIGNCNTCH0_OFST) -#define EMPTY674REG (0x674) +#define TRANSCEIVERALIGNCNT_REG1 (0xC138) -#define EMPTY678REG (0x678) +#define RXALIGNCNTCH1_OFST (0) +#define RXALIGNCNTCH1_MSK (0x0000ffff << RXALIGNCNTCH1_OFST) -#define EMPTY67CREG (0x67C) +#define TRANSCEIVERALIGNCNT_REG2 (0xC13C) -#define EMPTY680REG (0x680) +#define RXALIGNCNTCH2_OFST (0) +#define RXALIGNCNTCH2_MSK (0x0000ffff << RXALIGNCNTCH2_OFST) -#define EMPTY684REG (0x684) +#define TRANSCEIVERALIGNCNT_REG3 (0xC140) -#define EMPTY688REG (0x688) +#define RXALIGNCNTCH3_OFST (0) +#define RXALIGNCNTCH3_MSK (0x0000ffff << RXALIGNCNTCH3_OFST) -#define EMPTY68CREG (0x68C) +#define TRANSCEIVERLASTWORD_REG0 (0xC144) -#define EMPTY690REG (0x690) +#define RXDATACH0_OFST (0) +#define RXDATACH0_MSK (0x0000ffff << RXDATACH0_OFST) -#define EMPTY694REG (0x694) +#define TRANSCEIVERLASTWORD_REG1 (0xC148) -#define EMPTY698REG (0x698) +#define RXDATACH1_OFST (0) +#define RXDATACH1_MSK (0x0000ffff << RXDATACH1_OFST) -#define EMPTY69CREG (0x69C) +#define TRANSCEIVERLASTWORD_REG2 (0xC14C) -#define EMPTY6A0REG (0x6A0) +#define RXDATACH2_OFST (0) +#define RXDATACH2_MSK (0x0000ffff << RXDATACH2_OFST) -#define EMPTY6A4REG (0x6A4) +#define TRANSCEIVERLASTWORD_REG3 (0xC150) -#define EMPTY6A8REG (0x6A8) +#define RXDATACH3_OFST (0) +#define RXDATACH3_MSK (0x0000ffff << RXDATACH3_OFST) -#define EMPTY6ACREG (0x6AC) -#define EMPTY6B0REG (0x6B0) +// ---------------------------------------------------- +// TODO: fix these in the firmware reg generator: +// ----------------------------------------------------: -#define EMPTY6B4REG (0x6B4) +#define DELAY_OUT_REG_1 (0xB054) +#define DELAY_OUT_REG_2 (0xB058) +#define CYCLES_OUT_REG_1 (0xB05C) +#define CYCLES_OUT_REG_2 (0xB060) +#define FRAMES_OUT_REG_1 (0xB064) +#define FRAMES_OUT_REG_2 (0xB068) +#define PERIOD_OUT_REG_1 (0xB06C) +#define PERIOD_OUT_REG_2 (0xB070) -#define EMPTY6B8REG (0x6B8) - -#define EMPTY6BCREG (0x6BC) - -#define EMPTY6C0REG (0x6C0) - -#define EMPTY6C4REG (0x6C4) - -#define EMPTY6C8REG (0x6C8) - -#define EMPTY6CCREG (0x6CC) - -#define EMPTY6D0REG (0x6D0) - -#define EMPTY6D4REG (0x6D4) - -#define EMPTY6D8REG (0x6D8) - -#define EMPTY6DCREG (0x6DC) - -#define EMPTY6E0REG (0x6E0) - -#define EMPTY6E4REG (0x6E4) - -#define EMPTY6E8REG (0x6E8) - -#define EMPTY6ECREG (0x6EC) - -#define EMPTY6F0REG (0x6F0) - -#define EMPTY6F4REG (0x6F4) - -#define EMPTY6F8REG (0x6F8) - -#define EMPTY6FCREG (0x6FC) - -#define DBITFIFOCTRLREG (0x700) - -#define DBITRD_OFST (0) -#define DBITRD_MSK (0x00000001 << DBITRD_OFST) -#define DBITRST_OFST (1) -#define DBITRST_MSK (0x00000001 << DBITRST_OFST) -#define DBITFULL_OFST (2) -#define DBITFULL_MSK (0x00000001 << DBITFULL_OFST) -#define DBITEMPTY_OFST (3) -#define DBITEMPTY_MSK (0x00000001 << DBITEMPTY_OFST) -#define DBITUNDERFLOW_OFST (4) -#define DBITUNDERFLOW_MSK (0x00000001 << DBITUNDERFLOW_OFST) -#define DBITOVERFLOW_OFST (5) -#define DBITOVERFLOW_MSK (0x00000001 << DBITOVERFLOW_OFST) - -#define EMPTYREG (0x704) - -#define DBITFIFODATAREG1 (0x708) - -#define DBITFIFODATAREG2 (0x70C) - -#define EMPTY710REG (0x710) - -#define EMPTY714REG (0x714) - -#define EMPTY718REG (0x718) - -#define EMPTY71CREG (0x71C) - -#define EMPTY720REG (0x720) +// clang-format on diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer index 6a6494d3c..d28cb6db7 100755 Binary files a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer and b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer differ diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/chip_config_xilinx.txt b/slsDetectorServers/xilinx_ctbDetectorServer/chip_config_xilinx.txt new file mode 100644 index 000000000..3f48ea84c --- /dev/null +++ b/slsDetectorServers/xilinx_ctbDetectorServer/chip_config_xilinx.txt @@ -0,0 +1,24 @@ +# Prepare MH02 configuration +reg 0xC00C 0x00000041 +reg 0xC010 0x01200004 + +# configure Matterhorn SPI +setbit 0xC014 0 + +# wait till config is done +pollbit 0xC014 3 0 + +# reset transceiver +reg 0xC120 0x0 +reg 0xC120 0x1 +reg 0xC120 0x0 + +# set MSB LSB inversions and polarity for transceiver +reg 0xC120 0x61e0 + +# Enable MH02 PLL clock +pattern enable_clock_pattern.pyat +# start the flow +setbit 0xB030 0 +clearbit 0xB030 0 +sleep 1 diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/enable_clock_pattern.pyat b/slsDetectorServers/xilinx_ctbDetectorServer/enable_clock_pattern.pyat new file mode 100644 index 000000000..debfbbd27 --- /dev/null +++ b/slsDetectorServers/xilinx_ctbDetectorServer/enable_clock_pattern.pyat @@ -0,0 +1,8 @@ +patword 0x0000 0x0000000000000000 +patword 0x0001 0x0000000000008000 +patword 0x0002 0x0000000000008000 +patword 0x0003 0x0000000000008000 +patword 0x0004 0x0000000000008000 +patword 0x0005 0x0000000000008000 +patioctrl 0x01b3ffff +patlimits 0x0000 0x0005 diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/readout_pattern.pyat b/slsDetectorServers/xilinx_ctbDetectorServer/readout_pattern.pyat new file mode 100644 index 000000000..fb5520142 --- /dev/null +++ b/slsDetectorServers/xilinx_ctbDetectorServer/readout_pattern.pyat @@ -0,0 +1,22 @@ +patword 0x0000 0x0000000000008000 +patword 0x0001 0x0000000000008000 +patword 0x0002 0x0000000000008000 +patword 0x0003 0x0000000000008000 +patword 0x0004 0x0000000000008000 +patword 0x0005 0x0000000000008000 +patword 0x0006 0x0000000000008000 +patword 0x0007 0x0000000000008000 +patword 0x0008 0x0000000000008000 +patword 0x0009 0x0000000000008000 +patword 0x000a 0x0000000000008000 +patword 0x000b 0x0000000000108000 +patword 0x000c 0x0000000000108000 +patword 0x000d 0x0000000000108000 +patword 0x000e 0x0000000000108000 +patword 0x000f 0x0000000000008000 +patword 0x0010 0x0000000000008000 +patword 0x0011 0x0000000000008000 +patword 0x0012 0x0000000000008000 +patword 0x0013 0x0000000000008000 +patioctrl 0x01b3ffff +patlimits 0x0000 0x0013 \ No newline at end of file diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/reset_chip_xilinx.txt b/slsDetectorServers/xilinx_ctbDetectorServer/reset_chip_xilinx.txt new file mode 100644 index 000000000..d79f3e9da --- /dev/null +++ b/slsDetectorServers/xilinx_ctbDetectorServer/reset_chip_xilinx.txt @@ -0,0 +1,40 @@ + +# turn off clock +setbit 0xC00C 16 +setbit 0xC014 0 +sleep 1 + +# reset Matterhorn periphery +setbit 0xC014 1 +sleep 1 + +# turn on clock +clearbit 0xC00C 16 +setbit 0xC014 0 +sleep 1 + +# reset rx transceiver datapath +setbit 0xC120 4 +sleep 1 + +# reset 8b10b counters +setbit 0xC120 9 +setbit 0xC120 10 +setbit 0xC120 11 +setbit 0xC120 12 +sleep 1 +clearbit 0xC120 9 +clearbit 0xC120 10 + +# reset buffer fifos +reg 0x9024 0xFFFFFFFF +reg 0x9028 0xFFFFFFFF +reg 0x902C 0xFFFFFFFF +reg 0x9024 0x0 +reg 0x9028 0x0 +reg 0x902C 0x0 +setbit 0xA000 18 + +# load default pattern +pattern readout_pattern.pyat + diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c index 142063da0..992d11f18 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c @@ -9,6 +9,7 @@ #include "sls/versionAPI.h" #include "LTC2620_Driver.h" +#include "XILINX_PLL.h" #include "loadPattern.h" #ifdef VIRTUAL @@ -39,6 +40,7 @@ char initErrorMessage[MAX_STR_LENGTH]; int detPos[2] = {0, 0}; +uint32_t clkFrequency[NUM_CLOCKS] = {}; int chipConfigured = 0; int analogEnable = 0; int digitalEnable = 0; @@ -373,6 +375,10 @@ void setupDetector() { LOG(logINFO, ("Setting up Server for 1 Xilinx Chip Test Board\n")); // default variables + clkFrequency[RUN_CLK] = DEFAULT_RUN_CLK; + clkFrequency[ADC_CLK] = DEFAULT_ADC_CLK; + clkFrequency[SYNC_CLK] = DEFAULT_SYNC_CLK; + clkFrequency[DBIT_CLK] = DEFAULT_DBIT_CLK; chipConfigured = 0; analogEnable = 0; digitalEnable = 0; @@ -434,14 +440,18 @@ void cleanFifos() { #ifdef VIRTUAL return; #endif + uint32_t t_enable_mask = getTransceiverEnableMask(); + uint32_t tclean_msk = + ((t_enable_mask << X_FIFO_CLEAN_OFST) & X_FIFO_CLEAN_MSK); + uint32_t t_before_reg = bus_r(X_FIFO_CLEAN_REG); LOG(logINFO, ("Clearing Acquisition Fifos\n")); bus_w(A_FIFO_CLEAN_REG, bus_r(A_FIFO_CLEAN_REG) | BIT32_MSK); bus_w(D_FIFO_CLEAN_REG, bus_r(D_FIFO_CLEAN_REG) | D_FIFO_CLEAN_MSK); - bus_w(X_FIFO_CLEAN_REG, bus_r(X_FIFO_CLEAN_REG) | X_FIFO_CLEAN_MSK); + bus_w(X_FIFO_CLEAN_REG, t_before_reg | tclean_msk); bus_w(A_FIFO_CLEAN_REG, 0); bus_w(D_FIFO_CLEAN_REG, bus_r(D_FIFO_CLEAN_REG) & ~D_FIFO_CLEAN_MSK); - bus_w(X_FIFO_CLEAN_REG, bus_r(X_FIFO_CLEAN_REG) & ~X_FIFO_CLEAN_MSK); + bus_w(X_FIFO_CLEAN_REG, t_before_reg); } void resetFlow() { @@ -492,7 +502,19 @@ void setTransceiverAlignment(int align) { #endif int isTransceiverAligned() { - return (bus_r(TRANSCEIVERSTATUS) & RXBYTEISALIGNED_MSK); +#ifdef VIRTUAL + return 1; +#endif + int times = 0; + int retval = bus_r(TRANSCEIVERSTATUS2) & RXLOCKED_MSK; + while (retval) { + retval = bus_r(TRANSCEIVERSTATUS2) & RXLOCKED_MSK; + times++; + usleep(10); + if (times == 5) + return 1; + } + return retval; } int waitTransceiverAligned(char *mess) { @@ -511,7 +533,9 @@ int waitTransceiverAligned(char *mess) { int times = 0; while (transceiverWordAligned == 0) { if (times++ > WAIT_TIME_OUT_0US_TIMES) { - sprintf(mess, "Transceiver alignment timed out\n"); + sprintf(mess, "Transceiver alignment timed out. Check connection, " + "p-n inversions, LSB-MSB inversions, link error " + "counters and channel enable settings\n"); LOG(logERROR, (mess)); return FAIL; } @@ -587,34 +611,197 @@ int getPowerChip() { int configureChip(char *mess) { LOG(logINFOBLUE, ("\tConfiguring chip\n")); - - // enable correct endianness (Only for MH_PR_2) - // uint32_t addr = MATTERHORNSPIREG1; - // bus_w(addr, bus_r(addr) &~MATTERHORNSPI1_MSK); - // bus_w(addr, bus_r(addr) | ((0x40000 << MATTERHORNSPI1_OFST) & - // MATTERHORNSPI1_MSK)); - - // start configuration - uint32_t addr = MATTERHORNSPICTRL; - bus_w(addr, bus_r(addr) | CONFIGSTART_P_MSK); - bus_w(addr, bus_r(addr) & ~CONFIGSTART_P_MSK); - - // wait until configuration is done -#ifndef VIRTUAL - int configDone = (bus_r(MATTERHORNSPICTRL) & BUSY_MSK); - int times = 0; - while (configDone == 0) { - if (times++ > WAIT_TIME_OUT_0US_TIMES) { - sprintf(mess, "Configuration of chip timed out\n"); - LOG(logERROR, (mess)); - return FAIL; - } - usleep(0); - configDone = (bus_r(MATTERHORNSPICTRL) & BUSY_MSK); + chipConfigured = 0; + if (readConfigFile(mess, CONFIG_CHIP_FILE, "chip config") == FAIL) { + return FAIL; } -#endif + if (readConfigFile(mess, RESET_CHIP_FILE, "reset chip") == FAIL) { + return FAIL; + } + LOG(logINFOBLUE, ("Chip configured.\n")); chipConfigured = 1; - LOG(logINFOBLUE, ("\tChip configured\n")); + return OK; +} + +int readConfigFile(char *mess, char *fileName, char *fileType) { + const int fileNameSize = 128; + char fname[fileNameSize]; + if (getAbsPath(fname, fileNameSize, fileName) == FAIL) { + sprintf(mess, "Could not get full path for %s file [%s].\n", fileType, + fname); + LOG(logERROR, (mess)); + return FAIL; + } + if (access(fname, F_OK) != 0) { + sprintf(mess, "Could not find %s file [%s].\n", fileType, fname); + LOG(logERROR, (mess)); + return FAIL; + } + FILE *fd = fopen(fname, "r"); + if (fd == NULL) { + sprintf(mess, "Could not open on-board detector server %s file [%s].\n", + fileType, fname); + LOG(logERROR, (mess)); + return FAIL; + } + LOG(logINFOBLUE, ("Reading %s file %s\n", fileType, fname)); + + const size_t LZ = 256; + char line[LZ]; + memset(line, 0, LZ); + char command[LZ]; + + // keep reading a line + while (fgets(line, LZ, fd)) { + + // ignore comments + if (line[0] == '#') { + LOG(logDEBUG1, ("Ignoring Comment\n")); + continue; + } + + // ignore empty lines + if (strlen(line) <= 1) { + LOG(logDEBUG1, ("Ignoring Empty line\n")); + continue; + } + + // removing leading spaces + if (line[0] == ' ' || line[0] == '\t') { + int len = strlen(line); + // find first valid character + int i = 0; + for (i = 0; i < len; ++i) { + if (line[i] != ' ' && line[i] != '\t') { + break; + } + } + // ignore the line full of spaces (last char \n) + if (i >= len - 1) { + LOG(logDEBUG1, ("Ignoring line full of spaces\n")); + continue; + } + // copying only valid char + char temp[LZ]; + memset(temp, 0, LZ); + memcpy(temp, line + i, strlen(line) - i); + memset(line, 0, LZ); + memcpy(line, temp, strlen(temp)); + LOG(logDEBUG1, ("Removing leading spaces.\n")); + } + + LOG(logDEBUG1, ("Command to process: (size:%d) %.*s\n", strlen(line), + strlen(line) - 1, line)); + memset(command, 0, LZ); + + // reg command + if (!strncmp(line, "reg", strlen("reg"))) { + uint32_t addr = 0; + uint32_t val = 0; + if (sscanf(line, "%s %x %x", command, &addr, &val) != 3) { + sprintf(mess, "Could not scan reg command. Line:[%s].\n", line); + LOG(logERROR, (mess)); + return FAIL; + } + bus_w(addr, val); + LOG(logINFOBLUE, ("Wrote 0x%x to 0x%x\n", val, addr)); + } + + // setbit command + else if (!strncmp(line, "setbit", strlen("setbit"))) { + uint32_t addr = 0; + uint32_t bit = 0; + if (sscanf(line, "%s %x %d", command, &addr, &bit) != 3) { + sprintf(mess, "Could not scan setbit command. Line:[%s].\n", + line); + LOG(logERROR, (mess)); + return FAIL; + } + bus_w(addr, bus_r(addr) | (1 << bit)); + LOG(logINFOBLUE, ("Set bit %d in 0x%x\n", bit, addr)); + } + + // clearbit command + else if (!strncmp(line, "clearbit", strlen("clearbit"))) { + uint32_t addr = 0; + uint32_t bit = 0; + if (sscanf(line, "%s %x %d", command, &addr, &bit) != 3) { + sprintf(mess, "Could not scan clearbit command. Line:[%s].\n", + line); + LOG(logERROR, (mess)); + return FAIL; + } + bus_w(addr, bus_r(addr) & ~(1 << bit)); + LOG(logINFOBLUE, ("Cleared bit %d in 0x%x\n", bit, addr)); + } + + // pollbit command + else if (!strncmp(line, "pollbit", strlen("pollbit"))) { + uint32_t addr = 0; + uint32_t bit = 0; + uint32_t val = 0; + if (sscanf(line, "%s %x %d %d", command, &addr, &bit, &val) != 4) { + sprintf(mess, "Could not scan pollbit command. Line:[%s].\n", + line); + LOG(logERROR, (mess)); + return FAIL; + } +#ifndef VIRTUAL + int times = 0; + while (((bus_r(addr) >> bit) & 0x1) != val) { + if (times++ > WAIT_TIME_OUT_0US_TIMES) { + sprintf(mess, "Polling bit %d in 0x%x timed out\n", bit, + addr); + LOG(logERROR, (mess)); + return FAIL; + } + usleep(0); + } +#endif + LOG(logINFOBLUE, ("Polled bit %d in 0x%x\n", bit, addr)); + } + + // pattern command + else if (!strncmp(line, "pattern", strlen("pattern"))) { + // take a file name and call loadPatterFile + char patternFileName[LZ]; + if (sscanf(line, "%s %s", command, patternFileName) != 2) { + sprintf(mess, "Could not scan pattern command. Line:[%s].\n", + line); + LOG(logERROR, (mess)); + return FAIL; + } + if (loadPatternFile(patternFileName, mess) == FAIL) { + return FAIL; + } + LOG(logINFOBLUE, ("loaded pattern [%s].\n", patternFileName)); + } + + // sleep command + else if (!strncmp(line, "sleep", strlen("sleep"))) { + int time = 0; + if (sscanf(line, "%s %d", command, &time) != 2) { + sprintf(mess, "Could not scan sleep command. Line:[%s].\n", + line); + LOG(logERROR, (mess)); + return FAIL; + } + usleep(time * 1000 * 1000); + LOG(logINFOBLUE, ("Slept for %d s\n", time)); + } + + // other commands + else { + sprintf(mess, + "Could not scan command from on-board server " + "%s file. Line:[%s].\n", + fileType, line); + break; + } + memset(line, 0, LZ); + } + fclose(fd); + LOG(logINFOBLUE, ("Successfully read %s file.\n", fileType)); return OK; } @@ -863,24 +1050,17 @@ int getNumTransceiverSamples() { } int setExpTime(int64_t val) { - if (val < 0) { - LOG(logERROR, ("Invalid exptime: %lld ns\n", (long long int)val)); - return FAIL; - } - LOG(logINFO, ("Setting exptime %lld ns\n", (long long int)val)); - val *= (1E-3 * RUN_CLK); - setPatternWaitTime(0, val); + setPatternWaitInterval(0, val); // validate for tolerance int64_t retval = getExpTime(); - val /= (1E-3 * RUN_CLK); if (val != retval) { return FAIL; } return OK; } -int64_t getExpTime() { return getPatternWaitTime(0) / (1E-3 * RUN_CLK); } +int64_t getExpTime() { return getPatternWaitInterval(0); } int setPeriod(int64_t val) { if (val < 0) { @@ -888,12 +1068,12 @@ int setPeriod(int64_t val) { return FAIL; } LOG(logINFO, ("Setting period %lld ns\n", (long long int)val)); - val *= (1E-3 * RUN_CLK); + val *= (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); setU64BitReg(val, PERIOD_IN_REG_1, PERIOD_IN_REG_2); // validate for tolerance int64_t retval = getPeriod(); - val /= (1E-3 * RUN_CLK); + val /= (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); if (val != retval) { return FAIL; } @@ -901,7 +1081,8 @@ int setPeriod(int64_t val) { } int64_t getPeriod() { - return getU64BitReg(PERIOD_IN_REG_1, PERIOD_IN_REG_2) / (1E-3 * RUN_CLK); + return getU64BitReg(PERIOD_IN_REG_1, PERIOD_IN_REG_2) / + (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); } int setDelayAfterTrigger(int64_t val) { @@ -910,12 +1091,12 @@ int setDelayAfterTrigger(int64_t val) { return FAIL; } LOG(logINFO, ("Setting delay after trigger %ld ns\n", val)); - val *= (1E-3 * RUN_CLK); + val *= (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); setU64BitReg(val, DELAY_IN_REG_1, DELAY_IN_REG_2); // validate for tolerance int64_t retval = getDelayAfterTrigger(); - val /= (1E-3 * RUN_CLK); + val /= (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); if (val != retval) { return FAIL; } @@ -923,7 +1104,8 @@ int setDelayAfterTrigger(int64_t val) { } int64_t getDelayAfterTrigger() { - return getU64BitReg(DELAY_IN_REG_1, DELAY_IN_REG_2) / (1E-3 * RUN_CLK); + return getU64BitReg(DELAY_IN_REG_1, DELAY_IN_REG_2) / + (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); } int64_t getNumFramesLeft() { @@ -935,11 +1117,13 @@ int64_t getNumTriggersLeft() { } int64_t getDelayAfterTriggerLeft() { - return getU64BitReg(DELAY_OUT_REG_1, DELAY_OUT_REG_2) / (1E-3 * RUN_CLK); + return getU64BitReg(DELAY_OUT_REG_1, DELAY_OUT_REG_2) / + (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); } int64_t getPeriodLeft() { - return getU64BitReg(PERIOD_OUT_REG_1, PERIOD_OUT_REG_2) / (1E-3 * RUN_CLK); + return getU64BitReg(PERIOD_OUT_REG_1, PERIOD_OUT_REG_2) / + (NS_TO_CLK_CYCLE * clkFrequency[RUN_CLK]); } int64_t getFramesFromStart() { @@ -949,12 +1133,12 @@ int64_t getFramesFromStart() { int64_t getActualTime() { return getU64BitReg(TIME_FROM_START_OUT_REG_1, TIME_FROM_START_OUT_REG_2) / - (1E-3 * TICK_CLK); + (NS_TO_CLK_CYCLE * clkFrequency[SYNC_CLK]); } int64_t getMeasurementTime() { return getU64BitReg(FRAME_TIME_OUT_REG_1, FRAME_TIME_OUT_REG_2) / - (1E-3 * TICK_CLK); + (NS_TO_CLK_CYCLE * clkFrequency[SYNC_CLK]); } /* parameters - dac, adc, hv */ @@ -1021,6 +1205,26 @@ void setVLimit(int l) { vLimit = l; } +int getBitOffsetFromDACIndex(enum DACINDEX ind) { + switch (ind) { + case D_PWR_IO: + return POWER_VIO_OFST; + case D_PWR_A: + return POWER_VCC_A_OFST; + case D_PWR_B: + return POWER_VCC_B_OFST; + case D_PWR_C: + return POWER_VCC_C_OFST; + case D_PWR_D: + return POWER_VCC_D_OFST; + default: + LOG(logERROR, + ("DAC index %d is not defined to get offset in ctrl register\n", + ind)); + return -1; + } +} + int isPowerValid(enum DACINDEX ind, int val) { char *powerNames[] = {PWR_NAMES}; int pwrIndex = (int)(ind - D_PWR_D); @@ -1043,10 +1247,23 @@ int isPowerValid(enum DACINDEX ind, int val) { } int getPower(enum DACINDEX ind) { + // get bit offset in ctrl register + int bitOffset = getBitOffsetFromDACIndex(ind); + if (bitOffset == -1) { + return -1; + } + + // powered enable off + { + uint32_t addr = CTRL_REG; + uint32_t mask = (1 << bitOffset); + if (!(bus_r(addr) & mask)) + return 0; + } + char *powerNames[] = {PWR_NAMES}; int pwrIndex = (int)(ind - D_PWR_D); - // check dac value // not set yet if (dacValues[ind] == -1) { LOG(logERROR, @@ -1056,7 +1273,8 @@ int getPower(enum DACINDEX ind) { // dac powered off if (dacValues[ind] == LTC2620_D_GetPowerDownValue()) { - LOG(logWARNING, ("Power V%s powered down\n", powerNames[pwrIndex])); + LOG(logWARNING, ("Power V%s enabled, but voltage is at minimum or 0.\n", + powerNames[pwrIndex])); return LTC2620_D_GetPowerDownValue(); } @@ -1070,26 +1288,43 @@ int getPower(enum DACINDEX ind) { } void setPower(enum DACINDEX ind, int val) { + // validate index and get bit offset in ctrl register + int bitOffset = getBitOffsetFromDACIndex(ind); + if (bitOffset == -1) { + return; + } + uint32_t addr = CTRL_REG; + uint32_t mask = (1 << bitOffset); + + if (val == -1) + return; + char *powerNames[] = {PWR_NAMES}; int pwrIndex = (int)(ind - D_PWR_D); + LOG(logINFO, ("Setting Power V%s to %d mV\n", powerNames[pwrIndex], val)); - // power down dac - if (val == LTC2620_D_GetPowerDownValue()) { - LOG(logINFO, ("\tPowering down V%d\n", powerNames[pwrIndex])); - setDAC(ind, LTC2620_D_GetPowerDownValue(), 0); + // validate value (already checked at tcp (funcs.c)) + if (!isPowerValid(ind, val)) { + LOG(logERROR, ("Invalid power value for V%s: %d mV\n", + powerNames[pwrIndex], val)); + return; } - // set dac - else if (val >= 0) { - LOG(logINFO, - ("Setting Power V%s to %d mV\n", powerNames[pwrIndex], val)); + // Switch off power enable + LOG(logDEBUG1, ("Switching off power enable\n")); + bus_w(addr, bus_r(addr) & ~(mask)); - // validate value (already checked at tcp (funcs.c)) - if (!isPowerValid(ind, val)) { - return; - } + // power down dac + LOG(logINFO, ("\tPowering down V%d\n", powerNames[pwrIndex])); + setDAC(ind, LTC2620_D_GetPowerDownValue(), 0); + + //(power off is anyway done with power enable) + if (val == 0) + val = LTC2620_D_GetPowerDownValue(); + + // convert voltage to dac (power off is anyway done with power enable) + if (val != LTC2620_D_GetPowerDownValue()) { - // convert voltage to dac int dacval = -1; if (ConvertToDifferentRange( POWER_RGLTR_MIN, POWER_RGLTR_MAX, LTC2620_D_GetMaxInput(), @@ -1106,6 +1341,12 @@ void setPower(enum DACINDEX ind, int val) { LOG(logINFO, ("Setting Power V%s: %d mV (%d dac)\n", powerNames[pwrIndex], val, dacval)); setDAC(ind, dacval, 0); + + // if valid, enable power + if (dacval >= 0) { + LOG(logDEBUG1, ("Switching on power enable\n")); + bus_w(addr, bus_r(addr) | mask); + } } } @@ -1329,36 +1570,19 @@ int startStateMachine() { LOG(logERROR, ("Could not start Virtual acquisition thread\n")); sharedMemory_setStatus(IDLE); return FAIL; - } + } else + pthread_detach(pthread_virtual_tid); LOG(logINFOGREEN, ("Virtual Acquisition started\n")); return OK; #endif - LOG(logINFOBLUE, ("Starting State Machine\n")); - // cleanFifos(); removing this for now as its done before readout pattern + LOG(logINFOBLUE, ("Starting readout\n")); - // start state machine - bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) | START_F_MSK); - - LOG(logINFORED, ("Waiting for exposing to be done\n")); - int exposingDone = (bus_r(FLOW_STATUS_REG) & RSM_BUSY_MSK); - while (exposingDone != 0) { - usleep(0); - exposingDone = (bus_r(FLOW_STATUS_REG) & RSM_BUSY_MSK); - } - - LOG(logINFORED, ("Starting readout of chip to fifo\n")); + // MM:readout via pattern does not work right now due to firmware bug, + // readout via MatterhornCTRL for the moment + // bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) | START_F_MSK); bus_w(MATTERHORNSPICTRL, bus_r(MATTERHORNSPICTRL) | STARTREAD_P_MSK); - LOG(logINFORED, ("Waiting until k-words or end of acquisition\n")); - usleep(0); - int commaDet = (bus_r(TRANSCEIVERSTATUS) & RXCOMMADET_MSK); - while (commaDet == 0) { - usleep(0); - commaDet = (bus_r(TRANSCEIVERSTATUS) & RXCOMMADET_MSK); - } - LOG(logINFORED, ("Kwords or end of acquisition detected\n")); - return OK; } @@ -1384,8 +1608,12 @@ void *start_timer(void *arg) { packetSize, packetsPerFrame)); // Generate Data - char imageData[imageSize]; + char *imageData = (char *)malloc(imageSize); memset(imageData, 0, imageSize); + if (imageData == NULL) { + LOG(logERROR, ("Can not allocate image.\n")); + return NULL; + } for (int i = 0; i < imageSize; i += sizeof(uint16_t)) { *((uint16_t *)(imageData + i)) = i; } @@ -1408,6 +1636,7 @@ void *start_timer(void *arg) { usleep(expUs); int srcOffset = 0; + int dataSent = 0; // loop packet for (int i = 0; i != packetsPerFrame; ++i) { @@ -1424,10 +1653,12 @@ void *start_timer(void *arg) { header->column = detPos[X]; // fill data + int remaining = imageSize - dataSent; + int dataSize = remaining < maxDataSize ? remaining : maxDataSize; memcpy(packetData + sizeof(sls_detector_header), - imageData + srcOffset, - (imageSize < maxDataSize ? imageSize : maxDataSize)); - srcOffset += maxDataSize; + imageData + srcOffset, dataSize); + srcOffset += dataSize; + dataSent += dataSize; sendUDPPacket(0, 0, packetData, packetSize); } @@ -1469,57 +1700,7 @@ int stopStateMachine() { #endif // stop state machine bus_w(FLOW_CONTROL_REG, bus_r(FLOW_CONTROL_REG) | STOP_F_MSK); - - return OK; -} - -int startReadOut() { - LOG(logINFOBLUE, ("Starting Readout\n")); -#ifdef VIRTUAL - // cannot set #frames and exptiem temporarily to 1 and 0, - // because have to set it back after readout (but this is non blocking) - return startStateMachine(); -#endif - // check if data in fifo - int ret = FAIL; - if (transceiverEnable) { - if ((bus_r(X_FIFO_EMPTY_STATUS_REG) & X_FIFO_EMPTY_STATUS_MSK) != - X_FIFO_EMPTY_STATUS_MSK) { - LOG(logINFO, ("Data in transceiver fifo\n")); - ret = OK; - } - } - if (analogEnable) { - if (bus_r(A_FIFO_EMPTY_STATUS_REG) != BIT32_MSK) { - LOG(logINFO, ("Data in analog fifo\n")); - ret = OK; - } - } - if (digitalEnable) { - if ((bus_r(D_FIFO_EMPTY_STATUS_REG) & D_FIFO_EMPTY_STATUS_MSK) != - D_FIFO_EMPTY_STATUS_MSK) { - LOG(logINFO, ("Data in digital fifo\n")); - ret = OK; - } - } - // if no module, dont check fifo empty - if (checkModuleFlag && ret == FAIL) { - LOG(logERROR, ("No data in fifo\n")); - return FAIL; - } - - LOG(logINFOBLUE, ("Streaming data from fifo\n")); - bus_w(FIFO_TO_GB_CONTROL_REG, - bus_r(FIFO_TO_GB_CONTROL_REG) | START_STREAMING_P_MSK); - - // wait until streaming is done (not same as fifo empty) - int streamingBusy = (bus_r(STATUSREG1) & TRANSMISSIONBUSY_MSK); - while (streamingBusy != 0) { - usleep(0); - streamingBusy = (bus_r(STATUSREG1) & TRANSMISSIONBUSY_MSK); - } - LOG(logINFORED, ("Streaming done\n")); - + cleanFifos(); return OK; } @@ -1558,36 +1739,33 @@ enum runStatus getRunStatus() { LOG(logINFOBLUE, ("Status: IDLE\n")); return IDLE; #endif - uint32_t retval = bus_r(FLOW_STATUS_REG); - LOG(logINFO, ("Flow Status Register: %08x\n", retval)); + uint32_t retval = bus_r(STATUS_REG); + LOG(logINFO, ("Status Register: %08x\n", retval)); - if (retval & RSM_TRG_WAIT_MSK) { - LOG(logINFOBLUE, ("Status: WAITING\n")); - return WAITING; - } else if (retval & RSM_BUSY_MSK) { - LOG(logINFOBLUE, ("Status: RUNNING (exposing)\n")); - return RUNNING; - } else if (bus_r(MATTERHORNSPICTRL) & READOUTFROMASIC_MSK) { - LOG(logINFOBLUE, ("Status: RUNNING (data from chip to fifo)\n")); - return RUNNING; - } else if (bus_r(STATUSREG1) & TRANSMISSIONBUSY_MSK) { - LOG(logINFOBLUE, ("Status: TRANSMITTING\n")); - return TRANSMITTING; + if (retval == 0x0) { + return IDLE; } - LOG(logINFOBLUE, ("Status: IDLE\n")); - return IDLE; - // TODO: STOPPED, ERROR? + if (retval & RX_NOT_GOOD_MSK) { + LOG(logINFOBLUE, ("Status: ERROR\n")); + return ERROR; + } + + if (retval & WAIT_FOR_TRIGGER_MSK) { + LOG(logINFOBLUE, ("Status: WAITING\n")); + return WAITING; + } + + LOG(logINFOBLUE, ("Status: RUNNING\n")); + return RUNNING; + // TODO: STOPPED? } u_int32_t runBusy() { #ifdef VIRTUAL return ((sharedMemory_getStatus() == RUNNING) ? 1 : 0); #endif - uint32_t exposingBusy = bus_r(FLOW_STATUS_REG) & RSM_BUSY_MSK; - uint32_t fillingFifoBusy = bus_r(MATTERHORNSPICTRL) & READOUTFROMASIC_MSK; - uint32_t streamingBusy = bus_r(STATUSREG1) & TRANSMISSIONBUSY_MSK; - return (exposingBusy || fillingFifoBusy || streamingBusy); + return (bus_r(STATUS_REG)); } void waitForAcquisitionEnd() { @@ -1671,3 +1849,37 @@ void getNumberOfChannels(int *nchanx, int *nchany) { int getNumberOfChips() { return NCHIP; } int getNumberOfDACs() { return NDAC; } int getNumberOfChannelsPerChip() { return NCHAN; } + +int setFrequency(enum CLKINDEX ind, int val) { + if (ind < 0 || ind >= NUM_CLOCKS) { + LOG(logERROR, ("Unknown clock index %d to set frequency\n", ind)); + return FAIL; + } + if (val <= 0) { + return FAIL; + } + + char *clock_names[] = {CLK_NAMES}; + LOG(logINFO, ("\tSetting %s clock (%d) frequency to %d kHz\n", + clock_names[ind], ind, val)); + + if (XILINX_PLL_setFrequency(ind, val) == FAIL) { + LOG(logERROR, ("\tCould not set %s clock (%d) frequency to %d kHz\n", + clock_names[ind], ind, val)); + return FAIL; + } + clkFrequency[ind] = val; + // TODO later: connect setPhase as phase gets reset on freq change + return OK; +} + +int getFrequency(enum CLKINDEX ind) { + if (ind < 0 || ind >= NUM_CLOCKS) { + LOG(logERROR, ("Unknown clock index %d to get frequency\n", ind)); + return -1; + } +#ifndef VIRTUAL + clkFrequency[ind] = XILINX_PLL_getFrequency(ind); +#endif + return clkFrequency[ind]; +} \ No newline at end of file diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h index 54cb758de..71d415745 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorServer_defs.h @@ -4,7 +4,7 @@ #include "RegisterDefs.h" #include "sls/sls_detector_defs.h" -#define REQRD_FRMWRE_VRSN (0x230710) +#define REQRD_FRMWRE_VRSN (0x250203) #define KERNEL_DATE_VRSN "Wed Nov 29 17:32:14 CET 2023" #define LINKED_SERVER_NAME "xilinx_ctbDetectorServer" @@ -40,6 +40,9 @@ #define SLOWADC_DRIVER_FILE_NAME CURRENT_BOARD_LINKS_FOLDER "/ai%d" #define TEMP_DRIVER_FILE_NAME DEVICE_TREE_DST "0/in_temp7_input" +#define CONFIG_CHIP_FILE "chip_config_xilinx.txt" +#define RESET_CHIP_FILE "reset_chip_xilinx.txt" + /** Default Parameters */ #define DEFAULT_NUM_FRAMES (1) #define DEFAULT_NUM_CYCLES (1) @@ -68,12 +71,6 @@ #define POWER_RGLTR_MAX (2661) #define VIO_MIN_MV (1200) // for fpga to function -#define TICK_CLK (20) // MHz (trig_timeFromStart, frametime, timeFromStart) -#define RUN_CLK \ - (100) // MHz (framesFromStart, c_swTrigger, run, waitForTrigger, starting, - // acquiring, waitForPeriod, internalStop, c_framesFromSTart_reset, - // s_start, c_stop, triggerEnable, period, frames, cycles, delay) - /* Defines in the Firmware */ #define WAIT_TIME_PATTERN_READ (10) #define WAIT_TIME_OUT_0US_TIMES (35000) // 2s @@ -155,3 +152,12 @@ typedef struct udp_header_struct { #define IP_HEADER_SIZE (20) #define UDP_IP_HEADER_LENGTH_BYTES (28) + +enum CLKINDEX { RUN_CLK, ADC_CLK, SYNC_CLK, DBIT_CLK, NUM_CLOCKS }; +#define CLK_NAMES "run", "adc", "sync", "dbit" + +#define DEFAULT_RUN_CLK (20000) // 20 MHz +#define DEFAULT_ADC_CLK (100000) // 100 MHz +#define DEFAULT_SYNC_CLK (20000) // 20 MHz +#define DEFAULT_DBIT_CLK (100000) // 100 MHz +#define NS_TO_CLK_CYCLE (1E-6) // ns to kHz diff --git a/slsDetectorSoftware/CMakeLists.txt b/slsDetectorSoftware/CMakeLists.txt index e61084330..91173978b 100755 --- a/slsDetectorSoftware/CMakeLists.txt +++ b/slsDetectorSoftware/CMakeLists.txt @@ -29,7 +29,6 @@ target_link_libraries(slsDetectorObject slsProjectOptions slsSupportStatic pthread - rt PRIVATE slsProjectWarnings ) @@ -100,7 +99,6 @@ if(SLS_USE_TEXTCLIENT) target_link_libraries(${val1} slsDetectorStatic pthread - rt ) SET_SOURCE_FILES_PROPERTIES( src/Caller.cpp PROPERTIES COMPILE_FLAGS "-Wno-unused-variable -Wno-unused-but-set-variable") diff --git a/slsDetectorSoftware/generator/Caller.in.h b/slsDetectorSoftware/generator/Caller.in.h index fafe99edd..17ca1e3ef 100644 --- a/slsDetectorSoftware/generator/Caller.in.h +++ b/slsDetectorSoftware/generator/Caller.in.h @@ -1,5 +1,5 @@ // This file is used as input to generate the caller class - +#pragma once #include "CmdParser.h" #include "HelpDacs.h" #include "sls/Detector.h" @@ -19,11 +19,10 @@ class Caller { IpAddr getDstIpFromAuto(); IpAddr getSrcIpFromAuto(); UdpDestination getUdpEntry(); - void GetLevelAndUpdateArgIndex(int action, - std::string levelSeparatedCommand, - int &level, int &iArg, size_t nGetArgs, - size_t nPutArgs); + int GetLevelAndInsertIntoArgs(std::string levelSeparatedCommand); void WrongNumberOfParameters(size_t expected); + std::vector parseRoiVector(const std::string &input); + defs::ROI parseRoi(const std::vector &args); template std::string OutStringHex(const V &value) { if (value.equal()) diff --git a/slsDetectorSoftware/generator/autocomplete/autocomplete.py b/slsDetectorSoftware/generator/autocomplete/autocomplete.py index 513c2fa47..356e82eab 100644 --- a/slsDetectorSoftware/generator/autocomplete/autocomplete.py +++ b/slsDetectorSoftware/generator/autocomplete/autocomplete.py @@ -78,6 +78,9 @@ def get_literal(ifstmt): stringliteral = implicitCastExpr['inner'][0]['value'][1:-1] retstmt = get_object_by_kind(ifstmt['inner'], 'ReturnStmt') + if retstmt is None: + print(f"Error: No 'ReturnStmt' found in: {ifstmt['inner']}") + exit(1) declrefexpt = get_object_by_kind(retstmt['inner'], 'DeclRefExpr') enum_val = declrefexpt["referencedDecl"]["name"] diff --git a/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh b/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh index 2da4347ed..5fe099a7d 100644 --- a/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh +++ b/slsDetectorSoftware/generator/autocomplete/bash_autocomplete.sh @@ -80,7 +80,7 @@ _sd() { local IS_PATH=0 -local SLS_COMMANDS=" acquire activate adcclk adcenable adcenable10g adcindex adcinvert adclist adcname adcphase adcpipeline adcreg adcvpp apulse asamples autocompdisable badchannels blockingtrigger burstmode burstperiod bursts burstsl bustest cdsgain chipversion clearbit clearbusy clearroi clientversion clkdiv clkfreq clkphase collectionmode column compdisabletime confadc config configtransceiver counters currentsource dac dacindex daclist dacname dacvalues datastream dbitclk dbitphase dbitpipeline defaultdac defaultpattern delay delayl detectorserverversion detsize diodelay dpulse dr drlist dsamples execcommand exptime exptime1 exptime2 exptime3 exptimel extrastoragecells extsampling extsamplingsrc extsig fformat filtercells filterresistor findex firmwaretest firmwareversion fliprows flowcontrol10g fmaster fname foverwrite fpath framecounter frames framesl frametime free fwrite gaincaps gainmode gappixels gatedelay gatedelay1 gatedelay2 gatedelay3 gates getbit hardwareversion highvoltage hostname im_a im_b im_c im_d im_io imagetest initialchecks inj_ch interpolation interruptsubframe kernelversion lastclient led lock master maxadcphaseshift maxclkphaseshift maxdbitphaseshift measuredperiod measuredsubperiod moduleid nextframenumber nmod numinterfaces overflow packageversion parallel parameters partialreset patfname patioctrl patlimits patloop patloop0 patloop1 patloop2 patmask patnloop patnloop0 patnloop1 patnloop2 patsetbit patternX patternstart patwait patwait0 patwait1 patwait2 patwaittime patwaittime0 patwaittime1 patwaittime2 patword pedestalmode period periodl polarity port powerchip powerindex powerlist powername powervalues programfpga pulse pulsechip pulsenmove pumpprobe quad ratecorr readnrows readout readoutspeed readoutspeedlist rebootcontroller reg resetdacs resetfpga roi romode row runclk runtime rx_arping rx_clearroi rx_dbitlist rx_dbitoffset rx_discardpolicy rx_fifodepth rx_frameindex rx_framescaught rx_framesperfile rx_hostname rx_jsonaddheader rx_jsonpara rx_lastclient rx_lock rx_missingpackets rx_padding rx_printconfig rx_realudpsocksize rx_roi rx_silent rx_start rx_status rx_stop rx_tcpport rx_threads rx_udpsocksize rx_version rx_zmqfreq rx_zmqhwm rx_zmqip rx_zmqport rx_zmqstartfnum rx_zmqstream samples savepattern scan scanerrmsg selinterface serialnumber setbit settings settingslist settingspath signalindex signallist signalname sleep slowadc slowadcindex slowadclist slowadcname slowadcvalues start status stop stopport storagecell_delay storagecell_start subdeadtime subexptime sync syncclk temp_10ge temp_adc temp_control temp_dcdc temp_event temp_fpga temp_fpgaext temp_fpgafl temp_fpgafr temp_slowadc temp_sodl temp_sodr temp_threshold templist tempvalues tengiga threshold thresholdnotb timing timing_info_decoder timinglist timingsource top transceiverenable trigger triggers triggersl trimbits trimen trimval tsamples txdelay txdelay_frame txdelay_left txdelay_right type udp_cleardst udp_dstip udp_dstip2 udp_dstlist udp_dstmac udp_dstmac2 udp_dstport udp_dstport2 udp_firstdst udp_numdst udp_reconfigure udp_srcip udp_srcip2 udp_srcmac udp_srcmac2 udp_validate update updatedetectorserver updatekernel updatemode user v_a v_b v_c v_chip v_d v_io v_limit vchip_comp_adc vchip_comp_fe vchip_cs vchip_opa_1st vchip_opa_fd vchip_ref_comp_fe versions veto vetoalg vetofile vetophoton vetoref vetostream virtual vm_a vm_b vm_c vm_d vm_io zmqhwm zmqip zmqport " +local SLS_COMMANDS=" acquire activate adcclk adcenable adcenable10g adcindex adcinvert adclist adcname adcphase adcpipeline adcreg adcvpp apulse asamples autocompdisable badchannels blockingtrigger burstmode burstperiod bursts burstsl bustest cdsgain chipversion clearbit clearbusy clientversion clkdiv clkfreq clkphase collectionmode column compdisabletime confadc config configtransceiver counters currentsource dac dacindex daclist dacname dacvalues datastream dbitclk dbitphase dbitpipeline defaultdac defaultpattern delay delayl detectorserverversion detsize diodelay dpulse dr drlist dsamples execcommand exptime exptime1 exptime2 exptime3 extrastoragecells extsampling extsamplingsrc extsig fformat filtercells filterresistor findex firmwaretest firmwareversion fliprows flowcontrol10g fmaster fname foverwrite fpath framecounter frames framesl frametime free fwrite gaincaps gainmode gappixels gatedelay gatedelay1 gatedelay2 gatedelay3 gates getbit hardwareversion highvoltage hostname im_a im_b im_c im_d im_io imagetest initialchecks inj_ch interpolation interruptsubframe kernelversion lastclient led lock master maxadcphaseshift maxclkphaseshift maxdbitphaseshift measuredperiod measuredsubperiod moduleid nextframenumber nmod numinterfaces overflow packageversion parallel parameters partialreset patfname patioctrl patlimits patloop patloop0 patloop1 patloop2 patmask patnloop patnloop0 patnloop1 patnloop2 patsetbit pattern patternstart patwait patwait0 patwait1 patwait2 patwaittime patwaittime0 patwaittime1 patwaittime2 patword pedestalmode period periodl polarity port powerchip powerindex powerlist powername powervalues programfpga pulse pulsechip pulsenmove pumpprobe quad ratecorr readnrows readout readoutspeed readoutspeedlist rebootcontroller reg resetdacs resetfpga romode row runclk runtime rx_arping rx_clearroi rx_dbitlist rx_dbitoffset rx_dbitreorder rx_discardpolicy rx_fifodepth rx_frameindex rx_framescaught rx_framesperfile rx_hostname rx_jsonaddheader rx_jsonpara rx_lastclient rx_lock rx_missingpackets rx_padding rx_printconfig rx_realudpsocksize rx_roi rx_silent rx_start rx_status rx_stop rx_tcpport rx_threads rx_udpsocksize rx_version rx_zmqfreq rx_zmqhwm rx_zmqip rx_zmqport rx_zmqstartfnum rx_zmqstream samples savepattern scan scanerrmsg selinterface serialnumber setbit settings settingslist settingspath signalindex signallist signalname sleep slowadc slowadcindex slowadclist slowadcname slowadcvalues start status stop stopport storagecell_delay storagecell_start subdeadtime subexptime sync syncclk temp_10ge temp_adc temp_control temp_dcdc temp_event temp_fpga temp_fpgaext temp_fpgafl temp_fpgafr temp_slowadc temp_sodl temp_sodr temp_threshold templist tempvalues tengiga threshold thresholdnotb timing timing_info_decoder timinglist timingsource top transceiverenable trigger triggers triggersl trimbits trimen trimval tsamples txdelay txdelay_frame txdelay_left txdelay_right type udp_cleardst udp_dstip udp_dstip2 udp_dstlist udp_dstmac udp_dstmac2 udp_dstport udp_dstport2 udp_firstdst udp_numdst udp_reconfigure udp_srcip udp_srcip2 udp_srcmac udp_srcmac2 udp_validate update updatedetectorserver updatekernel updatemode user v_a v_b v_c v_chip v_d v_io v_limit vchip_comp_adc vchip_comp_fe vchip_cs vchip_opa_1st vchip_opa_fd vchip_ref_comp_fe versions veto vetoalg vetofile vetophoton vetoref vetostream virtual vm_a vm_b vm_c vm_d vm_io zmqhwm zmqip zmqport " __acquire() { FCN_RETURN="" return 0 @@ -351,10 +351,6 @@ fi fi return 0 } -__clearroi() { -FCN_RETURN="" -return 0 -} __clientversion() { FCN_RETURN="" return 0 @@ -861,20 +857,6 @@ fi fi return 0 } -__exptimel() { -FCN_RETURN="" -if [[ ${IS_GET} -eq 1 ]]; then -if [[ "${cword}" == "2" ]]; then -FCN_RETURN="ms ns s us" -fi -fi -if [[ ${IS_GET} -eq 0 ]]; then -if [[ "${cword}" == "2" ]]; then -FCN_RETURN="ms ns s us" -fi -fi -return 0 -} __extrastoragecells() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then @@ -1447,18 +1429,82 @@ return 0 } __patloop() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "4" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patloop0() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "4" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patloop1() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "4" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patloop2() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "4" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patmask() { @@ -1472,18 +1518,70 @@ return 0 } __patnloop() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patnloop0() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patnloop1() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patnloop2() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patsetbit() { @@ -1495,7 +1593,32 @@ fi fi return 0 } -__patternX() { +__pattern() { +FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +IS_PATH=1 +fi +fi +return 0 +} +__patternstart() { +FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +IS_PATH=1 +fi +fi +return 0 +} +__patwait() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then @@ -1506,32 +1629,61 @@ if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi fi return 0 } -__patternstart() { +__patwait0() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi fi -return 0 -} -__patwait() { +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then FCN_RETURN="" -return 0 -} -__patwait0() { +fi +if [[ "${cword}" == "3" ]]; then FCN_RETURN="" +fi +fi return 0 } __patwait1() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patwait2() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patwaittime() { @@ -1864,18 +2016,6 @@ fi fi return 0 } -__roi() { -FCN_RETURN="" -if [[ ${IS_GET} -eq 0 ]]; then -if [[ "${cword}" == "2" ]]; then -FCN_RETURN="" -fi -if [[ "${cword}" == "3" ]]; then -FCN_RETURN="" -fi -fi -return 0 -} __romode() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then @@ -1948,6 +2088,15 @@ fi fi return 0 } +__rx_dbitreorder() { +FCN_RETURN="" +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="0 1" +fi +fi +return 0 +} __rx_discardpolicy() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then @@ -2044,20 +2193,6 @@ return 0 } __rx_roi() { FCN_RETURN="" -if [[ ${IS_GET} -eq 0 ]]; then -if [[ "${cword}" == "2" ]]; then -FCN_RETURN="" -fi -if [[ "${cword}" == "3" ]]; then -FCN_RETURN="" -fi -if [[ "${cword}" == "4" ]]; then -FCN_RETURN="" -fi -if [[ "${cword}" == "5" ]]; then -FCN_RETURN="" -fi -fi return 0 } __rx_silent() { diff --git a/slsDetectorSoftware/generator/autocomplete/dump.json b/slsDetectorSoftware/generator/autocomplete/dump.json index 278859f6a..289b6fcc1 100644 --- a/slsDetectorSoftware/generator/autocomplete/dump.json +++ b/slsDetectorSoftware/generator/autocomplete/dump.json @@ -1,5 +1,5 @@ { - "id": "0x2d33fd20", + "id": "0x3856fae0", "kind": "FunctionTemplateDecl", "loc": { "offset": 8829, @@ -34,7 +34,7 @@ "name": "StringTo", "inner": [ { - "id": "0x2d33f9b8", + "id": "0x3856f778", "kind": "TemplateTypeParmDecl", "loc": { "offset": 8824, @@ -70,7 +70,7 @@ "index": 0 }, { - "id": "0x2d33fc78", + "id": "0x3856fa38", "kind": "FunctionDecl", "loc": { "offset": 8829, @@ -106,7 +106,7 @@ }, "inner": [ { - "id": "0x2d33faa8", + "id": "0x3856f868", "kind": "ParmVarDecl", "loc": { "offset": 8857, @@ -142,7 +142,7 @@ } }, { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "loc": { "offset": 8879, @@ -177,7 +177,7 @@ } }, { - "id": "0x2d374e28", + "id": "0x385a5418", "kind": "CompoundStmt", "range": { "begin": { @@ -200,7 +200,7 @@ }, "inner": [ { - "id": "0x2d33ff58", + "id": "0x3856fd18", "kind": "DeclStmt", "range": { "begin": { @@ -223,7 +223,7 @@ }, "inner": [ { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "loc": { "offset": 8898, @@ -259,7 +259,7 @@ "init": "list", "inner": [ { - "id": "0x2d33fef8", + "id": "0x3856fcb8", "kind": "InitListExpr", "range": { "begin": { @@ -285,7 +285,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d33ff38", + "id": "0x3856fcf8", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -312,7 +312,7 @@ "castKind": "IntegralToFloating", "inner": [ { - "id": "0x2d33fe80", + "id": "0x3856fc40", "kind": "IntegerLiteral", "range": { "begin": { @@ -347,7 +347,7 @@ ] }, { - "id": "0x2d3404a8", + "id": "0x38570268", "kind": "CXXTryStmt", "range": { "begin": { @@ -371,7 +371,7 @@ }, "inner": [ { - "id": "0x2d340130", + "id": "0x3856fef0", "kind": "CompoundStmt", "range": { "begin": { @@ -395,7 +395,7 @@ }, "inner": [ { - "id": "0x2d340110", + "id": "0x3856fed0", "kind": "BinaryOperator", "range": { "begin": { @@ -423,7 +423,7 @@ "opcode": "=", "inner": [ { - "id": "0x2d33ff70", + "id": "0x3856fd30", "kind": "DeclRefExpr", "range": { "begin": { @@ -448,7 +448,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -457,7 +457,7 @@ } }, { - "id": "0x2d3400c0", + "id": "0x3856fe80", "kind": "CallExpr", "range": { "begin": { @@ -483,7 +483,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3400a8", + "id": "0x3856fe68", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -510,7 +510,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d340020", + "id": "0x3856fde0", "kind": "DeclRefExpr", "range": { "begin": { @@ -535,7 +535,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c8d75c0", + "id": "0x37b08ff0", "kind": "FunctionDecl", "name": "stod", "type": { @@ -546,7 +546,7 @@ ] }, { - "id": "0x2d340000", + "id": "0x3856fdc0", "kind": "DeclRefExpr", "range": { "begin": { @@ -569,11 +569,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33faa8", + "id": "0x3856f868", "kind": "ParmVarDecl", "name": "t", "type": { @@ -582,7 +582,7 @@ } }, { - "id": "0x2d3400f0", + "id": "0x3856feb0", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -600,7 +600,7 @@ ] }, { - "id": "0x2d340488", + "id": "0x38570248", "kind": "CXXCatchStmt", "range": { "begin": { @@ -624,7 +624,7 @@ }, "inner": [ { - "id": "0x2d340200", + "id": "0x3856ffc0", "kind": "VarDecl", "loc": { "offset": 8988, @@ -659,7 +659,7 @@ } }, { - "id": "0x2d340470", + "id": "0x38570230", "kind": "CompoundStmt", "range": { "begin": { @@ -682,7 +682,7 @@ }, "inner": [ { - "id": "0x2d340458", + "id": "0x38570218", "kind": "ExprWithCleanups", "range": { "begin": { @@ -710,7 +710,7 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x2d340440", + "id": "0x38570200", "kind": "CXXThrowExpr", "range": { "begin": { @@ -736,7 +736,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d340410", + "id": "0x385701d0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -769,7 +769,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d3403f8", + "id": "0x385701b8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -797,7 +797,7 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x2d3403d0", + "id": "0x38570190", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -824,7 +824,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c968a58", + "id": "0x37b9a6a8", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -833,7 +833,7 @@ }, "inner": [ { - "id": "0x2d3403b0", + "id": "0x38570170", "kind": "CXXBindTemporaryExpr", "range": { "begin": { @@ -858,9 +858,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x2d3403a8", + "temp": "0x38570168", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -869,7 +869,7 @@ }, "inner": [ { - "id": "0x2d340378", + "id": "0x38570138", "kind": "CXXConstructExpr", "range": { "begin": { @@ -901,7 +901,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d340330", + "id": "0x385700f0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -928,7 +928,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d3402f8", + "id": "0x385700b8", "kind": "StringLiteral", "range": { "begin": { @@ -977,7 +977,7 @@ ] }, { - "id": "0x2d340580", + "id": "0x38570340", "kind": "DeclStmt", "range": { "begin": { @@ -1000,7 +1000,7 @@ }, "inner": [ { - "id": "0x2d3404d8", + "id": "0x38570298", "kind": "UsingDecl", "loc": { "offset": 9087, @@ -1033,7 +1033,7 @@ ] }, { - "id": "0x2d340650", + "id": "0x38570410", "kind": "DeclStmt", "range": { "begin": { @@ -1056,7 +1056,7 @@ }, "inner": [ { - "id": "0x2d3405a8", + "id": "0x38570368", "kind": "UsingDecl", "loc": { "offset": 9120, @@ -1089,7 +1089,7 @@ ] }, { - "id": "0x2d374df8", + "id": "0x385a53e8", "kind": "IfStmt", "range": { "begin": { @@ -1114,7 +1114,7 @@ "hasElse": true, "inner": [ { - "id": "0x2d3418c8", + "id": "0x38571688", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -1142,7 +1142,7 @@ "adl": true, "inner": [ { - "id": "0x2d3418b0", + "id": "0x38571670", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1169,7 +1169,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d341890", + "id": "0x38571650", "kind": "DeclRefExpr", "range": { "begin": { @@ -1194,7 +1194,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -1205,7 +1205,7 @@ ] }, { - "id": "0x2d340668", + "id": "0x38570428", "kind": "DeclRefExpr", "range": { "begin": { @@ -1228,11 +1228,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -1241,7 +1241,7 @@ } }, { - "id": "0x2d341878", + "id": "0x38571638", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1268,7 +1268,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d340688", + "id": "0x38570448", "kind": "StringLiteral", "range": { "begin": { @@ -1299,7 +1299,7 @@ ] }, { - "id": "0x2d355c50", + "id": "0x38585a60", "kind": "CompoundStmt", "range": { "begin": { @@ -1322,7 +1322,7 @@ }, "inner": [ { - "id": "0x2d355c40", + "id": "0x38585a50", "kind": "ReturnStmt", "range": { "begin": { @@ -1345,7 +1345,7 @@ }, "inner": [ { - "id": "0x2d355c18", + "id": "0x38585a28", "kind": "CallExpr", "range": { "begin": { @@ -1371,7 +1371,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d341910", + "id": "0x385716d0", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -1399,14 +1399,14 @@ "name": "duration_cast", "lookups": [ { - "id": "0x2d340600", + "id": "0x385703c0", "kind": "UsingShadowDecl", "name": "duration_cast" } ] }, { - "id": "0x2d355bf0", + "id": "0x38585a00", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -1433,7 +1433,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2d355898", + "id": "0x385856a8", "kind": "CXXConstructorDecl", "name": "duration", "type": { @@ -1442,7 +1442,7 @@ }, "inner": [ { - "id": "0x2d355bc0", + "id": "0x385859d0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -1474,7 +1474,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d3559f0", + "id": "0x38585800", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1502,7 +1502,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d341be0", + "id": "0x385719a0", "kind": "DeclRefExpr", "range": { "begin": { @@ -1527,7 +1527,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -1548,7 +1548,7 @@ ] }, { - "id": "0x2d374dc8", + "id": "0x385a53b8", "kind": "IfStmt", "range": { "begin": { @@ -1573,7 +1573,7 @@ "hasElse": true, "inner": [ { - "id": "0x2d356ec8", + "id": "0x38586cd8", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -1601,7 +1601,7 @@ "adl": true, "inner": [ { - "id": "0x2d356eb0", + "id": "0x38586cc0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1628,7 +1628,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d356e90", + "id": "0x38586ca0", "kind": "DeclRefExpr", "range": { "begin": { @@ -1653,7 +1653,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -1664,7 +1664,7 @@ ] }, { - "id": "0x2d355c68", + "id": "0x38585a78", "kind": "DeclRefExpr", "range": { "begin": { @@ -1687,11 +1687,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -1700,7 +1700,7 @@ } }, { - "id": "0x2d356e78", + "id": "0x38586c88", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1727,7 +1727,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d355c88", + "id": "0x38585a98", "kind": "StringLiteral", "range": { "begin": { @@ -1758,7 +1758,7 @@ ] }, { - "id": "0x2d360050", + "id": "0x3858fe60", "kind": "CompoundStmt", "range": { "begin": { @@ -1781,7 +1781,7 @@ }, "inner": [ { - "id": "0x2d360040", + "id": "0x3858fe50", "kind": "ReturnStmt", "range": { "begin": { @@ -1804,7 +1804,7 @@ }, "inner": [ { - "id": "0x2d360018", + "id": "0x3858fe28", "kind": "CallExpr", "range": { "begin": { @@ -1830,7 +1830,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d356f10", + "id": "0x38586d20", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -1858,14 +1858,14 @@ "name": "duration_cast", "lookups": [ { - "id": "0x2d340600", + "id": "0x385703c0", "kind": "UsingShadowDecl", "name": "duration_cast" } ] }, { - "id": "0x2d35fff0", + "id": "0x3858fe00", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -1892,7 +1892,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2d35fc98", + "id": "0x3858faa8", "kind": "CXXConstructorDecl", "name": "duration", "type": { @@ -1901,7 +1901,7 @@ }, "inner": [ { - "id": "0x2d35ffc0", + "id": "0x3858fdd0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -1933,7 +1933,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d35fdf0", + "id": "0x3858fc00", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1961,7 +1961,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3571e0", + "id": "0x38586ff0", "kind": "DeclRefExpr", "range": { "begin": { @@ -1986,7 +1986,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -2007,7 +2007,7 @@ ] }, { - "id": "0x2d374d98", + "id": "0x385a5388", "kind": "IfStmt", "range": { "begin": { @@ -2032,7 +2032,7 @@ "hasElse": true, "inner": [ { - "id": "0x2d3612c8", + "id": "0x385910d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -2060,7 +2060,7 @@ "adl": true, "inner": [ { - "id": "0x2d3612b0", + "id": "0x385910c0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2087,7 +2087,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d361290", + "id": "0x385910a0", "kind": "DeclRefExpr", "range": { "begin": { @@ -2112,7 +2112,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -2123,7 +2123,7 @@ ] }, { - "id": "0x2d360068", + "id": "0x3858fe78", "kind": "DeclRefExpr", "range": { "begin": { @@ -2146,11 +2146,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -2159,7 +2159,7 @@ } }, { - "id": "0x2d361278", + "id": "0x38591088", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2186,7 +2186,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d360088", + "id": "0x3858fe98", "kind": "StringLiteral", "range": { "begin": { @@ -2217,7 +2217,7 @@ ] }, { - "id": "0x2d36a4b0", + "id": "0x3859a270", "kind": "CompoundStmt", "range": { "begin": { @@ -2240,7 +2240,7 @@ }, "inner": [ { - "id": "0x2d36a4a0", + "id": "0x3859a260", "kind": "ReturnStmt", "range": { "begin": { @@ -2263,7 +2263,7 @@ }, "inner": [ { - "id": "0x2d36a478", + "id": "0x3859a238", "kind": "CallExpr", "range": { "begin": { @@ -2289,7 +2289,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d361310", + "id": "0x38591120", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -2317,14 +2317,14 @@ "name": "duration_cast", "lookups": [ { - "id": "0x2d340600", + "id": "0x385703c0", "kind": "UsingShadowDecl", "name": "duration_cast" } ] }, { - "id": "0x2d36a450", + "id": "0x3859a210", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -2351,7 +2351,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2d36a0f8", + "id": "0x38599eb8", "kind": "CXXConstructorDecl", "name": "duration", "type": { @@ -2360,7 +2360,7 @@ }, "inner": [ { - "id": "0x2d36a420", + "id": "0x3859a1e0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -2392,7 +2392,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d36a250", + "id": "0x3859a010", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2420,7 +2420,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3615e0", + "id": "0x385913f0", "kind": "DeclRefExpr", "range": { "begin": { @@ -2445,7 +2445,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -2466,7 +2466,7 @@ ] }, { - "id": "0x2d374d68", + "id": "0x385a5358", "kind": "IfStmt", "range": { "begin": { @@ -2491,7 +2491,7 @@ "hasElse": true, "inner": [ { - "id": "0x2d36b7f8", + "id": "0x3859b5b8", "kind": "BinaryOperator", "range": { "begin": { @@ -2519,7 +2519,7 @@ "opcode": "||", "inner": [ { - "id": "0x2d36b728", + "id": "0x3859b4e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -2546,7 +2546,7 @@ "adl": true, "inner": [ { - "id": "0x2d36b710", + "id": "0x3859b4d0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2573,7 +2573,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d36b6f0", + "id": "0x3859b4b0", "kind": "DeclRefExpr", "range": { "begin": { @@ -2598,7 +2598,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -2609,7 +2609,7 @@ ] }, { - "id": "0x2d36a4c8", + "id": "0x3859a288", "kind": "DeclRefExpr", "range": { "begin": { @@ -2632,11 +2632,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -2645,7 +2645,7 @@ } }, { - "id": "0x2d36b6d8", + "id": "0x3859b498", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2672,7 +2672,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d36a4e8", + "id": "0x3859a2a8", "kind": "StringLiteral", "range": { "begin": { @@ -2703,7 +2703,7 @@ ] }, { - "id": "0x2d36b7b0", + "id": "0x3859b570", "kind": "CXXMemberCallExpr", "range": { "begin": { @@ -2729,7 +2729,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d36b780", + "id": "0x3859b540", "kind": "MemberExpr", "range": { "begin": { @@ -2755,10 +2755,10 @@ "valueCategory": "prvalue", "name": "empty", "isArrow": false, - "referencedMemberDecl": "0x2c8bc688", + "referencedMemberDecl": "0x37aee0b8", "inner": [ { - "id": "0x2d36b760", + "id": "0x3859b520", "kind": "DeclRefExpr", "range": { "begin": { @@ -2781,11 +2781,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -2800,7 +2800,7 @@ ] }, { - "id": "0x2d374b80", + "id": "0x385a5170", "kind": "CompoundStmt", "range": { "begin": { @@ -2823,7 +2823,7 @@ }, "inner": [ { - "id": "0x2d374b70", + "id": "0x385a5160", "kind": "ReturnStmt", "range": { "begin": { @@ -2846,7 +2846,7 @@ }, "inner": [ { - "id": "0x2d374b48", + "id": "0x385a5138", "kind": "CallExpr", "range": { "begin": { @@ -2872,7 +2872,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d36b828", + "id": "0x3859b5e8", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -2900,14 +2900,14 @@ "name": "duration_cast", "lookups": [ { - "id": "0x2d340600", + "id": "0x385703c0", "kind": "UsingShadowDecl", "name": "duration_cast" } ] }, { - "id": "0x2d374b20", + "id": "0x385a5110", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -2934,7 +2934,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2d3747c8", + "id": "0x385a4db8", "kind": "CXXConstructorDecl", "name": "duration", "type": { @@ -2943,7 +2943,7 @@ }, "inner": [ { - "id": "0x2d374af0", + "id": "0x385a50e0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -2975,7 +2975,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d374920", + "id": "0x385a4f10", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -3003,7 +3003,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d36bad0", + "id": "0x3859b890", "kind": "DeclRefExpr", "range": { "begin": { @@ -3028,7 +3028,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -3049,7 +3049,7 @@ ] }, { - "id": "0x2d374d50", + "id": "0x385a5340", "kind": "CompoundStmt", "range": { "begin": { @@ -3073,7 +3073,7 @@ }, "inner": [ { - "id": "0x2d374d38", + "id": "0x385a5328", "kind": "ExprWithCleanups", "range": { "begin": { @@ -3102,7 +3102,7 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x2d374d20", + "id": "0x385a5310", "kind": "CXXThrowExpr", "range": { "begin": { @@ -3130,7 +3130,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d374cf0", + "id": "0x385a52e0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -3165,7 +3165,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d374cd8", + "id": "0x385a52c8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -3195,7 +3195,7 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x2d374cb0", + "id": "0x385a52a0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -3224,7 +3224,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c968a58", + "id": "0x37b9a6a8", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -3233,7 +3233,7 @@ }, "inner": [ { - "id": "0x2d374c90", + "id": "0x385a5280", "kind": "CXXBindTemporaryExpr", "range": { "begin": { @@ -3260,9 +3260,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x2d374c88", + "temp": "0x385a5278", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -3271,7 +3271,7 @@ }, "inner": [ { - "id": "0x2d374c58", + "id": "0x385a5248", "kind": "CXXConstructExpr", "range": { "begin": { @@ -3305,7 +3305,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d374c40", + "id": "0x385a5230", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -3332,7 +3332,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d374be8", + "id": "0x385a51d8", "kind": "StringLiteral", "range": { "begin": { @@ -3391,7 +3391,7 @@ ] } { - "id": "0x2d3750e0", + "id": "0x385a56d0", "kind": "FunctionTemplateDecl", "loc": { "offset": 9697, @@ -3425,7 +3425,7 @@ "name": "StringTo", "inner": [ { - "id": "0x2d374e60", + "id": "0x385a5450", "kind": "TemplateTypeParmDecl", "loc": { "offset": 9692, @@ -3461,7 +3461,7 @@ "index": 0 }, { - "id": "0x2d375038", + "id": "0x385a5628", "kind": "FunctionDecl", "loc": { "offset": 9697, @@ -3496,7 +3496,7 @@ }, "inner": [ { - "id": "0x2d374f48", + "id": "0x385a5538", "kind": "ParmVarDecl", "loc": { "offset": 9725, @@ -3532,7 +3532,7 @@ } }, { - "id": "0x2d375810", + "id": "0x385a5e00", "kind": "CompoundStmt", "range": { "begin": { @@ -3555,7 +3555,7 @@ }, "inner": [ { - "id": "0x2d375340", + "id": "0x385a5930", "kind": "DeclStmt", "range": { "begin": { @@ -3578,7 +3578,7 @@ }, "inner": [ { - "id": "0x2d375210", + "id": "0x385a5800", "kind": "VarDecl", "loc": { "offset": 9746, @@ -3611,12 +3611,12 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "init": "list", "inner": [ { - "id": "0x2d375310", + "id": "0x385a5900", "kind": "CXXConstructExpr", "range": { "begin": { @@ -3639,7 +3639,7 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "ctorType": { @@ -3650,7 +3650,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d375278", + "id": "0x385a5868", "kind": "DeclRefExpr", "range": { "begin": { @@ -3673,11 +3673,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d374f48", + "id": "0x385a5538", "kind": "ParmVarDecl", "name": "t", "type": { @@ -3692,7 +3692,7 @@ ] }, { - "id": "0x2d3756d0", + "id": "0x385a5cc0", "kind": "DeclStmt", "range": { "begin": { @@ -3715,7 +3715,7 @@ }, "inner": [ { - "id": "0x2d375398", + "id": "0x385a5988", "kind": "VarDecl", "loc": { "offset": 9763, @@ -3748,12 +3748,12 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "init": "c", "inner": [ { - "id": "0x2d3756b8", + "id": "0x385a5ca8", "kind": "ExprWithCleanups", "range": { "begin": { @@ -3776,13 +3776,13 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x2d375688", + "id": "0x385a5c78", "kind": "CXXConstructExpr", "range": { "begin": { @@ -3805,7 +3805,7 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "ctorType": { @@ -3816,7 +3816,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d375640", + "id": "0x385a5c30", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -3839,13 +3839,13 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "xvalue", "storageDuration": "full expression", "inner": [ { - "id": "0x2d375530", + "id": "0x385a5b20", "kind": "CXXBindTemporaryExpr", "range": { "begin": { @@ -3868,12 +3868,12 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", - "temp": "0x2d375528", + "temp": "0x385a5b18", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -3882,7 +3882,7 @@ }, "inner": [ { - "id": "0x2d375500", + "id": "0x385a5af0", "kind": "CallExpr", "range": { "begin": { @@ -3905,12 +3905,12 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3754e8", + "id": "0x385a5ad8", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -3937,7 +3937,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d375468", + "id": "0x385a5a58", "kind": "DeclRefExpr", "range": { "begin": { @@ -3962,7 +3962,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce1e5b8", + "id": "0x3804f538", "kind": "FunctionDecl", "name": "RemoveUnit", "type": { @@ -3973,7 +3973,7 @@ ] }, { - "id": "0x2d375448", + "id": "0x385a5a38", "kind": "DeclRefExpr", "range": { "begin": { @@ -3996,17 +3996,17 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d375210", + "id": "0x385a5800", "kind": "VarDecl", "name": "tmp", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } @@ -4025,7 +4025,7 @@ ] }, { - "id": "0x2d375800", + "id": "0x385a5df0", "kind": "ReturnStmt", "range": { "begin": { @@ -4048,7 +4048,7 @@ }, "inner": [ { - "id": "0x2d3757d0", + "id": "0x385a5dc0", "kind": "CallExpr", "range": { "begin": { @@ -4074,7 +4074,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d375710", + "id": "0x385a5d00", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -4102,19 +4102,19 @@ "name": "StringTo", "lookups": [ { - "id": "0x2d3750e0", + "id": "0x385a56d0", "kind": "FunctionTemplateDecl", "name": "StringTo" }, { - "id": "0x2d33fd20", + "id": "0x3856fae0", "kind": "FunctionTemplateDecl", "name": "StringTo" } ] }, { - "id": "0x2d375790", + "id": "0x385a5d80", "kind": "DeclRefExpr", "range": { "begin": { @@ -4137,22 +4137,22 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d375210", + "id": "0x385a5800", "kind": "VarDecl", "name": "tmp", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } }, { - "id": "0x2d3757b0", + "id": "0x385a5da0", "kind": "DeclRefExpr", "range": { "begin": { @@ -4175,17 +4175,17 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d375398", + "id": "0x385a5988", "kind": "VarDecl", "name": "unit", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } @@ -4198,7 +4198,7 @@ ] }, { - "id": "0x7f0da6e85d18", + "id": "0x7feb10ea9db8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4206,7 +4206,7 @@ } }, { - "id": "0x7f0da6e90148", + "id": "0x7feb10eb41e8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4214,7 +4214,7 @@ } }, { - "id": "0x7f0da6e67ba8", + "id": "0x38727ab8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4222,7 +4222,7 @@ } }, { - "id": "0x7f0da6e71f68", + "id": "0x38731e78", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4230,7 +4230,7 @@ } }, { - "id": "0x7f0da6e37988", + "id": "0x7feb10e7ca18", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4238,7 +4238,7 @@ } }, { - "id": "0x7f0da6e3bd78", + "id": "0x7feb10e80e08", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4246,7 +4246,7 @@ } }, { - "id": "0x7f0da6e3ede8", + "id": "0x7feb10e83e78", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4254,7 +4254,7 @@ } }, { - "id": "0x7f0da6e444e8", + "id": "0x7feb10e89578", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4262,7 +4262,7 @@ } }, { - "id": "0x7f0da6e4af48", + "id": "0x7feb10e8ffd8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4270,7 +4270,7 @@ } }, { - "id": "0x7f0da6b961f8", + "id": "0x7feb10e0b598", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4278,7 +4278,7 @@ } }, { - "id": "0x7f0da6b9b8e8", + "id": "0x7feb10e10c88", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4286,7 +4286,7 @@ } }, { - "id": "0x7f0da6b5d9a8", + "id": "0x7feb10e13d28", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4294,7 +4294,7 @@ } }, { - "id": "0x7f0da6b656f8", + "id": "0x3873b8f8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4302,7 +4302,7 @@ } }, { - "id": "0x7f0da6b6add8", + "id": "0x38740fd8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4310,7 +4310,7 @@ } }, { - "id": "0x7f0da6b6f8c8", + "id": "0x38745ac8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4318,7 +4318,7 @@ } }, { - "id": "0x7f0da6b72938", + "id": "0x38748b38", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4326,7 +4326,7 @@ } }, { - "id": "0x7f0da6b7a688", + "id": "0x38750888", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4334,7 +4334,7 @@ } }, { - "id": "0x7f0da6b3c708", + "id": "0x387538f8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4342,7 +4342,7 @@ } }, { - "id": "0x7f0da6b3f7a8", + "id": "0x38756998", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4350,7 +4350,7 @@ } }, { - "id": "0x7f0da6b427f8", + "id": "0x7feb10dd8ba8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4358,7 +4358,7 @@ } }, { - "id": "0x7f0da6b44d88", + "id": "0x7feb10ddb138", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4366,7 +4366,7 @@ } }, { - "id": "0x7f0da6b466b8", + "id": "0x7feb10ddc9e8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4374,7 +4374,7 @@ } }, { - "id": "0x7f0da6b46ed8", + "id": "0x7feb10ddd208", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4382,7 +4382,7 @@ } }, { - "id": "0x7f0da6b47700", + "id": "0x7feb10ddda30", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4390,7 +4390,7 @@ } }, { - "id": "0x7f0da6b47eb8", + "id": "0x7feb10dde1e8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4398,7 +4398,7 @@ } }, { - "id": "0x7f0da6b486c8", + "id": "0x7feb10dde9f8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4408,7 +4408,7 @@ ] } { - "id": "0x2d3759e8", + "id": "0x385a5fd8", "kind": "FunctionDecl", "loc": { "offset": 9856, @@ -4438,7 +4438,7 @@ } } }, - "previousDecl": "0x2d375c48", + "previousDecl": "0x385a6238", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4452,13 +4452,13 @@ }, "inner": [ { - "id": "0x2cd03d20", + "id": "0x37f35630", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::detectorType" }, "decl": { - "id": "0x2cd03c80", + "id": "0x37f35590", "kind": "EnumDecl", "name": "detectorType" } @@ -4466,7 +4466,7 @@ ] }, { - "id": "0x2d3758e0", + "id": "0x385a5ed0", "kind": "ParmVarDecl", "loc": { "offset": 9884, @@ -4502,7 +4502,7 @@ ] } { - "id": "0x2d375f38", + "id": "0x385a6528", "kind": "FunctionDecl", "loc": { "offset": 9923, @@ -4532,7 +4532,7 @@ } } }, - "previousDecl": "0x2d376198", + "previousDecl": "0x385a6788", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4546,13 +4546,13 @@ }, "inner": [ { - "id": "0x2cdc0300", + "id": "0x37ff0eb0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::detectorSettings" }, "decl": { - "id": "0x2cdc0258", + "id": "0x37ff0e08", "kind": "EnumDecl", "name": "detectorSettings" } @@ -4560,7 +4560,7 @@ ] }, { - "id": "0x2d375e38", + "id": "0x385a6428", "kind": "ParmVarDecl", "loc": { "offset": 9951, @@ -4596,7 +4596,7 @@ ] } { - "id": "0x2d376488", + "id": "0x385a6a78", "kind": "FunctionDecl", "loc": { "offset": 9984, @@ -4626,7 +4626,7 @@ } } }, - "previousDecl": "0x2d3766e8", + "previousDecl": "0x385a6cd8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4640,13 +4640,13 @@ }, "inner": [ { - "id": "0x2cdc0fb0", + "id": "0x37ff1b60", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::speedLevel" }, "decl": { - "id": "0x2cdc0f08", + "id": "0x37ff1ab8", "kind": "EnumDecl", "name": "speedLevel" } @@ -4654,7 +4654,7 @@ ] }, { - "id": "0x2d376388", + "id": "0x385a6978", "kind": "ParmVarDecl", "loc": { "offset": 10012, @@ -4690,7 +4690,7 @@ ] } { - "id": "0x2d3769d8", + "id": "0x385a6fc8", "kind": "FunctionDecl", "loc": { "offset": 10045, @@ -4720,7 +4720,7 @@ } } }, - "previousDecl": "0x2d376c38", + "previousDecl": "0x385a7228", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4734,13 +4734,13 @@ }, "inner": [ { - "id": "0x2cdbd770", + "id": "0x37fee460", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingMode" }, "decl": { - "id": "0x2cdbd6c8", + "id": "0x37fee3b8", "kind": "EnumDecl", "name": "timingMode" } @@ -4748,7 +4748,7 @@ ] }, { - "id": "0x2d3768d8", + "id": "0x385a6ec8", "kind": "ParmVarDecl", "loc": { "offset": 10073, @@ -4784,7 +4784,7 @@ ] } { - "id": "0x2d376f28", + "id": "0x385a7518", "kind": "FunctionDecl", "loc": { "offset": 10114, @@ -4814,7 +4814,7 @@ } } }, - "previousDecl": "0x2d377188", + "previousDecl": "0x385a7778", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4828,13 +4828,13 @@ }, "inner": [ { - "id": "0x2cdb87d0", + "id": "0x37fe94c0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::frameDiscardPolicy" }, "decl": { - "id": "0x2cdb8730", + "id": "0x37fe9420", "kind": "EnumDecl", "name": "frameDiscardPolicy" } @@ -4842,7 +4842,7 @@ ] }, { - "id": "0x2d376e28", + "id": "0x385a7418", "kind": "ParmVarDecl", "loc": { "offset": 10142, @@ -4878,7 +4878,7 @@ ] } { - "id": "0x2d377478", + "id": "0x385a7a68", "kind": "FunctionDecl", "loc": { "offset": 10175, @@ -4908,7 +4908,7 @@ } } }, - "previousDecl": "0x2d3776d8", + "previousDecl": "0x385a7cc8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4922,13 +4922,13 @@ }, "inner": [ { - "id": "0x2cdbbda0", + "id": "0x37feca90", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::fileFormat" }, "decl": { - "id": "0x2cdbbd00", + "id": "0x37fec9f0", "kind": "EnumDecl", "name": "fileFormat" } @@ -4936,7 +4936,7 @@ ] }, { - "id": "0x2d377378", + "id": "0x385a7968", "kind": "ParmVarDecl", "loc": { "offset": 10203, @@ -4972,7 +4972,7 @@ ] } { - "id": "0x2d3779c8", + "id": "0x385a7fb8", "kind": "FunctionDecl", "loc": { "offset": 10244, @@ -5002,7 +5002,7 @@ } } }, - "previousDecl": "0x2d377c28", + "previousDecl": "0x385a8218", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5016,13 +5016,13 @@ }, "inner": [ { - "id": "0x2cdbd540", + "id": "0x37fee230", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::externalSignalFlag" }, "decl": { - "id": "0x2cdbd498", + "id": "0x37fee188", "kind": "EnumDecl", "name": "externalSignalFlag" } @@ -5030,7 +5030,7 @@ ] }, { - "id": "0x2d3778c8", + "id": "0x385a7eb8", "kind": "ParmVarDecl", "loc": { "offset": 10272, @@ -5066,7 +5066,7 @@ ] } { - "id": "0x2d377f18", + "id": "0x385a8508", "kind": "FunctionDecl", "loc": { "offset": 10306, @@ -5096,7 +5096,7 @@ } } }, - "previousDecl": "0x2d378178", + "previousDecl": "0x385a8768", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5110,13 +5110,13 @@ }, "inner": [ { - "id": "0x2cdc0d30", + "id": "0x37ff18e0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::readoutMode" }, "decl": { - "id": "0x2cdc0c88", + "id": "0x37ff1838", "kind": "EnumDecl", "name": "readoutMode" } @@ -5124,7 +5124,7 @@ ] }, { - "id": "0x2d377e18", + "id": "0x385a8408", "kind": "ParmVarDecl", "loc": { "offset": 10334, @@ -5160,7 +5160,7 @@ ] } { - "id": "0x2d378468", + "id": "0x385a8a58", "kind": "FunctionDecl", "loc": { "offset": 10365, @@ -5190,7 +5190,7 @@ } } }, - "previousDecl": "0x2d3786c8", + "previousDecl": "0x385a8cb8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5204,13 +5204,13 @@ }, "inner": [ { - "id": "0x2cdbda40", + "id": "0x37fee730", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::dacIndex" }, "decl": { - "id": "0x2cdbd998", + "id": "0x37fee688", "kind": "EnumDecl", "name": "dacIndex" } @@ -5218,7 +5218,7 @@ ] }, { - "id": "0x2d378368", + "id": "0x385a8958", "kind": "ParmVarDecl", "loc": { "offset": 10393, @@ -5254,7 +5254,7 @@ ] } { - "id": "0x2d3789b8", + "id": "0x385a8fa8", "kind": "FunctionDecl", "loc": { "offset": 10425, @@ -5284,7 +5284,7 @@ } } }, - "previousDecl": "0x2d378c18", + "previousDecl": "0x385a9208", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5298,13 +5298,13 @@ }, "inner": [ { - "id": "0x2cdc1230", + "id": "0x37ff1de0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::burstMode" }, "decl": { - "id": "0x2cdc1188", + "id": "0x37ff1d38", "kind": "EnumDecl", "name": "burstMode" } @@ -5312,7 +5312,7 @@ ] }, { - "id": "0x2d3788b8", + "id": "0x385a8ea8", "kind": "ParmVarDecl", "loc": { "offset": 10453, @@ -5348,7 +5348,7 @@ ] } { - "id": "0x2d378f08", + "id": "0x385a94f8", "kind": "FunctionDecl", "loc": { "offset": 10492, @@ -5378,7 +5378,7 @@ } } }, - "previousDecl": "0x2d379168", + "previousDecl": "0x385a9758", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5392,13 +5392,13 @@ }, "inner": [ { - "id": "0x2cdc14b0", + "id": "0x37ff2060", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingSourceType" }, "decl": { - "id": "0x2cdc1408", + "id": "0x37ff1fb8", "kind": "EnumDecl", "name": "timingSourceType" } @@ -5406,7 +5406,7 @@ ] }, { - "id": "0x2d378e08", + "id": "0x385a93f8", "kind": "ParmVarDecl", "loc": { "offset": 10520, @@ -5442,7 +5442,7 @@ ] } { - "id": "0x2d379458", + "id": "0x385a9a48", "kind": "FunctionDecl", "loc": { "offset": 10554, @@ -5472,7 +5472,7 @@ } } }, - "previousDecl": "0x2d3796b8", + "previousDecl": "0x385a9ca8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5486,13 +5486,13 @@ }, "inner": [ { - "id": "0x2cdc1610", + "id": "0x37ff21c0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::M3_GainCaps" }, "decl": { - "id": "0x2cdc1570", + "id": "0x37ff2120", "kind": "EnumDecl", "name": "M3_GainCaps" } @@ -5500,7 +5500,7 @@ ] }, { - "id": "0x2d379358", + "id": "0x385a9948", "kind": "ParmVarDecl", "loc": { "offset": 10582, @@ -5536,7 +5536,7 @@ ] } { - "id": "0x2d3799a8", + "id": "0x385a9f98", "kind": "FunctionDecl", "loc": { "offset": 10617, @@ -5566,7 +5566,7 @@ } } }, - "previousDecl": "0x2d379c08", + "previousDecl": "0x385aa1f8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5580,13 +5580,13 @@ }, "inner": [ { - "id": "0x2cdc1c40", + "id": "0x37ff27f0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::portPosition" }, "decl": { - "id": "0x2cdc1ba0", + "id": "0x37ff2750", "kind": "EnumDecl", "name": "portPosition" } @@ -5594,7 +5594,7 @@ ] }, { - "id": "0x2d3798a8", + "id": "0x385a9e98", "kind": "ParmVarDecl", "loc": { "offset": 10645, @@ -5630,7 +5630,7 @@ ] } { - "id": "0x2d379ef8", + "id": "0x385aa4e8", "kind": "FunctionDecl", "loc": { "offset": 10686, @@ -5660,7 +5660,7 @@ } } }, - "previousDecl": "0x2d37a158", + "previousDecl": "0x385aa748", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5674,13 +5674,13 @@ }, "inner": [ { - "id": "0x2cdc1fd0", + "id": "0x37ff2b80", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::streamingInterface" }, "decl": { - "id": "0x2cdc1f30", + "id": "0x37ff2ae0", "kind": "EnumDecl", "name": "streamingInterface" } @@ -5688,7 +5688,7 @@ ] }, { - "id": "0x2d379df8", + "id": "0x385aa3e8", "kind": "ParmVarDecl", "loc": { "offset": 10714, @@ -5724,7 +5724,7 @@ ] } { - "id": "0x2d37a448", + "id": "0x385aaa38", "kind": "FunctionDecl", "loc": { "offset": 10750, @@ -5754,7 +5754,7 @@ } } }, - "previousDecl": "0x2d37a6a8", + "previousDecl": "0x385aac98", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5768,13 +5768,13 @@ }, "inner": [ { - "id": "0x2cdc2390", + "id": "0x37ff2f40", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::vetoAlgorithm" }, "decl": { - "id": "0x2cdc22f0", + "id": "0x37ff2ea0", "kind": "EnumDecl", "name": "vetoAlgorithm" } @@ -5782,7 +5782,7 @@ ] }, { - "id": "0x2d37a348", + "id": "0x385aa938", "kind": "ParmVarDecl", "loc": { "offset": 10778, @@ -5818,7 +5818,7 @@ ] } { - "id": "0x2d37a998", + "id": "0x385aaf88", "kind": "FunctionDecl", "loc": { "offset": 10809, @@ -5848,7 +5848,7 @@ } } }, - "previousDecl": "0x2d37abf8", + "previousDecl": "0x385ab1e8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5862,13 +5862,13 @@ }, "inner": [ { - "id": "0x2cdc24f0", + "id": "0x37ff30a0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::gainMode" }, "decl": { - "id": "0x2cdc2450", + "id": "0x37ff3000", "kind": "EnumDecl", "name": "gainMode" } @@ -5876,7 +5876,7 @@ ] }, { - "id": "0x2d37a898", + "id": "0x385aae88", "kind": "ParmVarDecl", "loc": { "offset": 10837, @@ -5912,7 +5912,7 @@ ] } { - "id": "0x2d37aee8", + "id": "0x385ab4d8", "kind": "FunctionDecl", "loc": { "offset": 10868, @@ -5942,7 +5942,7 @@ } } }, - "previousDecl": "0x2d37b148", + "previousDecl": "0x385ab738", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5956,13 +5956,13 @@ }, "inner": [ { - "id": "0x2cdc2790", + "id": "0x37ff3340", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::polarity" }, "decl": { - "id": "0x2cdc26f0", + "id": "0x37ff32a0", "kind": "EnumDecl", "name": "polarity" } @@ -5970,7 +5970,7 @@ ] }, { - "id": "0x2d37ade8", + "id": "0x385ab3d8", "kind": "ParmVarDecl", "loc": { "offset": 10896, @@ -6006,7 +6006,7 @@ ] } { - "id": "0x2d37b438", + "id": "0x385aba28", "kind": "FunctionDecl", "loc": { "offset": 10936, @@ -6036,7 +6036,7 @@ } } }, - "previousDecl": "0x2d37b698", + "previousDecl": "0x385abc88", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6050,13 +6050,13 @@ }, "inner": [ { - "id": "0x2cdc28f0", + "id": "0x37ff34a0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingInfoDecoder" }, "decl": { - "id": "0x2cdc2850", + "id": "0x37ff3400", "kind": "EnumDecl", "name": "timingInfoDecoder" } @@ -6064,7 +6064,7 @@ ] }, { - "id": "0x2d37b338", + "id": "0x385ab928", "kind": "ParmVarDecl", "loc": { "offset": 10964, @@ -6100,7 +6100,7 @@ ] } { - "id": "0x2d37b988", + "id": "0x385abf78", "kind": "FunctionDecl", "loc": { "offset": 11001, @@ -6130,7 +6130,7 @@ } } }, - "previousDecl": "0x2d37bbe8", + "previousDecl": "0x385ac1d8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6144,13 +6144,13 @@ }, "inner": [ { - "id": "0x2cdc2a50", + "id": "0x37ff3600", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::collectionMode" }, "decl": { - "id": "0x2cdc29b0", + "id": "0x37ff3560", "kind": "EnumDecl", "name": "collectionMode" } @@ -6158,7 +6158,7 @@ ] }, { - "id": "0x2d37b888", + "id": "0x385abe78", "kind": "ParmVarDecl", "loc": { "offset": 11029, @@ -6194,7 +6194,7 @@ ] } { - "id": "0x2d37be88", + "id": "0x385ac478", "kind": "FunctionDecl", "loc": { "offset": 11054, @@ -6224,7 +6224,7 @@ } } }, - "previousDecl": "0x2d37c0b8", + "previousDecl": "0x385ac6a8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6238,7 +6238,7 @@ }, "inner": [ { - "id": "0x2bf08d50", + "id": "0x3713ad30", "kind": "BuiltinType", "type": { "qualType": "unsigned char" @@ -6247,7 +6247,7 @@ ] }, { - "id": "0x2d37bd98", + "id": "0x385ac388", "kind": "ParmVarDecl", "loc": { "offset": 11082, @@ -6283,7 +6283,7 @@ ] } { - "id": "0x2d37c358", + "id": "0x385ac948", "kind": "FunctionDecl", "loc": { "offset": 11107, @@ -6313,7 +6313,7 @@ } } }, - "previousDecl": "0x2d37c588", + "previousDecl": "0x385acb78", "name": "StringTo", "mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6327,7 +6327,7 @@ }, "inner": [ { - "id": "0x2bf08d70", + "id": "0x3713ad50", "kind": "BuiltinType", "type": { "qualType": "unsigned short" @@ -6336,7 +6336,7 @@ ] }, { - "id": "0x2d37c268", + "id": "0x385ac858", "kind": "ParmVarDecl", "loc": { "offset": 11135, @@ -6372,7 +6372,7 @@ ] } { - "id": "0x2d37c828", + "id": "0x385ace18", "kind": "FunctionDecl", "loc": { "offset": 11160, @@ -6402,7 +6402,7 @@ } } }, - "previousDecl": "0x2d37ca58", + "previousDecl": "0x385ad048", "name": "StringTo", "mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6416,7 +6416,7 @@ }, "inner": [ { - "id": "0x2bf08d90", + "id": "0x3713ad70", "kind": "BuiltinType", "type": { "qualType": "unsigned int" @@ -6425,7 +6425,7 @@ ] }, { - "id": "0x2d37c738", + "id": "0x385acd28", "kind": "ParmVarDecl", "loc": { "offset": 11188, @@ -6461,7 +6461,7 @@ ] } { - "id": "0x2d37ccc8", + "id": "0x385ad2b8", "kind": "FunctionDecl", "loc": { "offset": 11213, @@ -6491,7 +6491,7 @@ } } }, - "previousDecl": "0x2d37cef8", + "previousDecl": "0x385ad4e8", "name": "StringTo", "mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6505,7 +6505,7 @@ }, "inner": [ { - "id": "0x2bf08db0", + "id": "0x3713ad90", "kind": "BuiltinType", "type": { "qualType": "unsigned long" @@ -6514,7 +6514,7 @@ ] }, { - "id": "0x2d37cc08", + "id": "0x385ad1f8", "kind": "ParmVarDecl", "loc": { "offset": 11241, @@ -6550,7 +6550,7 @@ ] } { - "id": "0x2d37d1a0", + "id": "0x385ad790", "kind": "FunctionDecl", "loc": { "offset": 11261, @@ -6580,7 +6580,7 @@ } } }, - "previousDecl": "0x2d37d3d8", + "previousDecl": "0x385ad9c8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6594,7 +6594,7 @@ }, "inner": [ { - "id": "0x2bf08cf0", + "id": "0x3713acd0", "kind": "BuiltinType", "type": { "qualType": "int" @@ -6603,7 +6603,7 @@ ] }, { - "id": "0x2d37d0a8", + "id": "0x385ad698", "kind": "ParmVarDecl", "loc": { "offset": 11289, @@ -6639,7 +6639,7 @@ ] } { - "id": "0x2d37d648", + "id": "0x385adc38", "kind": "FunctionDecl", "loc": { "offset": 11310, @@ -6669,7 +6669,7 @@ } } }, - "previousDecl": "0x2d37d878", + "previousDecl": "0x385ade68", "name": "StringTo", "mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6683,7 +6683,7 @@ }, "inner": [ { - "id": "0x2bf08c70", + "id": "0x3713ac50", "kind": "BuiltinType", "type": { "qualType": "bool" @@ -6692,7 +6692,7 @@ ] }, { - "id": "0x2d37d588", + "id": "0x385adb78", "kind": "ParmVarDecl", "loc": { "offset": 11338, @@ -6728,7 +6728,7 @@ ] } { - "id": "0x2d37db18", + "id": "0x385ae108", "kind": "FunctionDecl", "loc": { "offset": 11362, @@ -6758,7 +6758,7 @@ } } }, - "previousDecl": "0x2d37dd48", + "previousDecl": "0x385ae338", "name": "StringTo", "mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6772,7 +6772,7 @@ }, "inner": [ { - "id": "0x2bf08d10", + "id": "0x3713acf0", "kind": "BuiltinType", "type": { "qualType": "long" @@ -6781,7 +6781,7 @@ ] }, { - "id": "0x2d37da28", + "id": "0x385ae018", "kind": "ParmVarDecl", "loc": { "offset": 11390, @@ -6817,7 +6817,7 @@ ] } { - "id": "0x2d37ec60", + "id": "0x385af250", "kind": "FunctionTemplateDecl", "loc": { "offset": 11628, @@ -6852,7 +6852,7 @@ "name": "StringTo", "inner": [ { - "id": "0x2d37e648", + "id": "0x385aec38", "kind": "TemplateTypeParmDecl", "loc": { "offset": 11610, @@ -6888,7 +6888,7 @@ "index": 0 }, { - "id": "0x2d37ebb8", + "id": "0x385af1a8", "kind": "FunctionDecl", "loc": { "offset": 11628, @@ -6924,7 +6924,7 @@ }, "inner": [ { - "id": "0x2d37eaa0", + "id": "0x385af090", "kind": "ParmVarDecl", "loc": { "offset": 11669, @@ -6960,7 +6960,7 @@ } }, { - "id": "0x2d3b6478", + "id": "0x385e6c58", "kind": "CompoundStmt", "range": { "begin": { @@ -6983,7 +6983,7 @@ }, "inner": [ { - "id": "0x2d37ef50", + "id": "0x385af540", "kind": "DeclStmt", "range": { "begin": { @@ -7006,7 +7006,7 @@ }, "inner": [ { - "id": "0x2d37eee8", + "id": "0x385af4d8", "kind": "VarDecl", "loc": { "offset": 11699, @@ -7045,7 +7045,7 @@ ] }, { - "id": "0x2d3a9118", + "id": "0x385d98f8", "kind": "CallExpr", "range": { "begin": { @@ -7072,7 +7072,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d37ef88", + "id": "0x385af578", "kind": "CXXDependentScopeMemberExpr", "range": { "begin": { @@ -7100,7 +7100,7 @@ "member": "reserve", "inner": [ { - "id": "0x2d37ef68", + "id": "0x385af558", "kind": "DeclRefExpr", "range": { "begin": { @@ -7126,7 +7126,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eee8", + "id": "0x385af4d8", "kind": "VarDecl", "name": "result", "type": { @@ -7138,7 +7138,7 @@ ] }, { - "id": "0x2d3a8c00", + "id": "0x385d93e0", "kind": "CXXMemberCallExpr", "range": { "begin": { @@ -7161,12 +7161,12 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c532128" + "typeAliasDeclId": "0x37763e08" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3a8bd0", + "id": "0x385d93b0", "kind": "MemberExpr", "range": { "begin": { @@ -7192,10 +7192,10 @@ "valueCategory": "prvalue", "name": "size", "isArrow": false, - "referencedMemberDecl": "0x2d39e748", + "referencedMemberDecl": "0x385cef28", "inner": [ { - "id": "0x2d37efd0", + "id": "0x385af5c0", "kind": "DeclRefExpr", "range": { "begin": { @@ -7221,7 +7221,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eaa0", + "id": "0x385af090", "kind": "ParmVarDecl", "name": "strings", "type": { @@ -7236,7 +7236,7 @@ ] }, { - "id": "0x2d3b6250", + "id": "0x385e6a30", "kind": "CXXForRangeStmt", "range": { "begin": { @@ -7261,7 +7261,7 @@ "inner": [ {}, { - "id": "0x2d3a94c0", + "id": "0x385d9ca0", "kind": "DeclStmt", "range": { "begin": { @@ -7284,7 +7284,7 @@ }, "inner": [ { - "id": "0x2d3a92c0", + "id": "0x385d9aa0", "kind": "VarDecl", "loc": { "offset": 11768, @@ -7321,7 +7321,7 @@ "init": "c", "inner": [ { - "id": "0x2d3a9140", + "id": "0x385d9920", "kind": "DeclRefExpr", "range": { "begin": { @@ -7347,7 +7347,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eaa0", + "id": "0x385af090", "kind": "ParmVarDecl", "name": "strings", "type": { @@ -7360,7 +7360,7 @@ ] }, { - "id": "0x2d3b3a60", + "id": "0x385e4240", "kind": "DeclStmt", "range": { "begin": { @@ -7382,7 +7382,7 @@ }, "inner": [ { - "id": "0x2d3a9558", + "id": "0x385d9d38", "kind": "VarDecl", "loc": { "offset": 11766, @@ -7416,12 +7416,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "init": "c", "inner": [ { - "id": "0x2d3b3320", + "id": "0x385e3b00", "kind": "ExprWithCleanups", "range": { "begin": { @@ -7444,12 +7444,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b32f0", + "id": "0x385e3ad0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -7472,7 +7472,7 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "ctorType": { @@ -7483,7 +7483,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d3b30b8", + "id": "0x385e3898", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -7506,13 +7506,13 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "xvalue", "storageDuration": "full expression", "inner": [ { - "id": "0x2d3a96f8", + "id": "0x385d9ed8", "kind": "CXXMemberCallExpr", "range": { "begin": { @@ -7535,12 +7535,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3a96c8", + "id": "0x385d9ea8", "kind": "MemberExpr", "range": { "begin": { @@ -7566,10 +7566,10 @@ "valueCategory": "prvalue", "name": "begin", "isArrow": false, - "referencedMemberDecl": "0x2d39da60", + "referencedMemberDecl": "0x385ce240", "inner": [ { - "id": "0x2d3a94d8", + "id": "0x385d9cb8", "kind": "DeclRefExpr", "range": { "begin": { @@ -7595,7 +7595,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a92c0", + "id": "0x385d9aa0", "kind": "VarDecl", "name": "__range2", "type": { @@ -7618,7 +7618,7 @@ ] }, { - "id": "0x2d3b3a78", + "id": "0x385e4258", "kind": "DeclStmt", "range": { "begin": { @@ -7640,7 +7640,7 @@ }, "inner": [ { - "id": "0x2d3a9600", + "id": "0x385d9de0", "kind": "VarDecl", "loc": { "offset": 11766, @@ -7674,12 +7674,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "init": "c", "inner": [ { - "id": "0x2d3b3a48", + "id": "0x385e4228", "kind": "ExprWithCleanups", "range": { "begin": { @@ -7702,12 +7702,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b3a18", + "id": "0x385e41f8", "kind": "CXXConstructExpr", "range": { "begin": { @@ -7730,7 +7730,7 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "ctorType": { @@ -7741,7 +7741,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d3b3a00", + "id": "0x385e41e0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -7764,13 +7764,13 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "xvalue", "storageDuration": "full expression", "inner": [ { - "id": "0x2d3b33c8", + "id": "0x385e3ba8", "kind": "CXXMemberCallExpr", "range": { "begin": { @@ -7793,12 +7793,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b3398", + "id": "0x385e3b78", "kind": "MemberExpr", "range": { "begin": { @@ -7824,10 +7824,10 @@ "valueCategory": "prvalue", "name": "end", "isArrow": false, - "referencedMemberDecl": "0x2d39dc30", + "referencedMemberDecl": "0x385ce410", "inner": [ { - "id": "0x2d3a94f8", + "id": "0x385d9cd8", "kind": "DeclRefExpr", "range": { "begin": { @@ -7853,7 +7853,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a92c0", + "id": "0x385d9aa0", "kind": "VarDecl", "name": "__range2", "type": { @@ -7876,7 +7876,7 @@ ] }, { - "id": "0x2d3b5e70", + "id": "0x385e6650", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -7903,7 +7903,7 @@ "adl": true, "inner": [ { - "id": "0x2d3b5e58", + "id": "0x385e6638", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -7930,7 +7930,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d3b5dd8", + "id": "0x385e65b8", "kind": "DeclRefExpr", "range": { "begin": { @@ -7955,7 +7955,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3b4560", + "id": "0x385e4d40", "kind": "FunctionDecl", "name": "operator!=", "type": { @@ -7966,7 +7966,7 @@ ] }, { - "id": "0x2d3b5da8", + "id": "0x385e6588", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -7994,7 +7994,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3b3a90", + "id": "0x385e4270", "kind": "DeclRefExpr", "range": { "begin": { @@ -8017,24 +8017,24 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a9558", + "id": "0x385d9d38", "kind": "VarDecl", "name": "__begin2", "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" } } } ] }, { - "id": "0x2d3b5dc0", + "id": "0x385e65a0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -8062,7 +8062,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3b3ab0", + "id": "0x385e4290", "kind": "DeclRefExpr", "range": { "begin": { @@ -8085,17 +8085,17 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a9600", + "id": "0x385d9de0", "kind": "VarDecl", "name": "__end2", "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" } } } @@ -8104,7 +8104,7 @@ ] }, { - "id": "0x2d3b5f60", + "id": "0x385e6740", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -8131,7 +8131,7 @@ "valueCategory": "lvalue", "inner": [ { - "id": "0x2d3b5f48", + "id": "0x385e6728", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -8158,7 +8158,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d3b5ec8", + "id": "0x385e66a8", "kind": "DeclRefExpr", "range": { "begin": { @@ -8183,7 +8183,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3b0dc8", + "id": "0x385e15a8", "kind": "CXXMethodDecl", "name": "operator++", "type": { @@ -8194,7 +8194,7 @@ ] }, { - "id": "0x2d3b5ea8", + "id": "0x385e6688", "kind": "DeclRefExpr", "range": { "begin": { @@ -8217,24 +8217,24 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a9558", + "id": "0x385d9d38", "kind": "VarDecl", "name": "__begin2", "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" } } } ] }, { - "id": "0x2d3a9238", + "id": "0x385d9a18", "kind": "DeclStmt", "range": { "begin": { @@ -8256,7 +8256,7 @@ }, "inner": [ { - "id": "0x2d3a91d0", + "id": "0x385d99b0", "kind": "VarDecl", "loc": { "offset": 11764, @@ -8292,7 +8292,7 @@ "init": "c", "inner": [ { - "id": "0x2d3b6080", + "id": "0x385e6860", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -8319,7 +8319,7 @@ "valueCategory": "lvalue", "inner": [ { - "id": "0x2d3b6068", + "id": "0x385e6848", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -8346,7 +8346,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d3b5ff0", + "id": "0x385e67d0", "kind": "DeclRefExpr", "range": { "begin": { @@ -8371,7 +8371,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3b0a80", + "id": "0x385e1260", "kind": "CXXMethodDecl", "name": "operator*", "type": { @@ -8382,7 +8382,7 @@ ] }, { - "id": "0x2d3b5fd8", + "id": "0x385e67b8", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -8409,7 +8409,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3b5f90", + "id": "0x385e6770", "kind": "DeclRefExpr", "range": { "begin": { @@ -8432,17 +8432,17 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a9558", + "id": "0x385d9d38", "kind": "VarDecl", "name": "__begin2", "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" } } } @@ -8455,7 +8455,7 @@ ] }, { - "id": "0x2d3b6418", + "id": "0x385e6bf8", "kind": "CallExpr", "range": { "begin": { @@ -8482,7 +8482,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b62d0", + "id": "0x385e6ab0", "kind": "CXXDependentScopeMemberExpr", "range": { "begin": { @@ -8510,7 +8510,7 @@ "member": "push_back", "inner": [ { - "id": "0x2d3b62b0", + "id": "0x385e6a90", "kind": "DeclRefExpr", "range": { "begin": { @@ -8536,7 +8536,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eee8", + "id": "0x385af4d8", "kind": "VarDecl", "name": "result", "type": { @@ -8548,7 +8548,7 @@ ] }, { - "id": "0x2d3b63f0", + "id": "0x385e6bd0", "kind": "CallExpr", "range": { "begin": { @@ -8574,7 +8574,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b6348", + "id": "0x385e6b28", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -8602,24 +8602,24 @@ "name": "StringTo", "lookups": [ { - "id": "0x2d37ec60", + "id": "0x385af250", "kind": "FunctionTemplateDecl", "name": "StringTo" }, { - "id": "0x2d3750e0", + "id": "0x385a56d0", "kind": "FunctionTemplateDecl", "name": "StringTo" }, { - "id": "0x2d33fd20", + "id": "0x3856fae0", "kind": "FunctionTemplateDecl", "name": "StringTo" } ] }, { - "id": "0x2d3b63d0", + "id": "0x385e6bb0", "kind": "DeclRefExpr", "range": { "begin": { @@ -8645,7 +8645,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a91d0", + "id": "0x385d99b0", "kind": "VarDecl", "name": "s", "type": { @@ -8660,7 +8660,7 @@ ] }, { - "id": "0x2d3b6460", + "id": "0x385e6c40", "kind": "ReturnStmt", "range": { "begin": { @@ -8683,7 +8683,7 @@ }, "inner": [ { - "id": "0x2d3b6440", + "id": "0x385e6c20", "kind": "DeclRefExpr", "range": { "begin": { @@ -8709,7 +8709,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eee8", + "id": "0x385af4d8", "kind": "VarDecl", "name": "result", "type": { @@ -8727,29 +8727,29 @@ ] } { - "id": "0x7f0da6e85d18", + "id": "0x7feb10ea9db8", "kind": "FunctionDecl", "loc": { - "offset": 21816, + "offset": 21549, "file": "ToString.cpp", - "line": 706, + "line": 698, "col": 32, "tokLen": 8 }, "range": { "begin": { - "offset": 21785, + "offset": 21518, "col": 1, "tokLen": 8 }, "end": { - "offset": 22375, - "line": 724, + "offset": 22108, + "line": 716, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3759e8", + "previousDecl": "0x385a5fd8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -8763,13 +8763,13 @@ }, "inner": [ { - "id": "0x2cd03d20", + "id": "0x37f35630", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::detectorType" }, "decl": { - "id": "0x2cd03c80", + "id": "0x37f35590", "kind": "EnumDecl", "name": "detectorType" } @@ -8777,22 +8777,22 @@ ] }, { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "loc": { - "offset": 21844, - "line": 706, + "offset": 21577, + "line": 698, "col": 60, "tokLen": 1 }, "range": { "begin": { - "offset": 21825, + "offset": 21558, "col": 41, "tokLen": 5 }, "end": { - "offset": 21844, + "offset": 21577, "col": 60, "tokLen": 1 } @@ -8804,52 +8804,52 @@ } }, { - "id": "0x7f0da6e8ff78", + "id": "0x7feb10eb4018", "kind": "CompoundStmt", "range": { "begin": { - "offset": 21847, + "offset": 21580, "col": 63, "tokLen": 1 }, "end": { - "offset": 22375, - "line": 724, + "offset": 22108, + "line": 716, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e87208", + "id": "0x7feb10eab2a8", "kind": "IfStmt", "range": { "begin": { - "offset": 21853, - "line": 707, + "offset": 21586, + "line": 699, "col": 5, "tokLen": 2 }, "end": { - "offset": 21892, - "line": 708, + "offset": 21625, + "line": 700, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e87158", + "id": "0x7feb10eab1f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 21857, - "line": 707, + "offset": 21590, + "line": 699, "col": 9, "tokLen": 1 }, "end": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 } @@ -8861,16 +8861,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e87140", + "id": "0x7feb10eab1e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21859, + "offset": 21592, "col": 11, "tokLen": 2 }, "end": { - "offset": 21859, + "offset": 21592, "col": 11, "tokLen": 2 } @@ -8882,16 +8882,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e87120", + "id": "0x7feb10eab1c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21859, + "offset": 21592, "col": 11, "tokLen": 2 }, "end": { - "offset": 21859, + "offset": 21592, "col": 11, "tokLen": 2 } @@ -8901,7 +8901,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -8912,16 +8912,16 @@ ] }, { - "id": "0x7f0da6e85f00", + "id": "0x7feb10ea9fa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21857, + "offset": 21590, "col": 9, "tokLen": 1 }, "end": { - "offset": 21857, + "offset": 21590, "col": 9, "tokLen": 1 } @@ -8929,11 +8929,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -8942,16 +8942,16 @@ } }, { - "id": "0x7f0da6e87108", + "id": "0x7feb10eab1a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 }, "end": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 } @@ -8963,16 +8963,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e85f20", + "id": "0x7feb10ea9fc0", "kind": "StringLiteral", "range": { "begin": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 }, "end": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 } @@ -8988,33 +8988,33 @@ ] }, { - "id": "0x7f0da6e871f8", + "id": "0x7feb10eab298", "kind": "ReturnStmt", "range": { "begin": { - "offset": 21879, - "line": 708, + "offset": 21612, + "line": 700, "col": 9, "tokLen": 6 }, "end": { - "offset": 21892, + "offset": 21625, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e871c8", + "id": "0x7feb10eab268", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21886, + "offset": 21619, "col": 16, "tokLen": 4 }, "end": { - "offset": 21892, + "offset": 21625, "col": 22, "tokLen": 5 } @@ -9024,7 +9024,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03d90", + "id": "0x37f356a0", "kind": "EnumConstantDecl", "name": "EIGER", "type": { @@ -9037,35 +9037,35 @@ ] }, { - "id": "0x7f0da6e88538", + "id": "0x7feb10eac5d8", "kind": "IfStmt", "range": { "begin": { - "offset": 21903, - "line": 709, + "offset": 21636, + "line": 701, "col": 5, "tokLen": 2 }, "end": { - "offset": 21945, - "line": 710, + "offset": 21678, + "line": 702, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e88488", + "id": "0x7feb10eac528", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 21907, - "line": 709, + "offset": 21640, + "line": 701, "col": 9, "tokLen": 1 }, "end": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 } @@ -9077,16 +9077,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e88470", + "id": "0x7feb10eac510", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21909, + "offset": 21642, "col": 11, "tokLen": 2 }, "end": { - "offset": 21909, + "offset": 21642, "col": 11, "tokLen": 2 } @@ -9098,16 +9098,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e88450", + "id": "0x7feb10eac4f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21909, + "offset": 21642, "col": 11, "tokLen": 2 }, "end": { - "offset": 21909, + "offset": 21642, "col": 11, "tokLen": 2 } @@ -9117,7 +9117,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9128,16 +9128,16 @@ ] }, { - "id": "0x7f0da6e87228", + "id": "0x7feb10eab2c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21907, + "offset": 21640, "col": 9, "tokLen": 1 }, "end": { - "offset": 21907, + "offset": 21640, "col": 9, "tokLen": 1 } @@ -9145,11 +9145,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -9158,16 +9158,16 @@ } }, { - "id": "0x7f0da6e88438", + "id": "0x7feb10eac4d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 }, "end": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 } @@ -9179,16 +9179,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e87248", + "id": "0x7feb10eab2e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 }, "end": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 } @@ -9204,33 +9204,33 @@ ] }, { - "id": "0x7f0da6e88528", + "id": "0x7feb10eac5c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 21932, - "line": 710, + "offset": 21665, + "line": 702, "col": 9, "tokLen": 6 }, "end": { - "offset": 21945, + "offset": 21678, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e884f8", + "id": "0x7feb10eac598", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21939, + "offset": 21672, "col": 16, "tokLen": 4 }, "end": { - "offset": 21945, + "offset": 21678, "col": 22, "tokLen": 8 } @@ -9240,7 +9240,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03de0", + "id": "0x37f35718", "kind": "EnumConstantDecl", "name": "GOTTHARD", "type": { @@ -9253,35 +9253,35 @@ ] }, { - "id": "0x7f0da6e89868", + "id": "0x7feb10ead908", "kind": "IfStmt", "range": { "begin": { - "offset": 21959, - "line": 711, + "offset": 21692, + "line": 703, "col": 5, "tokLen": 2 }, "end": { - "offset": 22001, - "line": 712, + "offset": 21734, + "line": 704, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e897b8", + "id": "0x7feb10ead858", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 21963, - "line": 711, + "offset": 21696, + "line": 703, "col": 9, "tokLen": 1 }, "end": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 } @@ -9293,16 +9293,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e897a0", + "id": "0x7feb10ead840", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21965, + "offset": 21698, "col": 11, "tokLen": 2 }, "end": { - "offset": 21965, + "offset": 21698, "col": 11, "tokLen": 2 } @@ -9314,16 +9314,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e89780", + "id": "0x7feb10ead820", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21965, + "offset": 21698, "col": 11, "tokLen": 2 }, "end": { - "offset": 21965, + "offset": 21698, "col": 11, "tokLen": 2 } @@ -9333,7 +9333,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9344,16 +9344,16 @@ ] }, { - "id": "0x7f0da6e88558", + "id": "0x7feb10eac5f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21963, + "offset": 21696, "col": 9, "tokLen": 1 }, "end": { - "offset": 21963, + "offset": 21696, "col": 9, "tokLen": 1 } @@ -9361,11 +9361,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -9374,16 +9374,16 @@ } }, { - "id": "0x7f0da6e89768", + "id": "0x7feb10ead808", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 }, "end": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 } @@ -9395,16 +9395,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e88578", + "id": "0x7feb10eac618", "kind": "StringLiteral", "range": { "begin": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 }, "end": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 } @@ -9420,33 +9420,33 @@ ] }, { - "id": "0x7f0da6e89858", + "id": "0x7feb10ead8f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 21988, - "line": 712, + "offset": 21721, + "line": 704, "col": 9, "tokLen": 6 }, "end": { - "offset": 22001, + "offset": 21734, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e89828", + "id": "0x7feb10ead8c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21995, + "offset": 21728, "col": 16, "tokLen": 4 }, "end": { - "offset": 22001, + "offset": 21734, "col": 22, "tokLen": 8 } @@ -9456,7 +9456,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03e30", + "id": "0x37f35768", "kind": "EnumConstantDecl", "name": "JUNGFRAU", "type": { @@ -9469,35 +9469,35 @@ ] }, { - "id": "0x7f0da6e8ab98", + "id": "0x7feb10eaec38", "kind": "IfStmt", "range": { "begin": { - "offset": 22015, - "line": 713, + "offset": 21748, + "line": 705, "col": 5, "tokLen": 2 }, "end": { - "offset": 22062, - "line": 714, + "offset": 21795, + "line": 706, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e8aae8", + "id": "0x7feb10eaeb88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22019, - "line": 713, + "offset": 21752, + "line": 705, "col": 9, "tokLen": 1 }, "end": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 } @@ -9509,16 +9509,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8aad0", + "id": "0x7feb10eaeb70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22021, + "offset": 21754, "col": 11, "tokLen": 2 }, "end": { - "offset": 22021, + "offset": 21754, "col": 11, "tokLen": 2 } @@ -9530,16 +9530,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8aab0", + "id": "0x7feb10eaeb50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22021, + "offset": 21754, "col": 11, "tokLen": 2 }, "end": { - "offset": 22021, + "offset": 21754, "col": 11, "tokLen": 2 } @@ -9549,7 +9549,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9560,16 +9560,16 @@ ] }, { - "id": "0x7f0da6e89888", + "id": "0x7feb10ead928", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22019, + "offset": 21752, "col": 9, "tokLen": 1 }, "end": { - "offset": 22019, + "offset": 21752, "col": 9, "tokLen": 1 } @@ -9577,11 +9577,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -9590,16 +9590,16 @@ } }, { - "id": "0x7f0da6e8aa98", + "id": "0x7feb10eaeb38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 }, "end": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 } @@ -9611,16 +9611,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e898a8", + "id": "0x7feb10ead948", "kind": "StringLiteral", "range": { "begin": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 }, "end": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 } @@ -9636,33 +9636,33 @@ ] }, { - "id": "0x7f0da6e8ab88", + "id": "0x7feb10eaec28", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22049, - "line": 714, + "offset": 21782, + "line": 706, "col": 9, "tokLen": 6 }, "end": { - "offset": 22062, + "offset": 21795, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e8ab58", + "id": "0x7feb10eaebf8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22056, + "offset": 21789, "col": 16, "tokLen": 4 }, "end": { - "offset": 22062, + "offset": 21795, "col": 22, "tokLen": 13 } @@ -9672,7 +9672,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03e80", + "id": "0x37f357b8", "kind": "EnumConstantDecl", "name": "CHIPTESTBOARD", "type": { @@ -9685,35 +9685,35 @@ ] }, { - "id": "0x7f0da6e8bec8", + "id": "0x7feb10eaff68", "kind": "IfStmt", "range": { "begin": { - "offset": 22081, - "line": 715, + "offset": 21814, + "line": 707, "col": 5, "tokLen": 2 }, "end": { - "offset": 22121, - "line": 716, + "offset": 21854, + "line": 708, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6e8be18", + "id": "0x7feb10eafeb8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22085, - "line": 715, + "offset": 21818, + "line": 707, "col": 9, "tokLen": 1 }, "end": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 } @@ -9725,16 +9725,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8be00", + "id": "0x7feb10eafea0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22087, + "offset": 21820, "col": 11, "tokLen": 2 }, "end": { - "offset": 22087, + "offset": 21820, "col": 11, "tokLen": 2 } @@ -9746,16 +9746,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8bde0", + "id": "0x7feb10eafe80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22087, + "offset": 21820, "col": 11, "tokLen": 2 }, "end": { - "offset": 22087, + "offset": 21820, "col": 11, "tokLen": 2 } @@ -9765,7 +9765,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9776,16 +9776,16 @@ ] }, { - "id": "0x7f0da6e8abb8", + "id": "0x7feb10eaec58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22085, + "offset": 21818, "col": 9, "tokLen": 1 }, "end": { - "offset": 22085, + "offset": 21818, "col": 9, "tokLen": 1 } @@ -9793,11 +9793,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -9806,16 +9806,16 @@ } }, { - "id": "0x7f0da6e8bdc8", + "id": "0x7feb10eafe68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 }, "end": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 } @@ -9827,16 +9827,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8abd8", + "id": "0x7feb10eaec78", "kind": "StringLiteral", "range": { "begin": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 }, "end": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 } @@ -9852,33 +9852,33 @@ ] }, { - "id": "0x7f0da6e8beb8", + "id": "0x7feb10eaff58", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22108, - "line": 716, + "offset": 21841, + "line": 708, "col": 9, "tokLen": 6 }, "end": { - "offset": 22121, + "offset": 21854, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6e8be88", + "id": "0x7feb10eaff28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22115, + "offset": 21848, "col": 16, "tokLen": 4 }, "end": { - "offset": 22121, + "offset": 21854, "col": 22, "tokLen": 6 } @@ -9888,7 +9888,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03ed0", + "id": "0x37f35808", "kind": "EnumConstantDecl", "name": "MOENCH", "type": { @@ -9901,35 +9901,35 @@ ] }, { - "id": "0x7f0da6e8d1f8", + "id": "0x7feb10eb1298", "kind": "IfStmt", "range": { "begin": { - "offset": 22133, - "line": 717, + "offset": 21866, + "line": 709, "col": 5, "tokLen": 2 }, "end": { - "offset": 22174, - "line": 718, + "offset": 21907, + "line": 710, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6e8d148", + "id": "0x7feb10eb11e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22137, - "line": 717, + "offset": 21870, + "line": 709, "col": 9, "tokLen": 1 }, "end": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 } @@ -9941,16 +9941,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8d130", + "id": "0x7feb10eb11d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22139, + "offset": 21872, "col": 11, "tokLen": 2 }, "end": { - "offset": 22139, + "offset": 21872, "col": 11, "tokLen": 2 } @@ -9962,16 +9962,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8d110", + "id": "0x7feb10eb11b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22139, + "offset": 21872, "col": 11, "tokLen": 2 }, "end": { - "offset": 22139, + "offset": 21872, "col": 11, "tokLen": 2 } @@ -9981,7 +9981,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9992,16 +9992,16 @@ ] }, { - "id": "0x7f0da6e8bee8", + "id": "0x7feb10eaff88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22137, + "offset": 21870, "col": 9, "tokLen": 1 }, "end": { - "offset": 22137, + "offset": 21870, "col": 9, "tokLen": 1 } @@ -10009,11 +10009,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -10022,16 +10022,16 @@ } }, { - "id": "0x7f0da6e8d0f8", + "id": "0x7feb10eb1198", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 }, "end": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 } @@ -10043,16 +10043,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8bf08", + "id": "0x7feb10eaffa8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 }, "end": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 } @@ -10068,33 +10068,33 @@ ] }, { - "id": "0x7f0da6e8d1e8", + "id": "0x7feb10eb1288", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22161, - "line": 718, + "offset": 21894, + "line": 710, "col": 9, "tokLen": 6 }, "end": { - "offset": 22174, + "offset": 21907, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6e8d1b8", + "id": "0x7feb10eb1258", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22168, + "offset": 21901, "col": 16, "tokLen": 4 }, "end": { - "offset": 22174, + "offset": 21907, "col": 22, "tokLen": 7 } @@ -10104,7 +10104,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03f20", + "id": "0x37f35858", "kind": "EnumConstantDecl", "name": "MYTHEN3", "type": { @@ -10117,35 +10117,35 @@ ] }, { - "id": "0x7f0da6e8e528", + "id": "0x7feb10eb25c8", "kind": "IfStmt", "range": { "begin": { - "offset": 22187, - "line": 719, + "offset": 21920, + "line": 711, "col": 5, "tokLen": 2 }, "end": { - "offset": 22230, - "line": 720, + "offset": 21963, + "line": 712, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e8e478", + "id": "0x7feb10eb2518", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22191, - "line": 719, + "offset": 21924, + "line": 711, "col": 9, "tokLen": 1 }, "end": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 } @@ -10157,16 +10157,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8e460", + "id": "0x7feb10eb2500", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22193, + "offset": 21926, "col": 11, "tokLen": 2 }, "end": { - "offset": 22193, + "offset": 21926, "col": 11, "tokLen": 2 } @@ -10178,16 +10178,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8e440", + "id": "0x7feb10eb24e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22193, + "offset": 21926, "col": 11, "tokLen": 2 }, "end": { - "offset": 22193, + "offset": 21926, "col": 11, "tokLen": 2 } @@ -10197,7 +10197,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -10208,16 +10208,16 @@ ] }, { - "id": "0x7f0da6e8d218", + "id": "0x7feb10eb12b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22191, + "offset": 21924, "col": 9, "tokLen": 1 }, "end": { - "offset": 22191, + "offset": 21924, "col": 9, "tokLen": 1 } @@ -10225,11 +10225,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -10238,16 +10238,16 @@ } }, { - "id": "0x7f0da6e8e428", + "id": "0x7feb10eb24c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 }, "end": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 } @@ -10259,16 +10259,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8d238", + "id": "0x7feb10eb12d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 }, "end": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 } @@ -10284,33 +10284,33 @@ ] }, { - "id": "0x7f0da6e8e518", + "id": "0x7feb10eb25b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22217, - "line": 720, + "offset": 21950, + "line": 712, "col": 9, "tokLen": 6 }, "end": { - "offset": 22230, + "offset": 21963, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e8e4e8", + "id": "0x7feb10eb2588", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22224, + "offset": 21957, "col": 16, "tokLen": 4 }, "end": { - "offset": 22230, + "offset": 21963, "col": 22, "tokLen": 9 } @@ -10320,7 +10320,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03f70", + "id": "0x37f358a8", "kind": "EnumConstantDecl", "name": "GOTTHARD2", "type": { @@ -10333,35 +10333,35 @@ ] }, { - "id": "0x7f0da6e8f898", + "id": "0x7feb10eb3938", "kind": "IfStmt", "range": { "begin": { - "offset": 22245, - "line": 721, + "offset": 21978, + "line": 713, "col": 5, "tokLen": 2 }, "end": { - "offset": 22299, - "line": 722, + "offset": 22032, + "line": 714, "col": 22, "tokLen": 20 } }, "inner": [ { - "id": "0x7f0da6e8f7e8", + "id": "0x7feb10eb3888", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22249, - "line": 721, + "offset": 21982, + "line": 713, "col": 9, "tokLen": 1 }, "end": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 } @@ -10373,16 +10373,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8f7d0", + "id": "0x7feb10eb3870", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22251, + "offset": 21984, "col": 11, "tokLen": 2 }, "end": { - "offset": 22251, + "offset": 21984, "col": 11, "tokLen": 2 } @@ -10394,16 +10394,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8f7b0", + "id": "0x7feb10eb3850", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22251, + "offset": 21984, "col": 11, "tokLen": 2 }, "end": { - "offset": 22251, + "offset": 21984, "col": 11, "tokLen": 2 } @@ -10413,7 +10413,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -10424,16 +10424,16 @@ ] }, { - "id": "0x7f0da6e8e548", + "id": "0x7feb10eb25e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22249, + "offset": 21982, "col": 9, "tokLen": 1 }, "end": { - "offset": 22249, + "offset": 21982, "col": 9, "tokLen": 1 } @@ -10441,11 +10441,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -10454,16 +10454,16 @@ } }, { - "id": "0x7f0da6e8f798", + "id": "0x7feb10eb3838", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 }, "end": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 } @@ -10475,16 +10475,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8e568", + "id": "0x7feb10eb2608", "kind": "StringLiteral", "range": { "begin": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 }, "end": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 } @@ -10500,33 +10500,33 @@ ] }, { - "id": "0x7f0da6e8f888", + "id": "0x7feb10eb3928", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22286, - "line": 722, + "offset": 22019, + "line": 714, "col": 9, "tokLen": 6 }, "end": { - "offset": 22299, + "offset": 22032, "col": 22, "tokLen": 20 } }, "inner": [ { - "id": "0x7f0da6e8f858", + "id": "0x7feb10eb38f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22293, + "offset": 22026, "col": 16, "tokLen": 4 }, "end": { - "offset": 22299, + "offset": 22032, "col": 22, "tokLen": 20 } @@ -10536,7 +10536,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03fc0", + "id": "0x37f358f8", "kind": "EnumConstantDecl", "name": "XILINX_CHIPTESTBOARD", "type": { @@ -10549,17 +10549,17 @@ ] }, { - "id": "0x7f0da6e8ff60", + "id": "0x7feb10eb4000", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 22325, - "line": 723, + "offset": 22058, + "line": 715, "col": 5, "tokLen": 5 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10571,16 +10571,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e8ff48", + "id": "0x7feb10eb3fe8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 22325, + "offset": 22058, "col": 5, "tokLen": 5 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10591,16 +10591,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e8ff18", + "id": "0x7feb10eb3fb8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10618,16 +10618,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e8ff00", + "id": "0x7feb10eb3fa0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10640,16 +10640,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e8fed8", + "id": "0x7feb10eb3f78", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10661,7 +10661,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -10670,16 +10670,16 @@ }, "inner": [ { - "id": "0x7f0da6e8feb8", + "id": "0x7feb10eb3f58", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10689,9 +10689,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e8feb0", + "temp": "0x7feb10eb3f50", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -10700,16 +10700,16 @@ }, "inner": [ { - "id": "0x7f0da6e8fe80", + "id": "0x7feb10eb3f20", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10726,16 +10726,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e8fe68", + "id": "0x7feb10eb3f08", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10749,16 +10749,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e8fe50", + "id": "0x7feb10eb3ef0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10771,16 +10771,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e8fe30", + "id": "0x7feb10eb3ed0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10790,9 +10790,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e8fe28", + "temp": "0x7feb10eb3ec8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -10801,16 +10801,16 @@ }, "inner": [ { - "id": "0x7f0da6e8fdf0", + "id": "0x7feb10eb3e90", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10823,16 +10823,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8fdd8", + "id": "0x7feb10eb3e78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22369, + "offset": 22102, "col": 49, "tokLen": 1 }, "end": { - "offset": 22369, + "offset": 22102, "col": 49, "tokLen": 1 } @@ -10844,16 +10844,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8fdb8", + "id": "0x7feb10eb3e58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22369, + "offset": 22102, "col": 49, "tokLen": 1 }, "end": { - "offset": 22369, + "offset": 22102, "col": 49, "tokLen": 1 } @@ -10863,7 +10863,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -10874,16 +10874,16 @@ ] }, { - "id": "0x7f0da6e8fda0", + "id": "0x7feb10eb3e40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 } @@ -10895,16 +10895,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8f8c8", + "id": "0x7feb10eb3968", "kind": "StringLiteral", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 } @@ -10918,16 +10918,16 @@ ] }, { - "id": "0x7f0da6e8f8f8", + "id": "0x7feb10eb3998", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10935,11 +10935,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -10974,29 +10974,29 @@ ] } { - "id": "0x7f0da6e90148", + "id": "0x7feb10eb41e8", "kind": "FunctionDecl", "loc": { - "offset": 22413, + "offset": 22146, "file": "ToString.cpp", - "line": 726, + "line": 718, "col": 36, "tokLen": 8 }, "range": { "begin": { - "offset": 22378, + "offset": 22111, "col": 1, "tokLen": 8 }, "end": { - "offset": 23662, - "line": 768, + "offset": 23395, + "line": 760, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d375f38", + "previousDecl": "0x385a6528", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -11010,13 +11010,13 @@ }, "inner": [ { - "id": "0x2cdc0300", + "id": "0x37ff0eb0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::detectorSettings" }, "decl": { - "id": "0x2cdc0258", + "id": "0x37ff0e08", "kind": "EnumDecl", "name": "detectorSettings" } @@ -11024,22 +11024,22 @@ ] }, { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "loc": { - "offset": 22441, - "line": 726, + "offset": 22174, + "line": 718, "col": 64, "tokLen": 1 }, "range": { "begin": { - "offset": 22422, + "offset": 22155, "col": 45, "tokLen": 5 }, "end": { - "offset": 22441, + "offset": 22174, "col": 64, "tokLen": 1 } @@ -11051,52 +11051,52 @@ } }, { - "id": "0x7f0da6e67978", + "id": "0x38727888", "kind": "CompoundStmt", "range": { "begin": { - "offset": 22444, + "offset": 22177, "col": 67, "tokLen": 1 }, "end": { - "offset": 23662, - "line": 768, + "offset": 23395, + "line": 760, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e91638", + "id": "0x7feb10eb56d8", "kind": "IfStmt", "range": { "begin": { - "offset": 22450, - "line": 727, + "offset": 22183, + "line": 719, "col": 5, "tokLen": 2 }, "end": { - "offset": 22492, - "line": 728, + "offset": 22225, + "line": 720, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e91588", + "id": "0x7feb10eb5628", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22454, - "line": 727, + "offset": 22187, + "line": 719, "col": 9, "tokLen": 1 }, "end": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 } @@ -11108,16 +11108,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e91570", + "id": "0x7feb10eb5610", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22456, + "offset": 22189, "col": 11, "tokLen": 2 }, "end": { - "offset": 22456, + "offset": 22189, "col": 11, "tokLen": 2 } @@ -11129,16 +11129,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e91550", + "id": "0x7feb10eb55f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22456, + "offset": 22189, "col": 11, "tokLen": 2 }, "end": { - "offset": 22456, + "offset": 22189, "col": 11, "tokLen": 2 } @@ -11148,7 +11148,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -11159,16 +11159,16 @@ ] }, { - "id": "0x7f0da6e90330", + "id": "0x7feb10eb43d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22454, + "offset": 22187, "col": 9, "tokLen": 1 }, "end": { - "offset": 22454, + "offset": 22187, "col": 9, "tokLen": 1 } @@ -11176,11 +11176,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -11189,16 +11189,16 @@ } }, { - "id": "0x7f0da6e91538", + "id": "0x7feb10eb55d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 }, "end": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 } @@ -11210,16 +11210,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e90350", + "id": "0x7feb10eb43f0", "kind": "StringLiteral", "range": { "begin": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 }, "end": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 } @@ -11235,33 +11235,33 @@ ] }, { - "id": "0x7f0da6e91628", + "id": "0x7feb10eb56c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22479, - "line": 728, + "offset": 22212, + "line": 720, "col": 9, "tokLen": 6 }, "end": { - "offset": 22492, + "offset": 22225, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e915f8", + "id": "0x7feb10eb5698", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22486, + "offset": 22219, "col": 16, "tokLen": 4 }, "end": { - "offset": 22492, + "offset": 22225, "col": 22, "tokLen": 8 } @@ -11271,7 +11271,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0320", + "id": "0x37ff0ed0", "kind": "EnumConstantDecl", "name": "STANDARD", "type": { @@ -11284,35 +11284,35 @@ ] }, { - "id": "0x7f0da6e92968", + "id": "0x7feb10eb6a08", "kind": "IfStmt", "range": { "begin": { - "offset": 22506, - "line": 729, + "offset": 22239, + "line": 721, "col": 5, "tokLen": 2 }, "end": { - "offset": 22544, - "line": 730, + "offset": 22277, + "line": 722, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6e928b8", + "id": "0x7feb10eb6958", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22510, - "line": 729, + "offset": 22243, + "line": 721, "col": 9, "tokLen": 1 }, "end": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 } @@ -11324,16 +11324,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e928a0", + "id": "0x7feb10eb6940", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22512, + "offset": 22245, "col": 11, "tokLen": 2 }, "end": { - "offset": 22512, + "offset": 22245, "col": 11, "tokLen": 2 } @@ -11345,16 +11345,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e92880", + "id": "0x7feb10eb6920", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22512, + "offset": 22245, "col": 11, "tokLen": 2 }, "end": { - "offset": 22512, + "offset": 22245, "col": 11, "tokLen": 2 } @@ -11364,7 +11364,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -11375,16 +11375,16 @@ ] }, { - "id": "0x7f0da6e91658", + "id": "0x7feb10eb56f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22510, + "offset": 22243, "col": 9, "tokLen": 1 }, "end": { - "offset": 22510, + "offset": 22243, "col": 9, "tokLen": 1 } @@ -11392,11 +11392,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -11405,16 +11405,16 @@ } }, { - "id": "0x7f0da6e92868", + "id": "0x7feb10eb6908", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 }, "end": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 } @@ -11426,16 +11426,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e91678", + "id": "0x7feb10eb5718", "kind": "StringLiteral", "range": { "begin": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 }, "end": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 } @@ -11451,33 +11451,33 @@ ] }, { - "id": "0x7f0da6e92958", + "id": "0x7feb10eb69f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22531, - "line": 730, + "offset": 22264, + "line": 722, "col": 9, "tokLen": 6 }, "end": { - "offset": 22544, + "offset": 22277, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6e92928", + "id": "0x7feb10eb69c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22538, + "offset": 22271, "col": 16, "tokLen": 4 }, "end": { - "offset": 22544, + "offset": 22277, "col": 22, "tokLen": 4 } @@ -11487,7 +11487,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0370", + "id": "0x37ff0f20", "kind": "EnumConstantDecl", "name": "FAST", "type": { @@ -11500,35 +11500,35 @@ ] }, { - "id": "0x7f0da6e93c98", + "id": "0x7feb10eb7d38", "kind": "IfStmt", "range": { "begin": { - "offset": 22554, - "line": 731, + "offset": 22287, + "line": 723, "col": 5, "tokLen": 2 }, "end": { - "offset": 22596, - "line": 732, + "offset": 22329, + "line": 724, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e93be8", + "id": "0x7feb10eb7c88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22558, - "line": 731, + "offset": 22291, + "line": 723, "col": 9, "tokLen": 1 }, "end": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 } @@ -11540,16 +11540,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e93bd0", + "id": "0x7feb10eb7c70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22560, + "offset": 22293, "col": 11, "tokLen": 2 }, "end": { - "offset": 22560, + "offset": 22293, "col": 11, "tokLen": 2 } @@ -11561,16 +11561,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e93bb0", + "id": "0x7feb10eb7c50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22560, + "offset": 22293, "col": 11, "tokLen": 2 }, "end": { - "offset": 22560, + "offset": 22293, "col": 11, "tokLen": 2 } @@ -11580,7 +11580,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -11591,16 +11591,16 @@ ] }, { - "id": "0x7f0da6e92988", + "id": "0x7feb10eb6a28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22558, + "offset": 22291, "col": 9, "tokLen": 1 }, "end": { - "offset": 22558, + "offset": 22291, "col": 9, "tokLen": 1 } @@ -11608,11 +11608,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -11621,16 +11621,16 @@ } }, { - "id": "0x7f0da6e93b98", + "id": "0x7feb10eb7c38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 }, "end": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 } @@ -11642,16 +11642,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e929a8", + "id": "0x7feb10eb6a48", "kind": "StringLiteral", "range": { "begin": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 }, "end": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 } @@ -11667,33 +11667,33 @@ ] }, { - "id": "0x7f0da6e93c88", + "id": "0x7feb10eb7d28", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22583, - "line": 732, + "offset": 22316, + "line": 724, "col": 9, "tokLen": 6 }, "end": { - "offset": 22596, + "offset": 22329, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e93c58", + "id": "0x7feb10eb7cf8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22590, + "offset": 22323, "col": 16, "tokLen": 4 }, "end": { - "offset": 22596, + "offset": 22329, "col": 22, "tokLen": 8 } @@ -11703,7 +11703,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc03c0", + "id": "0x37ff0f70", "kind": "EnumConstantDecl", "name": "HIGHGAIN", "type": { @@ -11716,35 +11716,35 @@ ] }, { - "id": "0x7f0da6e94fc8", + "id": "0x7feb10eb9068", "kind": "IfStmt", "range": { "begin": { - "offset": 22610, - "line": 733, + "offset": 22343, + "line": 725, "col": 5, "tokLen": 2 }, "end": { - "offset": 22655, - "line": 734, + "offset": 22388, + "line": 726, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e94f18", + "id": "0x7feb10eb8fb8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22614, - "line": 733, + "offset": 22347, + "line": 725, "col": 9, "tokLen": 1 }, "end": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 } @@ -11756,16 +11756,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e94f00", + "id": "0x7feb10eb8fa0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22616, + "offset": 22349, "col": 11, "tokLen": 2 }, "end": { - "offset": 22616, + "offset": 22349, "col": 11, "tokLen": 2 } @@ -11777,16 +11777,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e94ee0", + "id": "0x7feb10eb8f80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22616, + "offset": 22349, "col": 11, "tokLen": 2 }, "end": { - "offset": 22616, + "offset": 22349, "col": 11, "tokLen": 2 } @@ -11796,7 +11796,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -11807,16 +11807,16 @@ ] }, { - "id": "0x7f0da6e93cb8", + "id": "0x7feb10eb7d58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22614, + "offset": 22347, "col": 9, "tokLen": 1 }, "end": { - "offset": 22614, + "offset": 22347, "col": 9, "tokLen": 1 } @@ -11824,11 +11824,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -11837,16 +11837,16 @@ } }, { - "id": "0x7f0da6e94ec8", + "id": "0x7feb10eb8f68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 }, "end": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 } @@ -11858,16 +11858,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e93cd8", + "id": "0x7feb10eb7d78", "kind": "StringLiteral", "range": { "begin": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 }, "end": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 } @@ -11883,33 +11883,33 @@ ] }, { - "id": "0x7f0da6e94fb8", + "id": "0x7feb10eb9058", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22642, - "line": 734, + "offset": 22375, + "line": 726, "col": 9, "tokLen": 6 }, "end": { - "offset": 22655, + "offset": 22388, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e94f88", + "id": "0x7feb10eb9028", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22649, + "offset": 22382, "col": 16, "tokLen": 4 }, "end": { - "offset": 22655, + "offset": 22388, "col": 22, "tokLen": 11 } @@ -11919,7 +11919,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0410", + "id": "0x37ff0fc0", "kind": "EnumConstantDecl", "name": "DYNAMICGAIN", "type": { @@ -11932,35 +11932,35 @@ ] }, { - "id": "0x7f0da6e962f8", + "id": "0x7feb10eba398", "kind": "IfStmt", "range": { "begin": { - "offset": 22672, - "line": 735, + "offset": 22405, + "line": 727, "col": 5, "tokLen": 2 }, "end": { - "offset": 22713, - "line": 736, + "offset": 22446, + "line": 728, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6e96248", + "id": "0x7feb10eba2e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22676, - "line": 735, + "offset": 22409, + "line": 727, "col": 9, "tokLen": 1 }, "end": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 } @@ -11972,16 +11972,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e96230", + "id": "0x7feb10eba2d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22678, + "offset": 22411, "col": 11, "tokLen": 2 }, "end": { - "offset": 22678, + "offset": 22411, "col": 11, "tokLen": 2 } @@ -11993,16 +11993,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e96210", + "id": "0x7feb10eba2b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22678, + "offset": 22411, "col": 11, "tokLen": 2 }, "end": { - "offset": 22678, + "offset": 22411, "col": 11, "tokLen": 2 } @@ -12012,7 +12012,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12023,16 +12023,16 @@ ] }, { - "id": "0x7f0da6e94fe8", + "id": "0x7feb10eb9088", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22676, + "offset": 22409, "col": 9, "tokLen": 1 }, "end": { - "offset": 22676, + "offset": 22409, "col": 9, "tokLen": 1 } @@ -12040,11 +12040,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12053,16 +12053,16 @@ } }, { - "id": "0x7f0da6e961f8", + "id": "0x7feb10eba298", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 }, "end": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 } @@ -12074,16 +12074,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e95008", + "id": "0x7feb10eb90a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 }, "end": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 } @@ -12099,33 +12099,33 @@ ] }, { - "id": "0x7f0da6e962e8", + "id": "0x7feb10eba388", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22700, - "line": 736, + "offset": 22433, + "line": 728, "col": 9, "tokLen": 6 }, "end": { - "offset": 22713, + "offset": 22446, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6e962b8", + "id": "0x7feb10eba358", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22707, + "offset": 22440, "col": 16, "tokLen": 4 }, "end": { - "offset": 22713, + "offset": 22446, "col": 22, "tokLen": 7 } @@ -12135,7 +12135,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0460", + "id": "0x37ff1010", "kind": "EnumConstantDecl", "name": "LOWGAIN", "type": { @@ -12148,35 +12148,35 @@ ] }, { - "id": "0x7f0da6e56638", + "id": "0x7feb10ebb6c8", "kind": "IfStmt", "range": { "begin": { - "offset": 22726, - "line": 737, + "offset": 22459, + "line": 729, "col": 5, "tokLen": 2 }, "end": { - "offset": 22770, - "line": 738, + "offset": 22503, + "line": 730, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e56588", + "id": "0x7feb10ebb618", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22730, - "line": 737, + "offset": 22463, + "line": 729, "col": 9, "tokLen": 1 }, "end": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 } @@ -12188,16 +12188,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e56570", + "id": "0x7feb10ebb600", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22732, + "offset": 22465, "col": 11, "tokLen": 2 }, "end": { - "offset": 22732, + "offset": 22465, "col": 11, "tokLen": 2 } @@ -12209,16 +12209,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e56550", + "id": "0x7feb10ebb5e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22732, + "offset": 22465, "col": 11, "tokLen": 2 }, "end": { - "offset": 22732, + "offset": 22465, "col": 11, "tokLen": 2 } @@ -12228,7 +12228,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12239,16 +12239,16 @@ ] }, { - "id": "0x7f0da6e96318", + "id": "0x7feb10eba3b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22730, + "offset": 22463, "col": 9, "tokLen": 1 }, "end": { - "offset": 22730, + "offset": 22463, "col": 9, "tokLen": 1 } @@ -12256,11 +12256,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12269,16 +12269,16 @@ } }, { - "id": "0x7f0da6e56538", + "id": "0x7feb10ebb5c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 }, "end": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 } @@ -12290,16 +12290,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e96338", + "id": "0x7feb10eba3d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 }, "end": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 } @@ -12315,33 +12315,33 @@ ] }, { - "id": "0x7f0da6e56628", + "id": "0x7feb10ebb6b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22757, - "line": 738, + "offset": 22490, + "line": 730, "col": 9, "tokLen": 6 }, "end": { - "offset": 22770, + "offset": 22503, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e565f8", + "id": "0x7feb10ebb688", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22764, + "offset": 22497, "col": 16, "tokLen": 4 }, "end": { - "offset": 22770, + "offset": 22503, "col": 22, "tokLen": 10 } @@ -12351,7 +12351,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc04b0", + "id": "0x37ff1060", "kind": "EnumConstantDecl", "name": "MEDIUMGAIN", "type": { @@ -12364,35 +12364,35 @@ ] }, { - "id": "0x7f0da6e57968", + "id": "0x38717878", "kind": "IfStmt", "range": { "begin": { - "offset": 22786, - "line": 739, + "offset": 22519, + "line": 731, "col": 5, "tokLen": 2 }, "end": { - "offset": 22832, - "line": 740, + "offset": 22565, + "line": 732, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e578b8", + "id": "0x387177c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22790, - "line": 739, + "offset": 22523, + "line": 731, "col": 9, "tokLen": 1 }, "end": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 } @@ -12404,16 +12404,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e578a0", + "id": "0x387177b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22792, + "offset": 22525, "col": 11, "tokLen": 2 }, "end": { - "offset": 22792, + "offset": 22525, "col": 11, "tokLen": 2 } @@ -12425,16 +12425,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e57880", + "id": "0x38717790", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22792, + "offset": 22525, "col": 11, "tokLen": 2 }, "end": { - "offset": 22792, + "offset": 22525, "col": 11, "tokLen": 2 } @@ -12444,7 +12444,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12455,16 +12455,16 @@ ] }, { - "id": "0x7f0da6e56658", + "id": "0x7feb10ebb6e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22790, + "offset": 22523, "col": 9, "tokLen": 1 }, "end": { - "offset": 22790, + "offset": 22523, "col": 9, "tokLen": 1 } @@ -12472,11 +12472,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12485,16 +12485,16 @@ } }, { - "id": "0x7f0da6e57868", + "id": "0x38717778", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 }, "end": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 } @@ -12506,16 +12506,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e56678", + "id": "0x7feb10ebb708", "kind": "StringLiteral", "range": { "begin": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 }, "end": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 } @@ -12531,33 +12531,33 @@ ] }, { - "id": "0x7f0da6e57958", + "id": "0x38717868", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22819, - "line": 740, + "offset": 22552, + "line": 732, "col": 9, "tokLen": 6 }, "end": { - "offset": 22832, + "offset": 22565, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e57928", + "id": "0x38717838", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22826, + "offset": 22559, "col": 16, "tokLen": 4 }, "end": { - "offset": 22832, + "offset": 22565, "col": 22, "tokLen": 12 } @@ -12567,7 +12567,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0500", + "id": "0x37ff10b0", "kind": "EnumConstantDecl", "name": "VERYHIGHGAIN", "type": { @@ -12580,35 +12580,35 @@ ] }, { - "id": "0x7f0da6e58c98", + "id": "0x38718ba8", "kind": "IfStmt", "range": { "begin": { - "offset": 22850, - "line": 741, + "offset": 22583, + "line": 733, "col": 5, "tokLen": 2 }, "end": { - "offset": 22893, - "line": 742, + "offset": 22626, + "line": 734, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e58be8", + "id": "0x38718af8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22854, - "line": 741, + "offset": 22587, + "line": 733, "col": 9, "tokLen": 1 }, "end": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 } @@ -12620,16 +12620,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e58bd0", + "id": "0x38718ae0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22856, + "offset": 22589, "col": 11, "tokLen": 2 }, "end": { - "offset": 22856, + "offset": 22589, "col": 11, "tokLen": 2 } @@ -12641,16 +12641,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e58bb0", + "id": "0x38718ac0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22856, + "offset": 22589, "col": 11, "tokLen": 2 }, "end": { - "offset": 22856, + "offset": 22589, "col": 11, "tokLen": 2 } @@ -12660,7 +12660,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12671,16 +12671,16 @@ ] }, { - "id": "0x7f0da6e57988", + "id": "0x38717898", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22854, + "offset": 22587, "col": 9, "tokLen": 1 }, "end": { - "offset": 22854, + "offset": 22587, "col": 9, "tokLen": 1 } @@ -12688,11 +12688,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12701,16 +12701,16 @@ } }, { - "id": "0x7f0da6e58b98", + "id": "0x38718aa8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 }, "end": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 } @@ -12722,16 +12722,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e579a8", + "id": "0x387178b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 }, "end": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 } @@ -12747,33 +12747,33 @@ ] }, { - "id": "0x7f0da6e58c88", + "id": "0x38718b98", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22880, - "line": 742, + "offset": 22613, + "line": 734, "col": 9, "tokLen": 6 }, "end": { - "offset": 22893, + "offset": 22626, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e58c58", + "id": "0x38718b68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22887, + "offset": 22620, "col": 16, "tokLen": 4 }, "end": { - "offset": 22893, + "offset": 22626, "col": 22, "tokLen": 9 } @@ -12783,7 +12783,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0550", + "id": "0x37ff1100", "kind": "EnumConstantDecl", "name": "HIGHGAIN0", "type": { @@ -12796,35 +12796,35 @@ ] }, { - "id": "0x7f0da6e59fc8", + "id": "0x38719ed8", "kind": "IfStmt", "range": { "begin": { - "offset": 22908, - "line": 743, + "offset": 22641, + "line": 735, "col": 5, "tokLen": 2 }, "end": { - "offset": 22950, - "line": 744, + "offset": 22683, + "line": 736, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e59f18", + "id": "0x38719e28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22912, - "line": 743, + "offset": 22645, + "line": 735, "col": 9, "tokLen": 1 }, "end": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 } @@ -12836,16 +12836,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e59f00", + "id": "0x38719e10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22914, + "offset": 22647, "col": 11, "tokLen": 2 }, "end": { - "offset": 22914, + "offset": 22647, "col": 11, "tokLen": 2 } @@ -12857,16 +12857,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e59ee0", + "id": "0x38719df0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22914, + "offset": 22647, "col": 11, "tokLen": 2 }, "end": { - "offset": 22914, + "offset": 22647, "col": 11, "tokLen": 2 } @@ -12876,7 +12876,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12887,16 +12887,16 @@ ] }, { - "id": "0x7f0da6e58cb8", + "id": "0x38718bc8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22912, + "offset": 22645, "col": 9, "tokLen": 1 }, "end": { - "offset": 22912, + "offset": 22645, "col": 9, "tokLen": 1 } @@ -12904,11 +12904,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12917,16 +12917,16 @@ } }, { - "id": "0x7f0da6e59ec8", + "id": "0x38719dd8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 }, "end": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 } @@ -12938,16 +12938,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e58cd8", + "id": "0x38718be8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 }, "end": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 } @@ -12963,33 +12963,33 @@ ] }, { - "id": "0x7f0da6e59fb8", + "id": "0x38719ec8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22937, - "line": 744, + "offset": 22670, + "line": 736, "col": 9, "tokLen": 6 }, "end": { - "offset": 22950, + "offset": 22683, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e59f88", + "id": "0x38719e98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22944, + "offset": 22677, "col": 16, "tokLen": 4 }, "end": { - "offset": 22950, + "offset": 22683, "col": 22, "tokLen": 8 } @@ -12999,7 +12999,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc05a0", + "id": "0x37ff1150", "kind": "EnumConstantDecl", "name": "FIXGAIN1", "type": { @@ -13012,35 +13012,35 @@ ] }, { - "id": "0x7f0da6e5b2f8", + "id": "0x3871b208", "kind": "IfStmt", "range": { "begin": { - "offset": 22964, - "line": 745, + "offset": 22697, + "line": 737, "col": 5, "tokLen": 2 }, "end": { - "offset": 23006, - "line": 746, + "offset": 22739, + "line": 738, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e5b248", + "id": "0x3871b158", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22968, - "line": 745, + "offset": 22701, + "line": 737, "col": 9, "tokLen": 1 }, "end": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 } @@ -13052,16 +13052,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5b230", + "id": "0x3871b140", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22970, + "offset": 22703, "col": 11, "tokLen": 2 }, "end": { - "offset": 22970, + "offset": 22703, "col": 11, "tokLen": 2 } @@ -13073,16 +13073,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5b210", + "id": "0x3871b120", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22970, + "offset": 22703, "col": 11, "tokLen": 2 }, "end": { - "offset": 22970, + "offset": 22703, "col": 11, "tokLen": 2 } @@ -13092,7 +13092,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13103,16 +13103,16 @@ ] }, { - "id": "0x7f0da6e59fe8", + "id": "0x38719ef8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22968, + "offset": 22701, "col": 9, "tokLen": 1 }, "end": { - "offset": 22968, + "offset": 22701, "col": 9, "tokLen": 1 } @@ -13120,11 +13120,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13133,16 +13133,16 @@ } }, { - "id": "0x7f0da6e5b1f8", + "id": "0x3871b108", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 }, "end": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 } @@ -13154,16 +13154,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5a008", + "id": "0x38719f18", "kind": "StringLiteral", "range": { "begin": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 }, "end": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 } @@ -13179,33 +13179,33 @@ ] }, { - "id": "0x7f0da6e5b2e8", + "id": "0x3871b1f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22993, - "line": 746, + "offset": 22726, + "line": 738, "col": 9, "tokLen": 6 }, "end": { - "offset": 23006, + "offset": 22739, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e5b2b8", + "id": "0x3871b1c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23000, + "offset": 22733, "col": 16, "tokLen": 4 }, "end": { - "offset": 23006, + "offset": 22739, "col": 22, "tokLen": 8 } @@ -13215,7 +13215,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc05f0", + "id": "0x37ff11a0", "kind": "EnumConstantDecl", "name": "FIXGAIN2", "type": { @@ -13228,35 +13228,35 @@ ] }, { - "id": "0x7f0da6e5c628", + "id": "0x3871c538", "kind": "IfStmt", "range": { "begin": { - "offset": 23020, - "line": 747, + "offset": 22753, + "line": 739, "col": 5, "tokLen": 2 }, "end": { - "offset": 23065, - "line": 748, + "offset": 22798, + "line": 740, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e5c578", + "id": "0x3871c488", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23024, - "line": 747, + "offset": 22757, + "line": 739, "col": 9, "tokLen": 1 }, "end": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 } @@ -13268,16 +13268,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5c560", + "id": "0x3871c470", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23026, + "offset": 22759, "col": 11, "tokLen": 2 }, "end": { - "offset": 23026, + "offset": 22759, "col": 11, "tokLen": 2 } @@ -13289,16 +13289,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5c540", + "id": "0x3871c450", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23026, + "offset": 22759, "col": 11, "tokLen": 2 }, "end": { - "offset": 23026, + "offset": 22759, "col": 11, "tokLen": 2 } @@ -13308,7 +13308,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13319,16 +13319,16 @@ ] }, { - "id": "0x7f0da6e5b318", + "id": "0x3871b228", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23024, + "offset": 22757, "col": 9, "tokLen": 1 }, "end": { - "offset": 23024, + "offset": 22757, "col": 9, "tokLen": 1 } @@ -13336,11 +13336,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13349,16 +13349,16 @@ } }, { - "id": "0x7f0da6e5c528", + "id": "0x3871c438", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 }, "end": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 } @@ -13370,16 +13370,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5b338", + "id": "0x3871b248", "kind": "StringLiteral", "range": { "begin": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 }, "end": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 } @@ -13395,33 +13395,33 @@ ] }, { - "id": "0x7f0da6e5c618", + "id": "0x3871c528", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23052, - "line": 748, + "offset": 22785, + "line": 740, "col": 9, "tokLen": 6 }, "end": { - "offset": 23065, + "offset": 22798, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e5c5e8", + "id": "0x3871c4f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23059, + "offset": 22792, "col": 16, "tokLen": 4 }, "end": { - "offset": 23065, + "offset": 22798, "col": 22, "tokLen": 11 } @@ -13431,7 +13431,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0640", + "id": "0x37ff11f0", "kind": "EnumConstantDecl", "name": "VERYLOWGAIN", "type": { @@ -13444,35 +13444,35 @@ ] }, { - "id": "0x7f0da6e5d958", + "id": "0x3871d868", "kind": "IfStmt", "range": { "begin": { - "offset": 23082, - "line": 749, + "offset": 22815, + "line": 741, "col": 5, "tokLen": 2 }, "end": { - "offset": 23121, - "line": 750, + "offset": 22854, + "line": 742, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e5d8a8", + "id": "0x3871d7b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23086, - "line": 749, + "offset": 22819, + "line": 741, "col": 9, "tokLen": 1 }, "end": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 } @@ -13484,16 +13484,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5d890", + "id": "0x3871d7a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23088, + "offset": 22821, "col": 11, "tokLen": 2 }, "end": { - "offset": 23088, + "offset": 22821, "col": 11, "tokLen": 2 } @@ -13505,16 +13505,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5d870", + "id": "0x3871d780", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23088, + "offset": 22821, "col": 11, "tokLen": 2 }, "end": { - "offset": 23088, + "offset": 22821, "col": 11, "tokLen": 2 } @@ -13524,7 +13524,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13535,16 +13535,16 @@ ] }, { - "id": "0x7f0da6e5c648", + "id": "0x3871c558", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23086, + "offset": 22819, "col": 9, "tokLen": 1 }, "end": { - "offset": 23086, + "offset": 22819, "col": 9, "tokLen": 1 } @@ -13552,11 +13552,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13565,16 +13565,16 @@ } }, { - "id": "0x7f0da6e5d858", + "id": "0x3871d768", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 }, "end": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 } @@ -13586,16 +13586,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5c668", + "id": "0x3871c578", "kind": "StringLiteral", "range": { "begin": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 }, "end": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 } @@ -13611,33 +13611,33 @@ ] }, { - "id": "0x7f0da6e5d948", + "id": "0x3871d858", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23108, - "line": 750, + "offset": 22841, + "line": 742, "col": 9, "tokLen": 6 }, "end": { - "offset": 23121, + "offset": 22854, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e5d918", + "id": "0x3871d828", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23115, + "offset": 22848, "col": 16, "tokLen": 4 }, "end": { - "offset": 23121, + "offset": 22854, "col": 22, "tokLen": 11 } @@ -13647,7 +13647,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0690", + "id": "0x37ff1240", "kind": "EnumConstantDecl", "name": "G1_HIGHGAIN", "type": { @@ -13660,35 +13660,35 @@ ] }, { - "id": "0x7f0da6e5ec88", + "id": "0x3871eb98", "kind": "IfStmt", "range": { "begin": { - "offset": 23138, - "line": 751, + "offset": 22871, + "line": 743, "col": 5, "tokLen": 2 }, "end": { - "offset": 23177, - "line": 752, + "offset": 22910, + "line": 744, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e5ebd8", + "id": "0x3871eae8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23142, - "line": 751, + "offset": 22875, + "line": 743, "col": 9, "tokLen": 1 }, "end": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 } @@ -13700,16 +13700,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5ebc0", + "id": "0x3871ead0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23144, + "offset": 22877, "col": 11, "tokLen": 2 }, "end": { - "offset": 23144, + "offset": 22877, "col": 11, "tokLen": 2 } @@ -13721,16 +13721,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5eba0", + "id": "0x3871eab0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23144, + "offset": 22877, "col": 11, "tokLen": 2 }, "end": { - "offset": 23144, + "offset": 22877, "col": 11, "tokLen": 2 } @@ -13740,7 +13740,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13751,16 +13751,16 @@ ] }, { - "id": "0x7f0da6e5d978", + "id": "0x3871d888", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23142, + "offset": 22875, "col": 9, "tokLen": 1 }, "end": { - "offset": 23142, + "offset": 22875, "col": 9, "tokLen": 1 } @@ -13768,11 +13768,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13781,16 +13781,16 @@ } }, { - "id": "0x7f0da6e5eb88", + "id": "0x3871ea98", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 }, "end": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 } @@ -13802,16 +13802,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5d998", + "id": "0x3871d8a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 }, "end": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 } @@ -13827,33 +13827,33 @@ ] }, { - "id": "0x7f0da6e5ec78", + "id": "0x3871eb88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23164, - "line": 752, + "offset": 22897, + "line": 744, "col": 9, "tokLen": 6 }, "end": { - "offset": 23177, + "offset": 22910, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e5ec48", + "id": "0x3871eb58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23171, + "offset": 22904, "col": 16, "tokLen": 4 }, "end": { - "offset": 23177, + "offset": 22910, "col": 22, "tokLen": 10 } @@ -13863,7 +13863,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc06e0", + "id": "0x37ff1290", "kind": "EnumConstantDecl", "name": "G1_LOWGAIN", "type": { @@ -13876,35 +13876,35 @@ ] }, { - "id": "0x7f0da6e5ffb8", + "id": "0x3871fec8", "kind": "IfStmt", "range": { "begin": { - "offset": 23193, - "line": 753, + "offset": 22926, + "line": 745, "col": 5, "tokLen": 2 }, "end": { - "offset": 23235, - "line": 754, + "offset": 22968, + "line": 746, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6e5ff08", + "id": "0x3871fe18", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23197, - "line": 753, + "offset": 22930, + "line": 745, "col": 9, "tokLen": 1 }, "end": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 } @@ -13916,16 +13916,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5fef0", + "id": "0x3871fe00", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23199, + "offset": 22932, "col": 11, "tokLen": 2 }, "end": { - "offset": 23199, + "offset": 22932, "col": 11, "tokLen": 2 } @@ -13937,16 +13937,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5fed0", + "id": "0x3871fde0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23199, + "offset": 22932, "col": 11, "tokLen": 2 }, "end": { - "offset": 23199, + "offset": 22932, "col": 11, "tokLen": 2 } @@ -13956,7 +13956,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13967,16 +13967,16 @@ ] }, { - "id": "0x7f0da6e5eca8", + "id": "0x3871ebb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23197, + "offset": 22930, "col": 9, "tokLen": 1 }, "end": { - "offset": 23197, + "offset": 22930, "col": 9, "tokLen": 1 } @@ -13984,11 +13984,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13997,16 +13997,16 @@ } }, { - "id": "0x7f0da6e5feb8", + "id": "0x3871fdc8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 }, "end": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 } @@ -14018,16 +14018,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5ecc8", + "id": "0x3871ebd8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 }, "end": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 } @@ -14043,33 +14043,33 @@ ] }, { - "id": "0x7f0da6e5ffa8", + "id": "0x3871feb8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23222, - "line": 754, + "offset": 22955, + "line": 746, "col": 9, "tokLen": 6 }, "end": { - "offset": 23235, + "offset": 22968, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6e5ff78", + "id": "0x3871fe88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23229, + "offset": 22962, "col": 16, "tokLen": 4 }, "end": { - "offset": 23235, + "offset": 22968, "col": 22, "tokLen": 19 } @@ -14079,7 +14079,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0730", + "id": "0x37ff12e0", "kind": "EnumConstantDecl", "name": "G2_HIGHCAP_HIGHGAIN", "type": { @@ -14092,35 +14092,35 @@ ] }, { - "id": "0x7f0da6e612e8", + "id": "0x387211f8", "kind": "IfStmt", "range": { "begin": { - "offset": 23260, - "line": 755, + "offset": 22993, + "line": 747, "col": 5, "tokLen": 2 }, "end": { - "offset": 23302, - "line": 756, + "offset": 23035, + "line": 748, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e61238", + "id": "0x38721148", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23264, - "line": 755, + "offset": 22997, + "line": 747, "col": 9, "tokLen": 1 }, "end": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 } @@ -14132,16 +14132,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e61220", + "id": "0x38721130", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23266, + "offset": 22999, "col": 11, "tokLen": 2 }, "end": { - "offset": 23266, + "offset": 22999, "col": 11, "tokLen": 2 } @@ -14153,16 +14153,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e61200", + "id": "0x38721110", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23266, + "offset": 22999, "col": 11, "tokLen": 2 }, "end": { - "offset": 23266, + "offset": 22999, "col": 11, "tokLen": 2 } @@ -14172,7 +14172,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -14183,16 +14183,16 @@ ] }, { - "id": "0x7f0da6e5ffd8", + "id": "0x3871fee8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23264, + "offset": 22997, "col": 9, "tokLen": 1 }, "end": { - "offset": 23264, + "offset": 22997, "col": 9, "tokLen": 1 } @@ -14200,11 +14200,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -14213,16 +14213,16 @@ } }, { - "id": "0x7f0da6e611e8", + "id": "0x387210f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 }, "end": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 } @@ -14234,16 +14234,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5fff8", + "id": "0x3871ff08", "kind": "StringLiteral", "range": { "begin": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 }, "end": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 } @@ -14259,33 +14259,33 @@ ] }, { - "id": "0x7f0da6e612d8", + "id": "0x387211e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23289, - "line": 756, + "offset": 23022, + "line": 748, "col": 9, "tokLen": 6 }, "end": { - "offset": 23302, + "offset": 23035, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e612a8", + "id": "0x387211b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23296, + "offset": 23029, "col": 16, "tokLen": 4 }, "end": { - "offset": 23302, + "offset": 23035, "col": 22, "tokLen": 18 } @@ -14295,7 +14295,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0780", + "id": "0x37ff1330", "kind": "EnumConstantDecl", "name": "G2_HIGHCAP_LOWGAIN", "type": { @@ -14308,35 +14308,35 @@ ] }, { - "id": "0x7f0da6e62618", + "id": "0x38722528", "kind": "IfStmt", "range": { "begin": { - "offset": 23326, - "line": 757, + "offset": 23059, + "line": 749, "col": 5, "tokLen": 2 }, "end": { - "offset": 23368, - "line": 758, + "offset": 23101, + "line": 750, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e62568", + "id": "0x38722478", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23330, - "line": 757, + "offset": 23063, + "line": 749, "col": 9, "tokLen": 1 }, "end": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 } @@ -14348,16 +14348,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e62550", + "id": "0x38722460", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23332, + "offset": 23065, "col": 11, "tokLen": 2 }, "end": { - "offset": 23332, + "offset": 23065, "col": 11, "tokLen": 2 } @@ -14369,16 +14369,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e62530", + "id": "0x38722440", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23332, + "offset": 23065, "col": 11, "tokLen": 2 }, "end": { - "offset": 23332, + "offset": 23065, "col": 11, "tokLen": 2 } @@ -14388,7 +14388,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -14399,16 +14399,16 @@ ] }, { - "id": "0x7f0da6e61308", + "id": "0x38721218", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23330, + "offset": 23063, "col": 9, "tokLen": 1 }, "end": { - "offset": 23330, + "offset": 23063, "col": 9, "tokLen": 1 } @@ -14416,11 +14416,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -14429,16 +14429,16 @@ } }, { - "id": "0x7f0da6e62518", + "id": "0x38722428", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 }, "end": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 } @@ -14450,16 +14450,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e61328", + "id": "0x38721238", "kind": "StringLiteral", "range": { "begin": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 }, "end": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 } @@ -14475,33 +14475,33 @@ ] }, { - "id": "0x7f0da6e62608", + "id": "0x38722518", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23355, - "line": 758, + "offset": 23088, + "line": 750, "col": 9, "tokLen": 6 }, "end": { - "offset": 23368, + "offset": 23101, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e625d8", + "id": "0x387224e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23362, + "offset": 23095, "col": 16, "tokLen": 4 }, "end": { - "offset": 23368, + "offset": 23101, "col": 22, "tokLen": 18 } @@ -14511,7 +14511,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc07d0", + "id": "0x37ff1380", "kind": "EnumConstantDecl", "name": "G2_LOWCAP_HIGHGAIN", "type": { @@ -14524,35 +14524,35 @@ ] }, { - "id": "0x7f0da6e63948", + "id": "0x38723858", "kind": "IfStmt", "range": { "begin": { - "offset": 23392, - "line": 759, + "offset": 23125, + "line": 751, "col": 5, "tokLen": 2 }, "end": { - "offset": 23434, - "line": 760, + "offset": 23167, + "line": 752, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6e63898", + "id": "0x387237a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23396, - "line": 759, + "offset": 23129, + "line": 751, "col": 9, "tokLen": 1 }, "end": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 } @@ -14564,16 +14564,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e63880", + "id": "0x38723790", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23398, + "offset": 23131, "col": 11, "tokLen": 2 }, "end": { - "offset": 23398, + "offset": 23131, "col": 11, "tokLen": 2 } @@ -14585,16 +14585,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e63860", + "id": "0x38723770", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23398, + "offset": 23131, "col": 11, "tokLen": 2 }, "end": { - "offset": 23398, + "offset": 23131, "col": 11, "tokLen": 2 } @@ -14604,7 +14604,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -14615,16 +14615,16 @@ ] }, { - "id": "0x7f0da6e62638", + "id": "0x38722548", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23396, + "offset": 23129, "col": 9, "tokLen": 1 }, "end": { - "offset": 23396, + "offset": 23129, "col": 9, "tokLen": 1 } @@ -14632,11 +14632,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -14645,16 +14645,16 @@ } }, { - "id": "0x7f0da6e63848", + "id": "0x38723758", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 }, "end": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 } @@ -14666,16 +14666,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e62658", + "id": "0x38722568", "kind": "StringLiteral", "range": { "begin": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 }, "end": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 } @@ -14691,33 +14691,33 @@ ] }, { - "id": "0x7f0da6e63938", + "id": "0x38723848", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23421, - "line": 760, + "offset": 23154, + "line": 752, "col": 9, "tokLen": 6 }, "end": { - "offset": 23434, + "offset": 23167, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6e63908", + "id": "0x38723818", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23428, + "offset": 23161, "col": 16, "tokLen": 4 }, "end": { - "offset": 23434, + "offset": 23167, "col": 22, "tokLen": 17 } @@ -14727,7 +14727,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0820", + "id": "0x37ff13d0", "kind": "EnumConstantDecl", "name": "G2_LOWCAP_LOWGAIN", "type": { @@ -14740,35 +14740,35 @@ ] }, { - "id": "0x7f0da6e64c78", + "id": "0x38724b88", "kind": "IfStmt", "range": { "begin": { - "offset": 23457, - "line": 761, + "offset": 23190, + "line": 753, "col": 5, "tokLen": 2 }, "end": { - "offset": 23496, - "line": 762, + "offset": 23229, + "line": 754, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e64bc8", + "id": "0x38724ad8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23461, - "line": 761, + "offset": 23194, + "line": 753, "col": 9, "tokLen": 1 }, "end": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 } @@ -14780,16 +14780,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e64bb0", + "id": "0x38724ac0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23463, + "offset": 23196, "col": 11, "tokLen": 2 }, "end": { - "offset": 23463, + "offset": 23196, "col": 11, "tokLen": 2 } @@ -14801,16 +14801,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e64b90", + "id": "0x38724aa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23463, + "offset": 23196, "col": 11, "tokLen": 2 }, "end": { - "offset": 23463, + "offset": 23196, "col": 11, "tokLen": 2 } @@ -14820,7 +14820,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -14831,16 +14831,16 @@ ] }, { - "id": "0x7f0da6e63968", + "id": "0x38723878", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23461, + "offset": 23194, "col": 9, "tokLen": 1 }, "end": { - "offset": 23461, + "offset": 23194, "col": 9, "tokLen": 1 } @@ -14848,11 +14848,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -14861,16 +14861,16 @@ } }, { - "id": "0x7f0da6e64b78", + "id": "0x38724a88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 }, "end": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 } @@ -14882,16 +14882,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e63988", + "id": "0x38723898", "kind": "StringLiteral", "range": { "begin": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 }, "end": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 } @@ -14907,33 +14907,33 @@ ] }, { - "id": "0x7f0da6e64c68", + "id": "0x38724b78", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23483, - "line": 762, + "offset": 23216, + "line": 754, "col": 9, "tokLen": 6 }, "end": { - "offset": 23496, + "offset": 23229, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e64c38", + "id": "0x38724b48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23490, + "offset": 23223, "col": 16, "tokLen": 4 }, "end": { - "offset": 23496, + "offset": 23229, "col": 22, "tokLen": 11 } @@ -14943,7 +14943,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0870", + "id": "0x37ff1420", "kind": "EnumConstantDecl", "name": "G4_HIGHGAIN", "type": { @@ -14956,35 +14956,35 @@ ] }, { - "id": "0x7f0da6e65fa8", + "id": "0x38725eb8", "kind": "IfStmt", "range": { "begin": { - "offset": 23513, - "line": 763, + "offset": 23246, + "line": 755, "col": 5, "tokLen": 2 }, "end": { - "offset": 23552, - "line": 764, + "offset": 23285, + "line": 756, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e65ef8", + "id": "0x38725e08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23517, - "line": 763, + "offset": 23250, + "line": 755, "col": 9, "tokLen": 1 }, "end": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 } @@ -14996,16 +14996,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e65ee0", + "id": "0x38725df0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23519, + "offset": 23252, "col": 11, "tokLen": 2 }, "end": { - "offset": 23519, + "offset": 23252, "col": 11, "tokLen": 2 } @@ -15017,16 +15017,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e65ec0", + "id": "0x38725dd0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23519, + "offset": 23252, "col": 11, "tokLen": 2 }, "end": { - "offset": 23519, + "offset": 23252, "col": 11, "tokLen": 2 } @@ -15036,7 +15036,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -15047,16 +15047,16 @@ ] }, { - "id": "0x7f0da6e64c98", + "id": "0x38724ba8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23517, + "offset": 23250, "col": 9, "tokLen": 1 }, "end": { - "offset": 23517, + "offset": 23250, "col": 9, "tokLen": 1 } @@ -15064,11 +15064,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -15077,16 +15077,16 @@ } }, { - "id": "0x7f0da6e65ea8", + "id": "0x38725db8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 }, "end": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 } @@ -15098,16 +15098,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e64cb8", + "id": "0x38724bc8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 }, "end": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 } @@ -15123,33 +15123,33 @@ ] }, { - "id": "0x7f0da6e65f98", + "id": "0x38725ea8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23539, - "line": 764, + "offset": 23272, + "line": 756, "col": 9, "tokLen": 6 }, "end": { - "offset": 23552, + "offset": 23285, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e65f68", + "id": "0x38725e78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23546, + "offset": 23279, "col": 16, "tokLen": 4 }, "end": { - "offset": 23552, + "offset": 23285, "col": 22, "tokLen": 5 } @@ -15159,7 +15159,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0910", + "id": "0x37ff14c0", "kind": "EnumConstantDecl", "name": "GAIN0", "type": { @@ -15172,35 +15172,35 @@ ] }, { - "id": "0x7f0da6e672d8", + "id": "0x387271e8", "kind": "IfStmt", "range": { "begin": { - "offset": 23563, - "line": 765, + "offset": 23296, + "line": 757, "col": 5, "tokLen": 2 }, "end": { - "offset": 23602, - "line": 766, + "offset": 23335, + "line": 758, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e67228", + "id": "0x38727138", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23567, - "line": 765, + "offset": 23300, + "line": 757, "col": 9, "tokLen": 1 }, "end": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 } @@ -15212,16 +15212,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e67210", + "id": "0x38727120", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23569, + "offset": 23302, "col": 11, "tokLen": 2 }, "end": { - "offset": 23569, + "offset": 23302, "col": 11, "tokLen": 2 } @@ -15233,16 +15233,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e671f0", + "id": "0x38727100", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23569, + "offset": 23302, "col": 11, "tokLen": 2 }, "end": { - "offset": 23569, + "offset": 23302, "col": 11, "tokLen": 2 } @@ -15252,7 +15252,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -15263,16 +15263,16 @@ ] }, { - "id": "0x7f0da6e65fc8", + "id": "0x38725ed8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23567, + "offset": 23300, "col": 9, "tokLen": 1 }, "end": { - "offset": 23567, + "offset": 23300, "col": 9, "tokLen": 1 } @@ -15280,11 +15280,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -15293,16 +15293,16 @@ } }, { - "id": "0x7f0da6e671d8", + "id": "0x387270e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 }, "end": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 } @@ -15314,16 +15314,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e65fe8", + "id": "0x38725ef8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 }, "end": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 } @@ -15339,33 +15339,33 @@ ] }, { - "id": "0x7f0da6e672c8", + "id": "0x387271d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23589, - "line": 766, + "offset": 23322, + "line": 758, "col": 9, "tokLen": 6 }, "end": { - "offset": 23602, + "offset": 23335, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e67298", + "id": "0x387271a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23596, + "offset": 23329, "col": 16, "tokLen": 4 }, "end": { - "offset": 23602, + "offset": 23335, "col": 22, "tokLen": 10 } @@ -15375,7 +15375,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc08c0", + "id": "0x37ff1470", "kind": "EnumConstantDecl", "name": "G4_LOWGAIN", "type": { @@ -15388,17 +15388,17 @@ ] }, { - "id": "0x7f0da6e67960", + "id": "0x38727870", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 23618, - "line": 767, + "offset": 23351, + "line": 759, "col": 5, "tokLen": 5 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15410,16 +15410,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e67948", + "id": "0x38727858", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 23618, + "offset": 23351, "col": 5, "tokLen": 5 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15430,16 +15430,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e67918", + "id": "0x38727828", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15457,16 +15457,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e67900", + "id": "0x38727810", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15479,16 +15479,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e678d8", + "id": "0x387277e8", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15500,7 +15500,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -15509,16 +15509,16 @@ }, "inner": [ { - "id": "0x7f0da6e678b8", + "id": "0x387277c8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15528,9 +15528,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e678b0", + "temp": "0x387277c0", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -15539,16 +15539,16 @@ }, "inner": [ { - "id": "0x7f0da6e67880", + "id": "0x38727790", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15565,16 +15565,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e67868", + "id": "0x38727778", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15588,16 +15588,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e67850", + "id": "0x38727760", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15610,16 +15610,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e67830", + "id": "0x38727740", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15629,9 +15629,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e67828", + "temp": "0x38727738", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -15640,16 +15640,16 @@ }, "inner": [ { - "id": "0x7f0da6e677f0", + "id": "0x38727700", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15662,16 +15662,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e677d8", + "id": "0x387276e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23656, + "offset": 23389, "col": 43, "tokLen": 1 }, "end": { - "offset": 23656, + "offset": 23389, "col": 43, "tokLen": 1 } @@ -15683,16 +15683,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e677b8", + "id": "0x387276c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23656, + "offset": 23389, "col": 43, "tokLen": 1 }, "end": { - "offset": 23656, + "offset": 23389, "col": 43, "tokLen": 1 } @@ -15702,7 +15702,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -15713,16 +15713,16 @@ ] }, { - "id": "0x7f0da6e677a0", + "id": "0x387276b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 } @@ -15734,16 +15734,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e67308", + "id": "0x38727218", "kind": "StringLiteral", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 } @@ -15757,16 +15757,16 @@ ] }, { - "id": "0x7f0da6e67330", + "id": "0x38727240", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15774,11 +15774,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -15813,29 +15813,29 @@ ] } { - "id": "0x7f0da6e67ba8", + "id": "0x38727ab8", "kind": "FunctionDecl", "loc": { - "offset": 23694, + "offset": 23427, "file": "ToString.cpp", - "line": 770, + "line": 762, "col": 30, "tokLen": 8 }, "range": { "begin": { - "offset": 23665, + "offset": 23398, "col": 1, "tokLen": 8 }, "end": { - "offset": 24219, - "line": 788, + "offset": 23952, + "line": 780, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d376488", + "previousDecl": "0x385a6a78", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -15849,13 +15849,13 @@ }, "inner": [ { - "id": "0x2cdc0fb0", + "id": "0x37ff1b60", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::speedLevel" }, "decl": { - "id": "0x2cdc0f08", + "id": "0x37ff1ab8", "kind": "EnumDecl", "name": "speedLevel" } @@ -15863,22 +15863,22 @@ ] }, { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "loc": { - "offset": 23722, - "line": 770, + "offset": 23455, + "line": 762, "col": 58, "tokLen": 1 }, "range": { "begin": { - "offset": 23703, + "offset": 23436, "col": 39, "tokLen": 5 }, "end": { - "offset": 23722, + "offset": 23455, "col": 58, "tokLen": 1 } @@ -15890,52 +15890,52 @@ } }, { - "id": "0x7f0da6e71d98", + "id": "0x38731ca8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 23725, + "offset": 23458, "col": 61, "tokLen": 1 }, "end": { - "offset": 24219, - "line": 788, + "offset": 23952, + "line": 780, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e690a8", + "id": "0x38728fb8", "kind": "IfStmt", "range": { "begin": { - "offset": 23731, - "line": 771, + "offset": 23464, + "line": 763, "col": 5, "tokLen": 2 }, "end": { - "offset": 23775, - "line": 772, + "offset": 23508, + "line": 764, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e68ff8", + "id": "0x38728f08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23735, - "line": 771, + "offset": 23468, + "line": 763, "col": 9, "tokLen": 1 }, "end": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 } @@ -15947,16 +15947,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e68fe0", + "id": "0x38728ef0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23737, + "offset": 23470, "col": 11, "tokLen": 2 }, "end": { - "offset": 23737, + "offset": 23470, "col": 11, "tokLen": 2 } @@ -15968,16 +15968,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e68fc0", + "id": "0x38728ed0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23737, + "offset": 23470, "col": 11, "tokLen": 2 }, "end": { - "offset": 23737, + "offset": 23470, "col": 11, "tokLen": 2 } @@ -15987,7 +15987,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -15998,16 +15998,16 @@ ] }, { - "id": "0x7f0da6e67d90", + "id": "0x38727ca0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23735, + "offset": 23468, "col": 9, "tokLen": 1 }, "end": { - "offset": 23735, + "offset": 23468, "col": 9, "tokLen": 1 } @@ -16015,11 +16015,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16028,16 +16028,16 @@ } }, { - "id": "0x7f0da6e68fa8", + "id": "0x38728eb8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 }, "end": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 } @@ -16049,16 +16049,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e67db0", + "id": "0x38727cc0", "kind": "StringLiteral", "range": { "begin": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 }, "end": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 } @@ -16074,33 +16074,33 @@ ] }, { - "id": "0x7f0da6e69098", + "id": "0x38728fa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23762, - "line": 772, + "offset": 23495, + "line": 764, "col": 9, "tokLen": 6 }, "end": { - "offset": 23775, + "offset": 23508, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e69068", + "id": "0x38728f78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23769, + "offset": 23502, "col": 16, "tokLen": 4 }, "end": { - "offset": 23775, + "offset": 23508, "col": 22, "tokLen": 10 } @@ -16110,7 +16110,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0fd0", + "id": "0x37ff1b80", "kind": "EnumConstantDecl", "name": "FULL_SPEED", "type": { @@ -16123,35 +16123,35 @@ ] }, { - "id": "0x7f0da6e6a3d8", + "id": "0x3872a2e8", "kind": "IfStmt", "range": { "begin": { - "offset": 23791, - "line": 773, + "offset": 23524, + "line": 765, "col": 5, "tokLen": 2 }, "end": { - "offset": 23826, - "line": 774, + "offset": 23559, + "line": 766, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6a328", + "id": "0x3872a238", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23795, - "line": 773, + "offset": 23528, + "line": 765, "col": 9, "tokLen": 1 }, "end": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 } @@ -16163,16 +16163,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6a310", + "id": "0x3872a220", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23797, + "offset": 23530, "col": 11, "tokLen": 2 }, "end": { - "offset": 23797, + "offset": 23530, "col": 11, "tokLen": 2 } @@ -16184,16 +16184,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6a2f0", + "id": "0x3872a200", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23797, + "offset": 23530, "col": 11, "tokLen": 2 }, "end": { - "offset": 23797, + "offset": 23530, "col": 11, "tokLen": 2 } @@ -16203,7 +16203,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -16214,16 +16214,16 @@ ] }, { - "id": "0x7f0da6e690c8", + "id": "0x38728fd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23795, + "offset": 23528, "col": 9, "tokLen": 1 }, "end": { - "offset": 23795, + "offset": 23528, "col": 9, "tokLen": 1 } @@ -16231,11 +16231,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16244,16 +16244,16 @@ } }, { - "id": "0x7f0da6e6a2d8", + "id": "0x3872a1e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 }, "end": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 } @@ -16265,16 +16265,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e690e8", + "id": "0x38728ff8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 }, "end": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 } @@ -16290,33 +16290,33 @@ ] }, { - "id": "0x7f0da6e6a3c8", + "id": "0x3872a2d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23813, - "line": 774, + "offset": 23546, + "line": 766, "col": 9, "tokLen": 6 }, "end": { - "offset": 23826, + "offset": 23559, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6a398", + "id": "0x3872a2a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23820, + "offset": 23553, "col": 16, "tokLen": 4 }, "end": { - "offset": 23826, + "offset": 23559, "col": 22, "tokLen": 10 } @@ -16326,7 +16326,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0fd0", + "id": "0x37ff1b80", "kind": "EnumConstantDecl", "name": "FULL_SPEED", "type": { @@ -16339,35 +16339,35 @@ ] }, { - "id": "0x7f0da6e6b708", + "id": "0x3872b618", "kind": "IfStmt", "range": { "begin": { - "offset": 23842, - "line": 775, + "offset": 23575, + "line": 767, "col": 5, "tokLen": 2 }, "end": { - "offset": 23886, - "line": 776, + "offset": 23619, + "line": 768, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6b658", + "id": "0x3872b568", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23846, - "line": 775, + "offset": 23579, + "line": 767, "col": 9, "tokLen": 1 }, "end": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 } @@ -16379,16 +16379,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6b640", + "id": "0x3872b550", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23848, + "offset": 23581, "col": 11, "tokLen": 2 }, "end": { - "offset": 23848, + "offset": 23581, "col": 11, "tokLen": 2 } @@ -16400,16 +16400,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6b620", + "id": "0x3872b530", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23848, + "offset": 23581, "col": 11, "tokLen": 2 }, "end": { - "offset": 23848, + "offset": 23581, "col": 11, "tokLen": 2 } @@ -16419,7 +16419,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -16430,16 +16430,16 @@ ] }, { - "id": "0x7f0da6e6a3f8", + "id": "0x3872a308", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23846, + "offset": 23579, "col": 9, "tokLen": 1 }, "end": { - "offset": 23846, + "offset": 23579, "col": 9, "tokLen": 1 } @@ -16447,11 +16447,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16460,16 +16460,16 @@ } }, { - "id": "0x7f0da6e6b608", + "id": "0x3872b518", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 }, "end": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 } @@ -16481,16 +16481,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6a418", + "id": "0x3872a328", "kind": "StringLiteral", "range": { "begin": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 }, "end": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 } @@ -16506,33 +16506,33 @@ ] }, { - "id": "0x7f0da6e6b6f8", + "id": "0x3872b608", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23873, - "line": 776, + "offset": 23606, + "line": 768, "col": 9, "tokLen": 6 }, "end": { - "offset": 23886, + "offset": 23619, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6b6c8", + "id": "0x3872b5d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23880, + "offset": 23613, "col": 16, "tokLen": 4 }, "end": { - "offset": 23886, + "offset": 23619, "col": 22, "tokLen": 10 } @@ -16542,7 +16542,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1020", + "id": "0x37ff1bd0", "kind": "EnumConstantDecl", "name": "HALF_SPEED", "type": { @@ -16555,35 +16555,35 @@ ] }, { - "id": "0x7f0da6e6ca38", + "id": "0x3872c948", "kind": "IfStmt", "range": { "begin": { - "offset": 23902, - "line": 777, + "offset": 23635, + "line": 769, "col": 5, "tokLen": 2 }, "end": { - "offset": 23937, - "line": 778, + "offset": 23670, + "line": 770, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6c988", + "id": "0x3872c898", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23906, - "line": 777, + "offset": 23639, + "line": 769, "col": 9, "tokLen": 1 }, "end": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 } @@ -16595,16 +16595,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6c970", + "id": "0x3872c880", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23908, + "offset": 23641, "col": 11, "tokLen": 2 }, "end": { - "offset": 23908, + "offset": 23641, "col": 11, "tokLen": 2 } @@ -16616,16 +16616,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6c950", + "id": "0x3872c860", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23908, + "offset": 23641, "col": 11, "tokLen": 2 }, "end": { - "offset": 23908, + "offset": 23641, "col": 11, "tokLen": 2 } @@ -16635,7 +16635,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -16646,16 +16646,16 @@ ] }, { - "id": "0x7f0da6e6b728", + "id": "0x3872b638", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23906, + "offset": 23639, "col": 9, "tokLen": 1 }, "end": { - "offset": 23906, + "offset": 23639, "col": 9, "tokLen": 1 } @@ -16663,11 +16663,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16676,16 +16676,16 @@ } }, { - "id": "0x7f0da6e6c938", + "id": "0x3872c848", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 }, "end": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 } @@ -16697,16 +16697,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6b748", + "id": "0x3872b658", "kind": "StringLiteral", "range": { "begin": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 }, "end": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 } @@ -16722,33 +16722,33 @@ ] }, { - "id": "0x7f0da6e6ca28", + "id": "0x3872c938", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23924, - "line": 778, + "offset": 23657, + "line": 770, "col": 9, "tokLen": 6 }, "end": { - "offset": 23937, + "offset": 23670, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6c9f8", + "id": "0x3872c908", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23931, + "offset": 23664, "col": 16, "tokLen": 4 }, "end": { - "offset": 23937, + "offset": 23670, "col": 22, "tokLen": 10 } @@ -16758,7 +16758,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1020", + "id": "0x37ff1bd0", "kind": "EnumConstantDecl", "name": "HALF_SPEED", "type": { @@ -16771,35 +16771,35 @@ ] }, { - "id": "0x7f0da6e6dd68", + "id": "0x3872dc78", "kind": "IfStmt", "range": { "begin": { - "offset": 23953, - "line": 779, + "offset": 23686, + "line": 771, "col": 5, "tokLen": 2 }, "end": { - "offset": 24000, - "line": 780, + "offset": 23733, + "line": 772, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e6dcb8", + "id": "0x3872dbc8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23957, - "line": 779, + "offset": 23690, + "line": 771, "col": 9, "tokLen": 1 }, "end": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 } @@ -16811,16 +16811,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6dca0", + "id": "0x3872dbb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23959, + "offset": 23692, "col": 11, "tokLen": 2 }, "end": { - "offset": 23959, + "offset": 23692, "col": 11, "tokLen": 2 } @@ -16832,16 +16832,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6dc80", + "id": "0x3872db90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23959, + "offset": 23692, "col": 11, "tokLen": 2 }, "end": { - "offset": 23959, + "offset": 23692, "col": 11, "tokLen": 2 } @@ -16851,7 +16851,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -16862,16 +16862,16 @@ ] }, { - "id": "0x7f0da6e6ca58", + "id": "0x3872c968", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23957, + "offset": 23690, "col": 9, "tokLen": 1 }, "end": { - "offset": 23957, + "offset": 23690, "col": 9, "tokLen": 1 } @@ -16879,11 +16879,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16892,16 +16892,16 @@ } }, { - "id": "0x7f0da6e6dc68", + "id": "0x3872db78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 }, "end": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 } @@ -16913,16 +16913,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6ca78", + "id": "0x3872c988", "kind": "StringLiteral", "range": { "begin": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 }, "end": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 } @@ -16938,33 +16938,33 @@ ] }, { - "id": "0x7f0da6e6dd58", + "id": "0x3872dc68", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23987, - "line": 780, + "offset": 23720, + "line": 772, "col": 9, "tokLen": 6 }, "end": { - "offset": 24000, + "offset": 23733, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e6dd28", + "id": "0x3872dc38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23994, + "offset": 23727, "col": 16, "tokLen": 4 }, "end": { - "offset": 24000, + "offset": 23733, "col": 22, "tokLen": 13 } @@ -16974,7 +16974,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1070", + "id": "0x37ff1c20", "kind": "EnumConstantDecl", "name": "QUARTER_SPEED", "type": { @@ -16987,35 +16987,35 @@ ] }, { - "id": "0x7f0da6e6f098", + "id": "0x3872efa8", "kind": "IfStmt", "range": { "begin": { - "offset": 24019, - "line": 781, + "offset": 23752, + "line": 773, "col": 5, "tokLen": 2 }, "end": { - "offset": 24054, - "line": 782, + "offset": 23787, + "line": 774, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e6efe8", + "id": "0x3872eef8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24023, - "line": 781, + "offset": 23756, + "line": 773, "col": 9, "tokLen": 1 }, "end": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 } @@ -17027,16 +17027,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6efd0", + "id": "0x3872eee0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24025, + "offset": 23758, "col": 11, "tokLen": 2 }, "end": { - "offset": 24025, + "offset": 23758, "col": 11, "tokLen": 2 } @@ -17048,16 +17048,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6efb0", + "id": "0x3872eec0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24025, + "offset": 23758, "col": 11, "tokLen": 2 }, "end": { - "offset": 24025, + "offset": 23758, "col": 11, "tokLen": 2 } @@ -17067,7 +17067,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -17078,16 +17078,16 @@ ] }, { - "id": "0x7f0da6e6dd88", + "id": "0x3872dc98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24023, + "offset": 23756, "col": 9, "tokLen": 1 }, "end": { - "offset": 24023, + "offset": 23756, "col": 9, "tokLen": 1 } @@ -17095,11 +17095,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -17108,16 +17108,16 @@ } }, { - "id": "0x7f0da6e6ef98", + "id": "0x3872eea8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 }, "end": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 } @@ -17129,16 +17129,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6dda8", + "id": "0x3872dcb8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 }, "end": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 } @@ -17154,33 +17154,33 @@ ] }, { - "id": "0x7f0da6e6f088", + "id": "0x3872ef98", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24041, - "line": 782, + "offset": 23774, + "line": 774, "col": 9, "tokLen": 6 }, "end": { - "offset": 24054, + "offset": 23787, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e6f058", + "id": "0x3872ef68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24048, + "offset": 23781, "col": 16, "tokLen": 4 }, "end": { - "offset": 24054, + "offset": 23787, "col": 22, "tokLen": 13 } @@ -17190,7 +17190,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1070", + "id": "0x37ff1c20", "kind": "EnumConstantDecl", "name": "QUARTER_SPEED", "type": { @@ -17203,35 +17203,35 @@ ] }, { - "id": "0x7f0da6e703c8", + "id": "0x387302d8", "kind": "IfStmt", "range": { "begin": { - "offset": 24073, - "line": 783, + "offset": 23806, + "line": 775, "col": 5, "tokLen": 2 }, "end": { - "offset": 24110, - "line": 784, + "offset": 23843, + "line": 776, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e70318", + "id": "0x38730228", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24077, - "line": 783, + "offset": 23810, + "line": 775, "col": 9, "tokLen": 1 }, "end": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 } @@ -17243,16 +17243,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e70300", + "id": "0x38730210", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24079, + "offset": 23812, "col": 11, "tokLen": 2 }, "end": { - "offset": 24079, + "offset": 23812, "col": 11, "tokLen": 2 } @@ -17264,16 +17264,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e702e0", + "id": "0x387301f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24079, + "offset": 23812, "col": 11, "tokLen": 2 }, "end": { - "offset": 24079, + "offset": 23812, "col": 11, "tokLen": 2 } @@ -17283,7 +17283,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -17294,16 +17294,16 @@ ] }, { - "id": "0x7f0da6e6f0b8", + "id": "0x3872efc8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24077, + "offset": 23810, "col": 9, "tokLen": 1 }, "end": { - "offset": 24077, + "offset": 23810, "col": 9, "tokLen": 1 } @@ -17311,11 +17311,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -17324,16 +17324,16 @@ } }, { - "id": "0x7f0da6e702c8", + "id": "0x387301d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 }, "end": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 } @@ -17345,16 +17345,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6f0d8", + "id": "0x3872efe8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 }, "end": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 } @@ -17370,33 +17370,33 @@ ] }, { - "id": "0x7f0da6e703b8", + "id": "0x387302c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24097, - "line": 784, + "offset": 23830, + "line": 776, "col": 9, "tokLen": 6 }, "end": { - "offset": 24110, + "offset": 23843, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e70388", + "id": "0x38730298", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24104, + "offset": 23837, "col": 16, "tokLen": 4 }, "end": { - "offset": 24110, + "offset": 23843, "col": 22, "tokLen": 9 } @@ -17406,7 +17406,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc10c0", + "id": "0x37ff1c70", "kind": "EnumConstantDecl", "name": "G2_108MHZ", "type": { @@ -17419,35 +17419,35 @@ ] }, { - "id": "0x7f0da6e716f8", + "id": "0x38731608", "kind": "IfStmt", "range": { "begin": { - "offset": 24125, - "line": 785, + "offset": 23858, + "line": 777, "col": 5, "tokLen": 2 }, "end": { - "offset": 24162, - "line": 786, + "offset": 23895, + "line": 778, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e71648", + "id": "0x38731558", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24129, - "line": 785, + "offset": 23862, + "line": 777, "col": 9, "tokLen": 1 }, "end": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 } @@ -17459,16 +17459,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e71630", + "id": "0x38731540", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24131, + "offset": 23864, "col": 11, "tokLen": 2 }, "end": { - "offset": 24131, + "offset": 23864, "col": 11, "tokLen": 2 } @@ -17480,16 +17480,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e71610", + "id": "0x38731520", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24131, + "offset": 23864, "col": 11, "tokLen": 2 }, "end": { - "offset": 24131, + "offset": 23864, "col": 11, "tokLen": 2 } @@ -17499,7 +17499,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -17510,16 +17510,16 @@ ] }, { - "id": "0x7f0da6e703e8", + "id": "0x387302f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24129, + "offset": 23862, "col": 9, "tokLen": 1 }, "end": { - "offset": 24129, + "offset": 23862, "col": 9, "tokLen": 1 } @@ -17527,11 +17527,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -17540,16 +17540,16 @@ } }, { - "id": "0x7f0da6e715f8", + "id": "0x38731508", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 }, "end": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 } @@ -17561,16 +17561,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e70408", + "id": "0x38730318", "kind": "StringLiteral", "range": { "begin": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 }, "end": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 } @@ -17586,33 +17586,33 @@ ] }, { - "id": "0x7f0da6e716e8", + "id": "0x387315f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24149, - "line": 786, + "offset": 23882, + "line": 778, "col": 9, "tokLen": 6 }, "end": { - "offset": 24162, + "offset": 23895, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e716b8", + "id": "0x387315c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24156, + "offset": 23889, "col": 16, "tokLen": 4 }, "end": { - "offset": 24162, + "offset": 23895, "col": 22, "tokLen": 9 } @@ -17622,7 +17622,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1110", + "id": "0x37ff1cc0", "kind": "EnumConstantDecl", "name": "G2_144MHZ", "type": { @@ -17635,17 +17635,17 @@ ] }, { - "id": "0x7f0da6e71d80", + "id": "0x38731c90", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 24177, - "line": 787, + "offset": 23910, + "line": 779, "col": 5, "tokLen": 5 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17657,16 +17657,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e71d68", + "id": "0x38731c78", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 24177, + "offset": 23910, "col": 5, "tokLen": 5 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17677,16 +17677,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e71d38", + "id": "0x38731c48", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17704,16 +17704,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e71d20", + "id": "0x38731c30", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17726,16 +17726,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e71cf8", + "id": "0x38731c08", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17747,7 +17747,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -17756,16 +17756,16 @@ }, "inner": [ { - "id": "0x7f0da6e71cd8", + "id": "0x38731be8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17775,9 +17775,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e71cd0", + "temp": "0x38731be0", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -17786,16 +17786,16 @@ }, "inner": [ { - "id": "0x7f0da6e71ca0", + "id": "0x38731bb0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17812,16 +17812,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e71c88", + "id": "0x38731b98", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -17835,16 +17835,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e71c70", + "id": "0x38731b80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -17857,16 +17857,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e71c50", + "id": "0x38731b60", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -17876,9 +17876,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e71c48", + "temp": "0x38731b58", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -17887,16 +17887,16 @@ }, "inner": [ { - "id": "0x7f0da6e71c10", + "id": "0x38731b20", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -17909,16 +17909,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e71bf8", + "id": "0x38731b08", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24213, + "offset": 23946, "col": 41, "tokLen": 1 }, "end": { - "offset": 24213, + "offset": 23946, "col": 41, "tokLen": 1 } @@ -17930,16 +17930,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e71bd8", + "id": "0x38731ae8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24213, + "offset": 23946, "col": 41, "tokLen": 1 }, "end": { - "offset": 24213, + "offset": 23946, "col": 41, "tokLen": 1 } @@ -17949,7 +17949,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -17960,16 +17960,16 @@ ] }, { - "id": "0x7f0da6e71bc0", + "id": "0x38731ad0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 } @@ -17981,16 +17981,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e71728", + "id": "0x38731638", "kind": "StringLiteral", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 } @@ -18004,16 +18004,16 @@ ] }, { - "id": "0x7f0da6e71750", + "id": "0x38731660", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -18021,11 +18021,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18060,29 +18060,29 @@ ] } { - "id": "0x7f0da6e71f68", + "id": "0x38731e78", "kind": "FunctionDecl", "loc": { - "offset": 24251, + "offset": 23984, "file": "ToString.cpp", - "line": 790, + "line": 782, "col": 30, "tokLen": 8 }, "range": { "begin": { - "offset": 24222, + "offset": 23955, "col": 1, "tokLen": 8 }, "end": { - "offset": 24638, - "line": 802, + "offset": 24371, + "line": 794, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3769d8", + "previousDecl": "0x385a6fc8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -18096,13 +18096,13 @@ }, "inner": [ { - "id": "0x2cdbd770", + "id": "0x37fee460", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingMode" }, "decl": { - "id": "0x2cdbd6c8", + "id": "0x37fee3b8", "kind": "EnumDecl", "name": "timingMode" } @@ -18110,22 +18110,22 @@ ] }, { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "loc": { - "offset": 24279, - "line": 790, + "offset": 24012, + "line": 782, "col": 58, "tokLen": 1 }, "range": { "begin": { - "offset": 24260, + "offset": 23993, "col": 39, "tokLen": 5 }, "end": { - "offset": 24279, + "offset": 24012, "col": 58, "tokLen": 1 } @@ -18137,52 +18137,52 @@ } }, { - "id": "0x7f0da6e377d0", + "id": "0x7feb10e7c860", "kind": "CompoundStmt", "range": { "begin": { - "offset": 24282, + "offset": 24015, "col": 61, "tokLen": 1 }, "end": { - "offset": 24638, - "line": 802, + "offset": 24371, + "line": 794, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e73458", + "id": "0x38733368", "kind": "IfStmt", "range": { "begin": { - "offset": 24288, - "line": 791, + "offset": 24021, + "line": 783, "col": 5, "tokLen": 2 }, "end": { - "offset": 24326, - "line": 792, + "offset": 24059, + "line": 784, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e733a8", + "id": "0x387332b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24292, - "line": 791, + "offset": 24025, + "line": 783, "col": 9, "tokLen": 1 }, "end": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 } @@ -18194,16 +18194,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e73390", + "id": "0x387332a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24294, + "offset": 24027, "col": 11, "tokLen": 2 }, "end": { - "offset": 24294, + "offset": 24027, "col": 11, "tokLen": 2 } @@ -18215,16 +18215,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e73370", + "id": "0x38733280", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24294, + "offset": 24027, "col": 11, "tokLen": 2 }, "end": { - "offset": 24294, + "offset": 24027, "col": 11, "tokLen": 2 } @@ -18234,7 +18234,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -18245,16 +18245,16 @@ ] }, { - "id": "0x7f0da6e72150", + "id": "0x38732060", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24292, + "offset": 24025, "col": 9, "tokLen": 1 }, "end": { - "offset": 24292, + "offset": 24025, "col": 9, "tokLen": 1 } @@ -18262,11 +18262,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18275,16 +18275,16 @@ } }, { - "id": "0x7f0da6e73358", + "id": "0x38733268", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 }, "end": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 } @@ -18296,16 +18296,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e72170", + "id": "0x38732080", "kind": "StringLiteral", "range": { "begin": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 }, "end": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 } @@ -18321,33 +18321,33 @@ ] }, { - "id": "0x7f0da6e73448", + "id": "0x38733358", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24313, - "line": 792, + "offset": 24046, + "line": 784, "col": 9, "tokLen": 6 }, "end": { - "offset": 24326, + "offset": 24059, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e73418", + "id": "0x38733328", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24320, + "offset": 24053, "col": 16, "tokLen": 4 }, "end": { - "offset": 24326, + "offset": 24059, "col": 22, "tokLen": 11 } @@ -18357,7 +18357,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd790", + "id": "0x37fee480", "kind": "EnumConstantDecl", "name": "AUTO_TIMING", "type": { @@ -18370,35 +18370,35 @@ ] }, { - "id": "0x7f0da6e74788", + "id": "0x38734698", "kind": "IfStmt", "range": { "begin": { - "offset": 24343, - "line": 793, + "offset": 24076, + "line": 785, "col": 5, "tokLen": 2 }, "end": { - "offset": 24384, - "line": 794, + "offset": 24117, + "line": 786, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6e746d8", + "id": "0x387345e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24347, - "line": 793, + "offset": 24080, + "line": 785, "col": 9, "tokLen": 1 }, "end": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 } @@ -18410,16 +18410,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e746c0", + "id": "0x387345d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24349, + "offset": 24082, "col": 11, "tokLen": 2 }, "end": { - "offset": 24349, + "offset": 24082, "col": 11, "tokLen": 2 } @@ -18431,16 +18431,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e746a0", + "id": "0x387345b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24349, + "offset": 24082, "col": 11, "tokLen": 2 }, "end": { - "offset": 24349, + "offset": 24082, "col": 11, "tokLen": 2 } @@ -18450,7 +18450,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -18461,16 +18461,16 @@ ] }, { - "id": "0x7f0da6e73478", + "id": "0x38733388", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24347, + "offset": 24080, "col": 9, "tokLen": 1 }, "end": { - "offset": 24347, + "offset": 24080, "col": 9, "tokLen": 1 } @@ -18478,11 +18478,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18491,16 +18491,16 @@ } }, { - "id": "0x7f0da6e74688", + "id": "0x38734598", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 }, "end": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 } @@ -18512,16 +18512,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e73498", + "id": "0x387333a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 }, "end": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 } @@ -18537,33 +18537,33 @@ ] }, { - "id": "0x7f0da6e74778", + "id": "0x38734688", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24371, - "line": 794, + "offset": 24104, + "line": 786, "col": 9, "tokLen": 6 }, "end": { - "offset": 24384, + "offset": 24117, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6e74748", + "id": "0x38734658", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24378, + "offset": 24111, "col": 16, "tokLen": 4 }, "end": { - "offset": 24384, + "offset": 24117, "col": 22, "tokLen": 16 } @@ -18573,7 +18573,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd7e0", + "id": "0x37fee4d0", "kind": "EnumConstantDecl", "name": "TRIGGER_EXPOSURE", "type": { @@ -18586,35 +18586,35 @@ ] }, { - "id": "0x7f0da6e75ab8", + "id": "0x387359c8", "kind": "IfStmt", "range": { "begin": { - "offset": 24406, - "line": 795, + "offset": 24139, + "line": 787, "col": 5, "tokLen": 2 }, "end": { - "offset": 24446, - "line": 796, + "offset": 24179, + "line": 788, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e75a08", + "id": "0x38735918", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24410, - "line": 795, + "offset": 24143, + "line": 787, "col": 9, "tokLen": 1 }, "end": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 } @@ -18626,16 +18626,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e759f0", + "id": "0x38735900", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24412, + "offset": 24145, "col": 11, "tokLen": 2 }, "end": { - "offset": 24412, + "offset": 24145, "col": 11, "tokLen": 2 } @@ -18647,16 +18647,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e759d0", + "id": "0x387358e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24412, + "offset": 24145, "col": 11, "tokLen": 2 }, "end": { - "offset": 24412, + "offset": 24145, "col": 11, "tokLen": 2 } @@ -18666,7 +18666,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -18677,16 +18677,16 @@ ] }, { - "id": "0x7f0da6e747a8", + "id": "0x387346b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24410, + "offset": 24143, "col": 9, "tokLen": 1 }, "end": { - "offset": 24410, + "offset": 24143, "col": 9, "tokLen": 1 } @@ -18694,11 +18694,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18707,16 +18707,16 @@ } }, { - "id": "0x7f0da6e759b8", + "id": "0x387358c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 }, "end": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 } @@ -18728,16 +18728,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e747c8", + "id": "0x387346d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 }, "end": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 } @@ -18753,33 +18753,33 @@ ] }, { - "id": "0x7f0da6e75aa8", + "id": "0x387359b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24433, - "line": 796, + "offset": 24166, + "line": 788, "col": 9, "tokLen": 6 }, "end": { - "offset": 24446, + "offset": 24179, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e75a78", + "id": "0x38735988", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24440, + "offset": 24173, "col": 16, "tokLen": 4 }, "end": { - "offset": 24446, + "offset": 24179, "col": 22, "tokLen": 5 } @@ -18789,7 +18789,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd830", + "id": "0x37fee520", "kind": "EnumConstantDecl", "name": "GATED", "type": { @@ -18802,35 +18802,35 @@ ] }, { - "id": "0x7f0da6e35df8", + "id": "0x38736cf8", "kind": "IfStmt", "range": { "begin": { - "offset": 24457, - "line": 797, + "offset": 24190, + "line": 789, "col": 5, "tokLen": 2 }, "end": { - "offset": 24504, - "line": 798, + "offset": 24237, + "line": 790, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e35d48", + "id": "0x38736c48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24461, - "line": 797, + "offset": 24194, + "line": 789, "col": 9, "tokLen": 1 }, "end": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 } @@ -18842,16 +18842,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e35d30", + "id": "0x38736c30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24463, + "offset": 24196, "col": 11, "tokLen": 2 }, "end": { - "offset": 24463, + "offset": 24196, "col": 11, "tokLen": 2 } @@ -18863,16 +18863,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e35d10", + "id": "0x38736c10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24463, + "offset": 24196, "col": 11, "tokLen": 2 }, "end": { - "offset": 24463, + "offset": 24196, "col": 11, "tokLen": 2 } @@ -18882,7 +18882,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -18893,16 +18893,16 @@ ] }, { - "id": "0x7f0da6e75ad8", + "id": "0x387359e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24461, + "offset": 24194, "col": 9, "tokLen": 1 }, "end": { - "offset": 24461, + "offset": 24194, "col": 9, "tokLen": 1 } @@ -18910,11 +18910,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18923,16 +18923,16 @@ } }, { - "id": "0x7f0da6e35cf8", + "id": "0x38736bf8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 }, "end": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 } @@ -18944,16 +18944,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e75af8", + "id": "0x38735a08", "kind": "StringLiteral", "range": { "begin": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 }, "end": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 } @@ -18969,33 +18969,33 @@ ] }, { - "id": "0x7f0da6e35de8", + "id": "0x38736ce8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24491, - "line": 798, + "offset": 24224, + "line": 790, "col": 9, "tokLen": 6 }, "end": { - "offset": 24504, + "offset": 24237, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e35db8", + "id": "0x38736cb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24498, + "offset": 24231, "col": 16, "tokLen": 4 }, "end": { - "offset": 24504, + "offset": 24237, "col": 22, "tokLen": 13 } @@ -19005,7 +19005,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd880", + "id": "0x37fee570", "kind": "EnumConstantDecl", "name": "BURST_TRIGGER", "type": { @@ -19018,35 +19018,35 @@ ] }, { - "id": "0x7f0da6e37128", + "id": "0x7feb10e7c1b8", "kind": "IfStmt", "range": { "begin": { - "offset": 24523, - "line": 799, + "offset": 24256, + "line": 791, "col": 5, "tokLen": 2 }, "end": { - "offset": 24571, - "line": 800, + "offset": 24304, + "line": 792, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e37078", + "id": "0x7feb10e7c108", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24527, - "line": 799, + "offset": 24260, + "line": 791, "col": 9, "tokLen": 1 }, "end": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 } @@ -19058,16 +19058,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e37060", + "id": "0x7feb10e7c0f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24529, + "offset": 24262, "col": 11, "tokLen": 2 }, "end": { - "offset": 24529, + "offset": 24262, "col": 11, "tokLen": 2 } @@ -19079,16 +19079,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e37040", + "id": "0x7feb10e7c0d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24529, + "offset": 24262, "col": 11, "tokLen": 2 }, "end": { - "offset": 24529, + "offset": 24262, "col": 11, "tokLen": 2 } @@ -19098,7 +19098,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -19109,16 +19109,16 @@ ] }, { - "id": "0x7f0da6e35e18", + "id": "0x38736d18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24527, + "offset": 24260, "col": 9, "tokLen": 1 }, "end": { - "offset": 24527, + "offset": 24260, "col": 9, "tokLen": 1 } @@ -19126,11 +19126,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -19139,16 +19139,16 @@ } }, { - "id": "0x7f0da6e37028", + "id": "0x7feb10e7c0b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 }, "end": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 } @@ -19160,16 +19160,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e35e38", + "id": "0x38736d38", "kind": "StringLiteral", "range": { "begin": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 }, "end": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 } @@ -19185,33 +19185,33 @@ ] }, { - "id": "0x7f0da6e37118", + "id": "0x7feb10e7c1a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24558, - "line": 800, + "offset": 24291, + "line": 792, "col": 9, "tokLen": 6 }, "end": { - "offset": 24571, + "offset": 24304, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e370e8", + "id": "0x7feb10e7c178", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24565, + "offset": 24298, "col": 16, "tokLen": 4 }, "end": { - "offset": 24571, + "offset": 24304, "col": 22, "tokLen": 13 } @@ -19221,7 +19221,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd8d0", + "id": "0x37fee5c0", "kind": "EnumConstantDecl", "name": "TRIGGER_GATED", "type": { @@ -19234,17 +19234,17 @@ ] }, { - "id": "0x7f0da6e377b8", + "id": "0x7feb10e7c848", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 24590, - "line": 801, + "offset": 24323, + "line": 793, "col": 5, "tokLen": 5 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19256,16 +19256,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e377a0", + "id": "0x7feb10e7c830", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 24590, + "offset": 24323, "col": 5, "tokLen": 5 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19276,16 +19276,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e37770", + "id": "0x7feb10e7c800", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19303,16 +19303,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e37758", + "id": "0x7feb10e7c7e8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19325,16 +19325,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e37730", + "id": "0x7feb10e7c7c0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19346,7 +19346,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -19355,16 +19355,16 @@ }, "inner": [ { - "id": "0x7f0da6e37710", + "id": "0x7feb10e7c7a0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19374,9 +19374,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e37708", + "temp": "0x7feb10e7c798", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -19385,16 +19385,16 @@ }, "inner": [ { - "id": "0x7f0da6e376d8", + "id": "0x7feb10e7c768", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19411,16 +19411,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e376c0", + "id": "0x7feb10e7c750", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19434,16 +19434,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e376a8", + "id": "0x7feb10e7c738", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19456,16 +19456,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e37688", + "id": "0x7feb10e7c718", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19475,9 +19475,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e37680", + "temp": "0x7feb10e7c710", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -19486,16 +19486,16 @@ }, "inner": [ { - "id": "0x7f0da6e37648", + "id": "0x7feb10e7c6d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19508,16 +19508,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e37630", + "id": "0x7feb10e7c6c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24632, + "offset": 24365, "col": 47, "tokLen": 1 }, "end": { - "offset": 24632, + "offset": 24365, "col": 47, "tokLen": 1 } @@ -19529,16 +19529,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e37610", + "id": "0x7feb10e7c6a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24632, + "offset": 24365, "col": 47, "tokLen": 1 }, "end": { - "offset": 24632, + "offset": 24365, "col": 47, "tokLen": 1 } @@ -19548,7 +19548,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -19559,16 +19559,16 @@ ] }, { - "id": "0x7f0da6e375f8", + "id": "0x7feb10e7c688", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 } @@ -19580,16 +19580,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e37158", + "id": "0x7feb10e7c1e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 } @@ -19603,16 +19603,16 @@ ] }, { - "id": "0x7f0da6e37188", + "id": "0x7feb10e7c218", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19620,11 +19620,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -19659,29 +19659,29 @@ ] } { - "id": "0x7f0da6e37988", + "id": "0x7feb10e7ca18", "kind": "FunctionDecl", "loc": { - "offset": 24678, + "offset": 24411, "file": "ToString.cpp", - "line": 804, + "line": 796, "col": 38, "tokLen": 8 }, "range": { "begin": { - "offset": 24641, + "offset": 24374, "col": 1, "tokLen": 8 }, "end": { - "offset": 24979, - "line": 812, + "offset": 24712, + "line": 804, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d376f28", + "previousDecl": "0x385a7518", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -19695,13 +19695,13 @@ }, "inner": [ { - "id": "0x2cdb87d0", + "id": "0x37fe94c0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::frameDiscardPolicy" }, "decl": { - "id": "0x2cdb8730", + "id": "0x37fe9420", "kind": "EnumDecl", "name": "frameDiscardPolicy" } @@ -19709,22 +19709,22 @@ ] }, { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "loc": { - "offset": 24706, - "line": 804, + "offset": 24439, + "line": 796, "col": 66, "tokLen": 1 }, "range": { "begin": { - "offset": 24687, + "offset": 24420, "col": 47, "tokLen": 5 }, "end": { - "offset": 24706, + "offset": 24439, "col": 66, "tokLen": 1 } @@ -19736,52 +19736,52 @@ } }, { - "id": "0x7f0da6e3bbc8", + "id": "0x7feb10e80c58", "kind": "CompoundStmt", "range": { "begin": { - "offset": 24709, + "offset": 24442, "col": 69, "tokLen": 1 }, "end": { - "offset": 24979, - "line": 812, + "offset": 24712, + "line": 804, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e38e88", + "id": "0x7feb10e7df18", "kind": "IfStmt", "range": { "begin": { - "offset": 24715, - "line": 805, + "offset": 24448, + "line": 797, "col": 5, "tokLen": 2 }, "end": { - "offset": 24758, - "line": 806, + "offset": 24491, + "line": 798, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e38dd8", + "id": "0x7feb10e7de68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24719, - "line": 805, + "offset": 24452, + "line": 797, "col": 9, "tokLen": 1 }, "end": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 } @@ -19793,16 +19793,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e38dc0", + "id": "0x7feb10e7de50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24721, + "offset": 24454, "col": 11, "tokLen": 2 }, "end": { - "offset": 24721, + "offset": 24454, "col": 11, "tokLen": 2 } @@ -19814,16 +19814,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e38da0", + "id": "0x7feb10e7de30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24721, + "offset": 24454, "col": 11, "tokLen": 2 }, "end": { - "offset": 24721, + "offset": 24454, "col": 11, "tokLen": 2 } @@ -19833,7 +19833,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -19844,16 +19844,16 @@ ] }, { - "id": "0x7f0da6e37b70", + "id": "0x7feb10e7cc00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24719, + "offset": 24452, "col": 9, "tokLen": 1 }, "end": { - "offset": 24719, + "offset": 24452, "col": 9, "tokLen": 1 } @@ -19861,11 +19861,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "name": "s", "type": { @@ -19874,16 +19874,16 @@ } }, { - "id": "0x7f0da6e38d88", + "id": "0x7feb10e7de18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 }, "end": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 } @@ -19895,16 +19895,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e37b90", + "id": "0x7feb10e7cc20", "kind": "StringLiteral", "range": { "begin": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 }, "end": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 } @@ -19920,33 +19920,33 @@ ] }, { - "id": "0x7f0da6e38e78", + "id": "0x7feb10e7df08", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24745, - "line": 806, + "offset": 24478, + "line": 798, "col": 9, "tokLen": 6 }, "end": { - "offset": 24758, + "offset": 24491, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e38e48", + "id": "0x7feb10e7ded8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24752, + "offset": 24485, "col": 16, "tokLen": 4 }, "end": { - "offset": 24758, + "offset": 24491, "col": 22, "tokLen": 10 } @@ -19956,7 +19956,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdb87f0", + "id": "0x37fe94e0", "kind": "EnumConstantDecl", "name": "NO_DISCARD", "type": { @@ -19969,35 +19969,35 @@ ] }, { - "id": "0x7f0da6e3a1b8", + "id": "0x7feb10e7f248", "kind": "IfStmt", "range": { "begin": { - "offset": 24774, - "line": 807, + "offset": 24507, + "line": 799, "col": 5, "tokLen": 2 }, "end": { - "offset": 24820, - "line": 808, + "offset": 24553, + "line": 800, "col": 22, "tokLen": 20 } }, "inner": [ { - "id": "0x7f0da6e3a108", + "id": "0x7feb10e7f198", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24778, - "line": 807, + "offset": 24511, + "line": 799, "col": 9, "tokLen": 1 }, "end": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 } @@ -20009,16 +20009,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3a0f0", + "id": "0x7feb10e7f180", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24780, + "offset": 24513, "col": 11, "tokLen": 2 }, "end": { - "offset": 24780, + "offset": 24513, "col": 11, "tokLen": 2 } @@ -20030,16 +20030,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3a0d0", + "id": "0x7feb10e7f160", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24780, + "offset": 24513, "col": 11, "tokLen": 2 }, "end": { - "offset": 24780, + "offset": 24513, "col": 11, "tokLen": 2 } @@ -20049,7 +20049,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -20060,16 +20060,16 @@ ] }, { - "id": "0x7f0da6e38ea8", + "id": "0x7feb10e7df38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24778, + "offset": 24511, "col": 9, "tokLen": 1 }, "end": { - "offset": 24778, + "offset": 24511, "col": 9, "tokLen": 1 } @@ -20077,11 +20077,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "name": "s", "type": { @@ -20090,16 +20090,16 @@ } }, { - "id": "0x7f0da6e3a0b8", + "id": "0x7feb10e7f148", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 }, "end": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 } @@ -20111,16 +20111,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e38ec8", + "id": "0x7feb10e7df58", "kind": "StringLiteral", "range": { "begin": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 }, "end": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 } @@ -20136,33 +20136,33 @@ ] }, { - "id": "0x7f0da6e3a1a8", + "id": "0x7feb10e7f238", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24807, - "line": 808, + "offset": 24540, + "line": 800, "col": 9, "tokLen": 6 }, "end": { - "offset": 24820, + "offset": 24553, "col": 22, "tokLen": 20 } }, "inner": [ { - "id": "0x7f0da6e3a178", + "id": "0x7feb10e7f208", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24814, + "offset": 24547, "col": 16, "tokLen": 4 }, "end": { - "offset": 24820, + "offset": 24553, "col": 22, "tokLen": 20 } @@ -20172,7 +20172,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdb8840", + "id": "0x37fe9530", "kind": "EnumConstantDecl", "name": "DISCARD_EMPTY_FRAMES", "type": { @@ -20185,35 +20185,35 @@ ] }, { - "id": "0x7f0da6e3b4e8", + "id": "0x7feb10e80578", "kind": "IfStmt", "range": { "begin": { - "offset": 24846, - "line": 809, + "offset": 24579, + "line": 801, "col": 5, "tokLen": 2 }, "end": { - "offset": 24894, - "line": 810, + "offset": 24627, + "line": 802, "col": 22, "tokLen": 22 } }, "inner": [ { - "id": "0x7f0da6e3b438", + "id": "0x7feb10e804c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24850, - "line": 809, + "offset": 24583, + "line": 801, "col": 9, "tokLen": 1 }, "end": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 } @@ -20225,16 +20225,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3b420", + "id": "0x7feb10e804b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24852, + "offset": 24585, "col": 11, "tokLen": 2 }, "end": { - "offset": 24852, + "offset": 24585, "col": 11, "tokLen": 2 } @@ -20246,16 +20246,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3b400", + "id": "0x7feb10e80490", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24852, + "offset": 24585, "col": 11, "tokLen": 2 }, "end": { - "offset": 24852, + "offset": 24585, "col": 11, "tokLen": 2 } @@ -20265,7 +20265,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -20276,16 +20276,16 @@ ] }, { - "id": "0x7f0da6e3a1d8", + "id": "0x7feb10e7f268", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24850, + "offset": 24583, "col": 9, "tokLen": 1 }, "end": { - "offset": 24850, + "offset": 24583, "col": 9, "tokLen": 1 } @@ -20293,11 +20293,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "name": "s", "type": { @@ -20306,16 +20306,16 @@ } }, { - "id": "0x7f0da6e3b3e8", + "id": "0x7feb10e80478", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 }, "end": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 } @@ -20327,16 +20327,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3a1f8", + "id": "0x7feb10e7f288", "kind": "StringLiteral", "range": { "begin": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 }, "end": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 } @@ -20352,33 +20352,33 @@ ] }, { - "id": "0x7f0da6e3b4d8", + "id": "0x7feb10e80568", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24881, - "line": 810, + "offset": 24614, + "line": 802, "col": 9, "tokLen": 6 }, "end": { - "offset": 24894, + "offset": 24627, "col": 22, "tokLen": 22 } }, "inner": [ { - "id": "0x7f0da6e3b4a8", + "id": "0x7feb10e80538", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24888, + "offset": 24621, "col": 16, "tokLen": 4 }, "end": { - "offset": 24894, + "offset": 24627, "col": 22, "tokLen": 22 } @@ -20388,7 +20388,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdb8890", + "id": "0x37fe9580", "kind": "EnumConstantDecl", "name": "DISCARD_PARTIAL_FRAMES", "type": { @@ -20401,17 +20401,17 @@ ] }, { - "id": "0x7f0da6e3bbb0", + "id": "0x7feb10e80c40", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 24922, - "line": 811, + "offset": 24655, + "line": 803, "col": 5, "tokLen": 5 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20423,16 +20423,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e3bb98", + "id": "0x7feb10e80c28", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 24922, + "offset": 24655, "col": 5, "tokLen": 5 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20443,16 +20443,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e3bb68", + "id": "0x7feb10e80bf8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20470,16 +20470,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e3bb50", + "id": "0x7feb10e80be0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20492,16 +20492,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e3bb28", + "id": "0x7feb10e80bb8", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20513,7 +20513,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -20522,16 +20522,16 @@ }, "inner": [ { - "id": "0x7f0da6e3bb08", + "id": "0x7feb10e80b98", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20541,9 +20541,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e3bb00", + "temp": "0x7feb10e80b90", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -20552,16 +20552,16 @@ }, "inner": [ { - "id": "0x7f0da6e3bad0", + "id": "0x7feb10e80b60", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20578,16 +20578,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e3bab8", + "id": "0x7feb10e80b48", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20601,16 +20601,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e3baa0", + "id": "0x7feb10e80b30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20623,16 +20623,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e3ba80", + "id": "0x7feb10e80b10", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20642,9 +20642,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e3ba78", + "temp": "0x7feb10e80b08", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -20653,16 +20653,16 @@ }, "inner": [ { - "id": "0x7f0da6e3ba40", + "id": "0x7feb10e80ad0", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20675,16 +20675,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3ba28", + "id": "0x7feb10e80ab8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24973, + "offset": 24706, "col": 56, "tokLen": 1 }, "end": { - "offset": 24973, + "offset": 24706, "col": 56, "tokLen": 1 } @@ -20696,16 +20696,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3ba08", + "id": "0x7feb10e80a98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24973, + "offset": 24706, "col": 56, "tokLen": 1 }, "end": { - "offset": 24973, + "offset": 24706, "col": 56, "tokLen": 1 } @@ -20715,7 +20715,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -20726,16 +20726,16 @@ ] }, { - "id": "0x7f0da6e3b9f0", + "id": "0x7feb10e80a80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 } @@ -20747,16 +20747,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3b518", + "id": "0x7feb10e805a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 } @@ -20770,16 +20770,16 @@ ] }, { - "id": "0x7f0da6e3b550", + "id": "0x7feb10e805e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20787,11 +20787,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "name": "s", "type": { @@ -20826,29 +20826,29 @@ ] } { - "id": "0x7f0da6e3bd78", + "id": "0x7feb10e80e08", "kind": "FunctionDecl", "loc": { - "offset": 25011, + "offset": 24744, "file": "ToString.cpp", - "line": 814, + "line": 806, "col": 30, "tokLen": 8 }, "range": { "begin": { - "offset": 24982, + "offset": 24715, "col": 1, "tokLen": 8 }, "end": { - "offset": 25196, - "line": 820, + "offset": 24929, + "line": 812, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d377478", + "previousDecl": "0x385a7a68", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -20862,13 +20862,13 @@ }, "inner": [ { - "id": "0x2cdbbda0", + "id": "0x37feca90", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::fileFormat" }, "decl": { - "id": "0x2cdbbd00", + "id": "0x37fec9f0", "kind": "EnumDecl", "name": "fileFormat" } @@ -20876,22 +20876,22 @@ ] }, { - "id": "0x7f0da6e3bca0", + "id": "0x7feb10e80d30", "kind": "ParmVarDecl", "loc": { - "offset": 25039, - "line": 814, + "offset": 24772, + "line": 806, "col": 58, "tokLen": 1 }, "range": { "begin": { - "offset": 25020, + "offset": 24753, "col": 39, "tokLen": 5 }, "end": { - "offset": 25039, + "offset": 24772, "col": 58, "tokLen": 1 } @@ -20903,52 +20903,52 @@ } }, { - "id": "0x7f0da6e3ec40", + "id": "0x7feb10e83cd0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 25042, + "offset": 24775, "col": 61, "tokLen": 1 }, "end": { - "offset": 25196, - "line": 820, + "offset": 24929, + "line": 812, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e3d268", + "id": "0x7feb10e822f8", "kind": "IfStmt", "range": { "begin": { - "offset": 25048, - "line": 815, + "offset": 24781, + "line": 807, "col": 5, "tokLen": 2 }, "end": { - "offset": 25086, - "line": 816, + "offset": 24819, + "line": 808, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6e3d1b8", + "id": "0x7feb10e82248", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25052, - "line": 815, + "offset": 24785, + "line": 807, "col": 9, "tokLen": 1 }, "end": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 } @@ -20960,16 +20960,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3d1a0", + "id": "0x7feb10e82230", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25054, + "offset": 24787, "col": 11, "tokLen": 2 }, "end": { - "offset": 25054, + "offset": 24787, "col": 11, "tokLen": 2 } @@ -20981,16 +20981,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3d180", + "id": "0x7feb10e82210", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25054, + "offset": 24787, "col": 11, "tokLen": 2 }, "end": { - "offset": 25054, + "offset": 24787, "col": 11, "tokLen": 2 } @@ -21000,7 +21000,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -21011,16 +21011,16 @@ ] }, { - "id": "0x7f0da6e3bf60", + "id": "0x7feb10e80ff0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25052, + "offset": 24785, "col": 9, "tokLen": 1 }, "end": { - "offset": 25052, + "offset": 24785, "col": 9, "tokLen": 1 } @@ -21028,11 +21028,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3bca0", + "id": "0x7feb10e80d30", "kind": "ParmVarDecl", "name": "s", "type": { @@ -21041,16 +21041,16 @@ } }, { - "id": "0x7f0da6e3d168", + "id": "0x7feb10e821f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 }, "end": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 } @@ -21062,16 +21062,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3bf80", + "id": "0x7feb10e81010", "kind": "StringLiteral", "range": { "begin": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 }, "end": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 } @@ -21087,33 +21087,33 @@ ] }, { - "id": "0x7f0da6e3d258", + "id": "0x7feb10e822e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25073, - "line": 816, + "offset": 24806, + "line": 808, "col": 9, "tokLen": 6 }, "end": { - "offset": 25086, + "offset": 24819, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6e3d228", + "id": "0x7feb10e822b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25080, + "offset": 24813, "col": 16, "tokLen": 4 }, "end": { - "offset": 25086, + "offset": 24819, "col": 22, "tokLen": 4 } @@ -21123,7 +21123,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbbe10", + "id": "0x37fecb00", "kind": "EnumConstantDecl", "name": "HDF5", "type": { @@ -21136,35 +21136,35 @@ ] }, { - "id": "0x7f0da6e3e598", + "id": "0x7feb10e83628", "kind": "IfStmt", "range": { "begin": { - "offset": 25096, - "line": 817, + "offset": 24829, + "line": 809, "col": 5, "tokLen": 2 }, "end": { - "offset": 25136, - "line": 818, + "offset": 24869, + "line": 810, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6e3e4e8", + "id": "0x7feb10e83578", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25100, - "line": 817, + "offset": 24833, + "line": 809, "col": 9, "tokLen": 1 }, "end": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 } @@ -21176,16 +21176,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3e4d0", + "id": "0x7feb10e83560", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25102, + "offset": 24835, "col": 11, "tokLen": 2 }, "end": { - "offset": 25102, + "offset": 24835, "col": 11, "tokLen": 2 } @@ -21197,16 +21197,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3e4b0", + "id": "0x7feb10e83540", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25102, + "offset": 24835, "col": 11, "tokLen": 2 }, "end": { - "offset": 25102, + "offset": 24835, "col": 11, "tokLen": 2 } @@ -21216,7 +21216,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -21227,16 +21227,16 @@ ] }, { - "id": "0x7f0da6e3d288", + "id": "0x7feb10e82318", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25100, + "offset": 24833, "col": 9, "tokLen": 1 }, "end": { - "offset": 25100, + "offset": 24833, "col": 9, "tokLen": 1 } @@ -21244,11 +21244,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3bca0", + "id": "0x7feb10e80d30", "kind": "ParmVarDecl", "name": "s", "type": { @@ -21257,16 +21257,16 @@ } }, { - "id": "0x7f0da6e3e498", + "id": "0x7feb10e83528", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 }, "end": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 } @@ -21278,16 +21278,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3d2a8", + "id": "0x7feb10e82338", "kind": "StringLiteral", "range": { "begin": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 }, "end": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 } @@ -21303,33 +21303,33 @@ ] }, { - "id": "0x7f0da6e3e588", + "id": "0x7feb10e83618", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25123, - "line": 818, + "offset": 24856, + "line": 810, "col": 9, "tokLen": 6 }, "end": { - "offset": 25136, + "offset": 24869, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6e3e558", + "id": "0x7feb10e835e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25130, + "offset": 24863, "col": 16, "tokLen": 4 }, "end": { - "offset": 25136, + "offset": 24869, "col": 22, "tokLen": 6 } @@ -21339,7 +21339,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbbdc0", + "id": "0x37fecab0", "kind": "EnumConstantDecl", "name": "BINARY", "type": { @@ -21352,17 +21352,17 @@ ] }, { - "id": "0x7f0da6e3ec28", + "id": "0x7feb10e83cb8", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 25148, - "line": 819, + "offset": 24881, + "line": 811, "col": 5, "tokLen": 5 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21374,16 +21374,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e3ec10", + "id": "0x7feb10e83ca0", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 25148, + "offset": 24881, "col": 5, "tokLen": 5 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21394,16 +21394,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e3ebe0", + "id": "0x7feb10e83c70", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21421,16 +21421,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e3ebc8", + "id": "0x7feb10e83c58", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21443,16 +21443,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e3eba0", + "id": "0x7feb10e83c30", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21464,7 +21464,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -21473,16 +21473,16 @@ }, "inner": [ { - "id": "0x7f0da6e3eb80", + "id": "0x7feb10e83c10", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21492,9 +21492,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e3eb78", + "temp": "0x7feb10e83c08", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -21503,16 +21503,16 @@ }, "inner": [ { - "id": "0x7f0da6e3eb48", + "id": "0x7feb10e83bd8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21529,16 +21529,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e3eb30", + "id": "0x7feb10e83bc0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21552,16 +21552,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e3eb18", + "id": "0x7feb10e83ba8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21574,16 +21574,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e3eaf8", + "id": "0x7feb10e83b88", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21593,9 +21593,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e3eaf0", + "temp": "0x7feb10e83b80", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -21604,16 +21604,16 @@ }, "inner": [ { - "id": "0x7f0da6e3eab8", + "id": "0x7feb10e83b48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21626,16 +21626,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3eaa0", + "id": "0x7feb10e83b30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25190, + "offset": 24923, "col": 47, "tokLen": 1 }, "end": { - "offset": 25190, + "offset": 24923, "col": 47, "tokLen": 1 } @@ -21647,16 +21647,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3ea80", + "id": "0x7feb10e83b10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25190, + "offset": 24923, "col": 47, "tokLen": 1 }, "end": { - "offset": 25190, + "offset": 24923, "col": 47, "tokLen": 1 } @@ -21666,7 +21666,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -21677,16 +21677,16 @@ ] }, { - "id": "0x7f0da6e3ea68", + "id": "0x7feb10e83af8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 } @@ -21698,16 +21698,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3e5c8", + "id": "0x7feb10e83658", "kind": "StringLiteral", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 } @@ -21721,16 +21721,16 @@ ] }, { - "id": "0x7f0da6e3e5f8", + "id": "0x7feb10e83688", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21738,11 +21738,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3bca0", + "id": "0x7feb10e80d30", "kind": "ParmVarDecl", "name": "s", "type": { @@ -21777,29 +21777,29 @@ ] } { - "id": "0x7f0da6e3ede8", + "id": "0x7feb10e83e78", "kind": "FunctionDecl", "loc": { - "offset": 25236, + "offset": 24969, "file": "ToString.cpp", - "line": 822, + "line": 814, "col": 38, "tokLen": 8 }, "range": { "begin": { - "offset": 25199, + "offset": 24932, "col": 1, "tokLen": 8 }, "end": { - "offset": 25630, - "line": 832, + "offset": 25363, + "line": 824, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3779c8", + "previousDecl": "0x385a7fb8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -21813,13 +21813,13 @@ }, "inner": [ { - "id": "0x2cdbd540", + "id": "0x37fee230", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::externalSignalFlag" }, "decl": { - "id": "0x2cdbd498", + "id": "0x37fee188", "kind": "EnumDecl", "name": "externalSignalFlag" } @@ -21827,22 +21827,22 @@ ] }, { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "loc": { - "offset": 25264, - "line": 822, + "offset": 24997, + "line": 814, "col": 66, "tokLen": 1 }, "range": { "begin": { - "offset": 25245, + "offset": 24978, "col": 47, "tokLen": 5 }, "end": { - "offset": 25264, + "offset": 24997, "col": 66, "tokLen": 1 } @@ -21854,52 +21854,52 @@ } }, { - "id": "0x7f0da6e44338", + "id": "0x7feb10e893c8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 25267, + "offset": 25000, "col": 69, "tokLen": 1 }, "end": { - "offset": 25630, - "line": 832, + "offset": 25363, + "line": 824, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e402e8", + "id": "0x7feb10e85378", "kind": "IfStmt", "range": { "begin": { - "offset": 25273, - "line": 823, + "offset": 25006, + "line": 815, "col": 5, "tokLen": 2 }, "end": { - "offset": 25329, - "line": 824, + "offset": 25062, + "line": 816, "col": 22, "tokLen": 22 } }, "inner": [ { - "id": "0x7f0da6e40238", + "id": "0x7feb10e852c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25277, - "line": 823, + "offset": 25010, + "line": 815, "col": 9, "tokLen": 1 }, "end": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 } @@ -21911,16 +21911,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e40220", + "id": "0x7feb10e852b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25279, + "offset": 25012, "col": 11, "tokLen": 2 }, "end": { - "offset": 25279, + "offset": 25012, "col": 11, "tokLen": 2 } @@ -21932,16 +21932,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e40200", + "id": "0x7feb10e85290", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25279, + "offset": 25012, "col": 11, "tokLen": 2 }, "end": { - "offset": 25279, + "offset": 25012, "col": 11, "tokLen": 2 } @@ -21951,7 +21951,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -21962,16 +21962,16 @@ ] }, { - "id": "0x7f0da6e3efd0", + "id": "0x7feb10e84060", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25277, + "offset": 25010, "col": 9, "tokLen": 1 }, "end": { - "offset": 25277, + "offset": 25010, "col": 9, "tokLen": 1 } @@ -21979,11 +21979,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -21992,16 +21992,16 @@ } }, { - "id": "0x7f0da6e401e8", + "id": "0x7feb10e85278", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 }, "end": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 } @@ -22013,16 +22013,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3eff0", + "id": "0x7feb10e84080", "kind": "StringLiteral", "range": { "begin": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 }, "end": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 } @@ -22038,33 +22038,33 @@ ] }, { - "id": "0x7f0da6e402d8", + "id": "0x7feb10e85368", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25316, - "line": 824, + "offset": 25049, + "line": 816, "col": 9, "tokLen": 6 }, "end": { - "offset": 25329, + "offset": 25062, "col": 22, "tokLen": 22 } }, "inner": [ { - "id": "0x7f0da6e402a8", + "id": "0x7feb10e85338", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25323, + "offset": 25056, "col": 16, "tokLen": 4 }, "end": { - "offset": 25329, + "offset": 25062, "col": 22, "tokLen": 22 } @@ -22074,7 +22074,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd560", + "id": "0x37fee250", "kind": "EnumConstantDecl", "name": "TRIGGER_IN_RISING_EDGE", "type": { @@ -22087,35 +22087,35 @@ ] }, { - "id": "0x7f0da6e41628", + "id": "0x7feb10e866b8", "kind": "IfStmt", "range": { "begin": { - "offset": 25357, - "line": 825, + "offset": 25090, + "line": 817, "col": 5, "tokLen": 2 }, "end": { - "offset": 25414, - "line": 826, + "offset": 25147, + "line": 818, "col": 22, "tokLen": 23 } }, "inner": [ { - "id": "0x7f0da6e41578", + "id": "0x7feb10e86608", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25361, - "line": 825, + "offset": 25094, + "line": 817, "col": 9, "tokLen": 1 }, "end": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 } @@ -22127,16 +22127,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e41560", + "id": "0x7feb10e865f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25363, + "offset": 25096, "col": 11, "tokLen": 2 }, "end": { - "offset": 25363, + "offset": 25096, "col": 11, "tokLen": 2 } @@ -22148,16 +22148,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e41540", + "id": "0x7feb10e865d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25363, + "offset": 25096, "col": 11, "tokLen": 2 }, "end": { - "offset": 25363, + "offset": 25096, "col": 11, "tokLen": 2 } @@ -22167,7 +22167,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -22178,16 +22178,16 @@ ] }, { - "id": "0x7f0da6e40308", + "id": "0x7feb10e85398", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25361, + "offset": 25094, "col": 9, "tokLen": 1 }, "end": { - "offset": 25361, + "offset": 25094, "col": 9, "tokLen": 1 } @@ -22195,11 +22195,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -22208,16 +22208,16 @@ } }, { - "id": "0x7f0da6e41528", + "id": "0x7feb10e865b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 }, "end": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 } @@ -22229,16 +22229,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e40328", + "id": "0x7feb10e853b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 }, "end": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 } @@ -22254,33 +22254,33 @@ ] }, { - "id": "0x7f0da6e41618", + "id": "0x7feb10e866a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25401, - "line": 826, + "offset": 25134, + "line": 818, "col": 9, "tokLen": 6 }, "end": { - "offset": 25414, + "offset": 25147, "col": 22, "tokLen": 23 } }, "inner": [ { - "id": "0x7f0da6e415e8", + "id": "0x7feb10e86678", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25408, + "offset": 25141, "col": 16, "tokLen": 4 }, "end": { - "offset": 25414, + "offset": 25147, "col": 22, "tokLen": 23 } @@ -22290,7 +22290,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd5b0", + "id": "0x37fee2a0", "kind": "EnumConstantDecl", "name": "TRIGGER_IN_FALLING_EDGE", "type": { @@ -22303,35 +22303,35 @@ ] }, { - "id": "0x7f0da6e42958", + "id": "0x7feb10e879e8", "kind": "IfStmt", "range": { "begin": { - "offset": 25443, - "line": 827, + "offset": 25176, + "line": 819, "col": 5, "tokLen": 2 }, "end": { - "offset": 25489, - "line": 828, + "offset": 25222, + "line": 820, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e428a8", + "id": "0x7feb10e87938", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25447, - "line": 827, + "offset": 25180, + "line": 819, "col": 9, "tokLen": 1 }, "end": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 } @@ -22343,16 +22343,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e42890", + "id": "0x7feb10e87920", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25449, + "offset": 25182, "col": 11, "tokLen": 2 }, "end": { - "offset": 25449, + "offset": 25182, "col": 11, "tokLen": 2 } @@ -22364,16 +22364,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e42870", + "id": "0x7feb10e87900", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25449, + "offset": 25182, "col": 11, "tokLen": 2 }, "end": { - "offset": 25449, + "offset": 25182, "col": 11, "tokLen": 2 } @@ -22383,7 +22383,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -22394,16 +22394,16 @@ ] }, { - "id": "0x7f0da6e41648", + "id": "0x7feb10e866d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25447, + "offset": 25180, "col": 9, "tokLen": 1 }, "end": { - "offset": 25447, + "offset": 25180, "col": 9, "tokLen": 1 } @@ -22411,11 +22411,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -22424,16 +22424,16 @@ } }, { - "id": "0x7f0da6e42858", + "id": "0x7feb10e878e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 }, "end": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 } @@ -22445,16 +22445,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e41668", + "id": "0x7feb10e866f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 }, "end": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 } @@ -22470,33 +22470,33 @@ ] }, { - "id": "0x7f0da6e42948", + "id": "0x7feb10e879d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25476, - "line": 828, + "offset": 25209, + "line": 820, "col": 9, "tokLen": 6 }, "end": { - "offset": 25489, + "offset": 25222, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e42918", + "id": "0x7feb10e879a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25483, + "offset": 25216, "col": 16, "tokLen": 4 }, "end": { - "offset": 25489, + "offset": 25222, "col": 22, "tokLen": 12 } @@ -22506,7 +22506,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd600", + "id": "0x37fee2f0", "kind": "EnumConstantDecl", "name": "INVERSION_ON", "type": { @@ -22519,35 +22519,35 @@ ] }, { - "id": "0x7f0da6e43c88", + "id": "0x7feb10e88d18", "kind": "IfStmt", "range": { "begin": { - "offset": 25507, - "line": 829, + "offset": 25240, + "line": 821, "col": 5, "tokLen": 2 }, "end": { - "offset": 25554, - "line": 830, + "offset": 25287, + "line": 822, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e43bd8", + "id": "0x7feb10e88c68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25511, - "line": 829, + "offset": 25244, + "line": 821, "col": 9, "tokLen": 1 }, "end": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 } @@ -22559,16 +22559,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e43bc0", + "id": "0x7feb10e88c50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25513, + "offset": 25246, "col": 11, "tokLen": 2 }, "end": { - "offset": 25513, + "offset": 25246, "col": 11, "tokLen": 2 } @@ -22580,16 +22580,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e43ba0", + "id": "0x7feb10e88c30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25513, + "offset": 25246, "col": 11, "tokLen": 2 }, "end": { - "offset": 25513, + "offset": 25246, "col": 11, "tokLen": 2 } @@ -22599,7 +22599,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -22610,16 +22610,16 @@ ] }, { - "id": "0x7f0da6e42978", + "id": "0x7feb10e87a08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25511, + "offset": 25244, "col": 9, "tokLen": 1 }, "end": { - "offset": 25511, + "offset": 25244, "col": 9, "tokLen": 1 } @@ -22627,11 +22627,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -22640,16 +22640,16 @@ } }, { - "id": "0x7f0da6e43b88", + "id": "0x7feb10e88c18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 }, "end": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 } @@ -22661,16 +22661,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e42998", + "id": "0x7feb10e87a28", "kind": "StringLiteral", "range": { "begin": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 }, "end": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 } @@ -22686,33 +22686,33 @@ ] }, { - "id": "0x7f0da6e43c78", + "id": "0x7feb10e88d08", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25541, - "line": 830, + "offset": 25274, + "line": 822, "col": 9, "tokLen": 6 }, "end": { - "offset": 25554, + "offset": 25287, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e43c48", + "id": "0x7feb10e88cd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25548, + "offset": 25281, "col": 16, "tokLen": 4 }, "end": { - "offset": 25554, + "offset": 25287, "col": 22, "tokLen": 13 } @@ -22722,7 +22722,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd650", + "id": "0x37fee340", "kind": "EnumConstantDecl", "name": "INVERSION_OFF", "type": { @@ -22735,17 +22735,17 @@ ] }, { - "id": "0x7f0da6e44320", + "id": "0x7feb10e893b0", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 25573, - "line": 831, + "offset": 25306, + "line": 823, "col": 5, "tokLen": 5 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22757,16 +22757,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e44308", + "id": "0x7feb10e89398", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 25573, + "offset": 25306, "col": 5, "tokLen": 5 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22777,16 +22777,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e442d8", + "id": "0x7feb10e89368", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22804,16 +22804,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e442c0", + "id": "0x7feb10e89350", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22826,16 +22826,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e44298", + "id": "0x7feb10e89328", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22847,7 +22847,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -22856,16 +22856,16 @@ }, "inner": [ { - "id": "0x7f0da6e44278", + "id": "0x7feb10e89308", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22875,9 +22875,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e44270", + "temp": "0x7feb10e89300", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -22886,16 +22886,16 @@ }, "inner": [ { - "id": "0x7f0da6e44240", + "id": "0x7feb10e892d0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22912,16 +22912,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e44228", + "id": "0x7feb10e892b8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -22935,16 +22935,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e44210", + "id": "0x7feb10e892a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -22957,16 +22957,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e441f0", + "id": "0x7feb10e89280", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -22976,9 +22976,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e441e8", + "temp": "0x7feb10e89278", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -22987,16 +22987,16 @@ }, "inner": [ { - "id": "0x7f0da6e441b0", + "id": "0x7feb10e89240", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -23009,16 +23009,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e44198", + "id": "0x7feb10e89228", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25624, + "offset": 25357, "col": 56, "tokLen": 1 }, "end": { - "offset": 25624, + "offset": 25357, "col": 56, "tokLen": 1 } @@ -23030,16 +23030,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e44178", + "id": "0x7feb10e89208", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25624, + "offset": 25357, "col": 56, "tokLen": 1 }, "end": { - "offset": 25624, + "offset": 25357, "col": 56, "tokLen": 1 } @@ -23049,7 +23049,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -23060,16 +23060,16 @@ ] }, { - "id": "0x7f0da6e44160", + "id": "0x7feb10e891f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 } @@ -23081,16 +23081,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e43cb8", + "id": "0x7feb10e88d48", "kind": "StringLiteral", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 } @@ -23104,16 +23104,16 @@ ] }, { - "id": "0x7f0da6e43cf0", + "id": "0x7feb10e88d80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -23121,11 +23121,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -23160,29 +23160,29 @@ ] } { - "id": "0x7f0da6e444e8", + "id": "0x7feb10e89578", "kind": "FunctionDecl", "loc": { - "offset": 25663, + "offset": 25396, "file": "ToString.cpp", - "line": 834, + "line": 826, "col": 31, "tokLen": 8 }, "range": { "begin": { - "offset": 25633, + "offset": 25366, "col": 1, "tokLen": 8 }, "end": { - "offset": 26086, - "line": 846, + "offset": 25819, + "line": 838, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d377f18", + "previousDecl": "0x385a8508", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -23196,13 +23196,13 @@ }, "inner": [ { - "id": "0x2cdc0d30", + "id": "0x37ff18e0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::readoutMode" }, "decl": { - "id": "0x2cdc0c88", + "id": "0x37ff1838", "kind": "EnumDecl", "name": "readoutMode" } @@ -23210,22 +23210,22 @@ ] }, { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "loc": { - "offset": 25691, - "line": 834, + "offset": 25424, + "line": 826, "col": 59, "tokLen": 1 }, "range": { "begin": { - "offset": 25672, + "offset": 25405, "col": 40, "tokLen": 5 }, "end": { - "offset": 25691, + "offset": 25424, "col": 59, "tokLen": 1 } @@ -23237,52 +23237,52 @@ } }, { - "id": "0x7f0da6e4ad88", + "id": "0x7feb10e8fe18", "kind": "CompoundStmt", "range": { "begin": { - "offset": 25694, + "offset": 25427, "col": 62, "tokLen": 1 }, "end": { - "offset": 26086, - "line": 846, + "offset": 25819, + "line": 838, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e459d8", + "id": "0x7feb10e8aa68", "kind": "IfStmt", "range": { "begin": { - "offset": 25700, - "line": 835, + "offset": 25433, + "line": 827, "col": 5, "tokLen": 2 }, "end": { - "offset": 25740, - "line": 836, + "offset": 25473, + "line": 828, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e45928", + "id": "0x7feb10e8a9b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25704, - "line": 835, + "offset": 25437, + "line": 827, "col": 9, "tokLen": 1 }, "end": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 } @@ -23294,16 +23294,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e45910", + "id": "0x7feb10e8a9a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25706, + "offset": 25439, "col": 11, "tokLen": 2 }, "end": { - "offset": 25706, + "offset": 25439, "col": 11, "tokLen": 2 } @@ -23315,16 +23315,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e458f0", + "id": "0x7feb10e8a980", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25706, + "offset": 25439, "col": 11, "tokLen": 2 }, "end": { - "offset": 25706, + "offset": 25439, "col": 11, "tokLen": 2 } @@ -23334,7 +23334,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -23345,16 +23345,16 @@ ] }, { - "id": "0x7f0da6e446d0", + "id": "0x7feb10e89760", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25704, + "offset": 25437, "col": 9, "tokLen": 1 }, "end": { - "offset": 25704, + "offset": 25437, "col": 9, "tokLen": 1 } @@ -23362,11 +23362,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -23375,16 +23375,16 @@ } }, { - "id": "0x7f0da6e458d8", + "id": "0x7feb10e8a968", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 }, "end": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 } @@ -23396,16 +23396,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e446f0", + "id": "0x7feb10e89780", "kind": "StringLiteral", "range": { "begin": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 }, "end": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 } @@ -23421,33 +23421,33 @@ ] }, { - "id": "0x7f0da6e459c8", + "id": "0x7feb10e8aa58", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25727, - "line": 836, + "offset": 25460, + "line": 828, "col": 9, "tokLen": 6 }, "end": { - "offset": 25740, + "offset": 25473, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e45998", + "id": "0x7feb10e8aa28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25734, + "offset": 25467, "col": 16, "tokLen": 4 }, "end": { - "offset": 25740, + "offset": 25473, "col": 22, "tokLen": 11 } @@ -23457,7 +23457,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0d50", + "id": "0x37ff1900", "kind": "EnumConstantDecl", "name": "ANALOG_ONLY", "type": { @@ -23470,35 +23470,35 @@ ] }, { - "id": "0x7f0da6e46d08", + "id": "0x7feb10e8bd98", "kind": "IfStmt", "range": { "begin": { - "offset": 25757, - "line": 837, + "offset": 25490, + "line": 829, "col": 5, "tokLen": 2 }, "end": { - "offset": 25798, - "line": 838, + "offset": 25531, + "line": 830, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e46c58", + "id": "0x7feb10e8bce8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25761, - "line": 837, + "offset": 25494, + "line": 829, "col": 9, "tokLen": 1 }, "end": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 } @@ -23510,16 +23510,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e46c40", + "id": "0x7feb10e8bcd0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25763, + "offset": 25496, "col": 11, "tokLen": 2 }, "end": { - "offset": 25763, + "offset": 25496, "col": 11, "tokLen": 2 } @@ -23531,16 +23531,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e46c20", + "id": "0x7feb10e8bcb0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25763, + "offset": 25496, "col": 11, "tokLen": 2 }, "end": { - "offset": 25763, + "offset": 25496, "col": 11, "tokLen": 2 } @@ -23550,7 +23550,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -23561,16 +23561,16 @@ ] }, { - "id": "0x7f0da6e459f8", + "id": "0x7feb10e8aa88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25761, + "offset": 25494, "col": 9, "tokLen": 1 }, "end": { - "offset": 25761, + "offset": 25494, "col": 9, "tokLen": 1 } @@ -23578,11 +23578,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -23591,16 +23591,16 @@ } }, { - "id": "0x7f0da6e46c08", + "id": "0x7feb10e8bc98", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 }, "end": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 } @@ -23612,16 +23612,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e45a18", + "id": "0x7feb10e8aaa8", "kind": "StringLiteral", "range": { "begin": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 }, "end": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 } @@ -23637,33 +23637,33 @@ ] }, { - "id": "0x7f0da6e46cf8", + "id": "0x7feb10e8bd88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25785, - "line": 838, + "offset": 25518, + "line": 830, "col": 9, "tokLen": 6 }, "end": { - "offset": 25798, + "offset": 25531, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e46cc8", + "id": "0x7feb10e8bd58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25792, + "offset": 25525, "col": 16, "tokLen": 4 }, "end": { - "offset": 25798, + "offset": 25531, "col": 22, "tokLen": 12 } @@ -23673,7 +23673,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0da0", + "id": "0x37ff1950", "kind": "EnumConstantDecl", "name": "DIGITAL_ONLY", "type": { @@ -23686,35 +23686,35 @@ ] }, { - "id": "0x7f0da6e48038", + "id": "0x7feb10e8d0c8", "kind": "IfStmt", "range": { "begin": { - "offset": 25816, - "line": 839, + "offset": 25549, + "line": 831, "col": 5, "tokLen": 2 }, "end": { - "offset": 25864, - "line": 840, + "offset": 25597, + "line": 832, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e47f88", + "id": "0x7feb10e8d018", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25820, - "line": 839, + "offset": 25553, + "line": 831, "col": 9, "tokLen": 1 }, "end": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 } @@ -23726,16 +23726,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e47f70", + "id": "0x7feb10e8d000", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25822, + "offset": 25555, "col": 11, "tokLen": 2 }, "end": { - "offset": 25822, + "offset": 25555, "col": 11, "tokLen": 2 } @@ -23747,16 +23747,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e47f50", + "id": "0x7feb10e8cfe0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25822, + "offset": 25555, "col": 11, "tokLen": 2 }, "end": { - "offset": 25822, + "offset": 25555, "col": 11, "tokLen": 2 } @@ -23766,7 +23766,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -23777,16 +23777,16 @@ ] }, { - "id": "0x7f0da6e46d28", + "id": "0x7feb10e8bdb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25820, + "offset": 25553, "col": 9, "tokLen": 1 }, "end": { - "offset": 25820, + "offset": 25553, "col": 9, "tokLen": 1 } @@ -23794,11 +23794,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -23807,16 +23807,16 @@ } }, { - "id": "0x7f0da6e47f38", + "id": "0x7feb10e8cfc8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 }, "end": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 } @@ -23828,16 +23828,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e46d48", + "id": "0x7feb10e8bdd8", "kind": "StringLiteral", "range": { "begin": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 }, "end": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 } @@ -23853,33 +23853,33 @@ ] }, { - "id": "0x7f0da6e48028", + "id": "0x7feb10e8d0b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25851, - "line": 840, + "offset": 25584, + "line": 832, "col": 9, "tokLen": 6 }, "end": { - "offset": 25864, + "offset": 25597, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e47ff8", + "id": "0x7feb10e8d088", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25858, + "offset": 25591, "col": 16, "tokLen": 4 }, "end": { - "offset": 25864, + "offset": 25597, "col": 22, "tokLen": 18 } @@ -23889,7 +23889,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0df0", + "id": "0x37ff19a0", "kind": "EnumConstantDecl", "name": "ANALOG_AND_DIGITAL", "type": { @@ -23902,35 +23902,35 @@ ] }, { - "id": "0x7f0da6e49368", + "id": "0x7feb10e8e3f8", "kind": "IfStmt", "range": { "begin": { - "offset": 25888, - "line": 841, + "offset": 25621, + "line": 833, "col": 5, "tokLen": 2 }, "end": { - "offset": 25933, - "line": 842, + "offset": 25666, + "line": 834, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6e492b8", + "id": "0x7feb10e8e348", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25892, - "line": 841, + "offset": 25625, + "line": 833, "col": 9, "tokLen": 1 }, "end": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 } @@ -23942,16 +23942,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e492a0", + "id": "0x7feb10e8e330", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25894, + "offset": 25627, "col": 11, "tokLen": 2 }, "end": { - "offset": 25894, + "offset": 25627, "col": 11, "tokLen": 2 } @@ -23963,16 +23963,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e49280", + "id": "0x7feb10e8e310", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25894, + "offset": 25627, "col": 11, "tokLen": 2 }, "end": { - "offset": 25894, + "offset": 25627, "col": 11, "tokLen": 2 } @@ -23982,7 +23982,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -23993,16 +23993,16 @@ ] }, { - "id": "0x7f0da6e48058", + "id": "0x7feb10e8d0e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25892, + "offset": 25625, "col": 9, "tokLen": 1 }, "end": { - "offset": 25892, + "offset": 25625, "col": 9, "tokLen": 1 } @@ -24010,11 +24010,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -24023,16 +24023,16 @@ } }, { - "id": "0x7f0da6e49268", + "id": "0x7feb10e8e2f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 }, "end": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 } @@ -24044,16 +24044,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e48078", + "id": "0x7feb10e8d108", "kind": "StringLiteral", "range": { "begin": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 }, "end": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 } @@ -24069,33 +24069,33 @@ ] }, { - "id": "0x7f0da6e49358", + "id": "0x7feb10e8e3e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25920, - "line": 842, + "offset": 25653, + "line": 834, "col": 9, "tokLen": 6 }, "end": { - "offset": 25933, + "offset": 25666, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6e49328", + "id": "0x7feb10e8e3b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25927, + "offset": 25660, "col": 16, "tokLen": 4 }, "end": { - "offset": 25933, + "offset": 25666, "col": 22, "tokLen": 16 } @@ -24105,7 +24105,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0e40", + "id": "0x37ff19f0", "kind": "EnumConstantDecl", "name": "TRANSCEIVER_ONLY", "type": { @@ -24118,35 +24118,35 @@ ] }, { - "id": "0x7f0da6e4a6a8", + "id": "0x7feb10e8f738", "kind": "IfStmt", "range": { "begin": { - "offset": 25955, - "line": 843, + "offset": 25688, + "line": 835, "col": 5, "tokLen": 2 }, "end": { - "offset": 26008, - "line": 844, + "offset": 25741, + "line": 836, "col": 22, "tokLen": 23 } }, "inner": [ { - "id": "0x7f0da6e4a5f8", + "id": "0x7feb10e8f688", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25959, - "line": 843, + "offset": 25692, + "line": 835, "col": 9, "tokLen": 1 }, "end": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 } @@ -24158,16 +24158,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4a5e0", + "id": "0x7feb10e8f670", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25961, + "offset": 25694, "col": 11, "tokLen": 2 }, "end": { - "offset": 25961, + "offset": 25694, "col": 11, "tokLen": 2 } @@ -24179,16 +24179,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4a5c0", + "id": "0x7feb10e8f650", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25961, + "offset": 25694, "col": 11, "tokLen": 2 }, "end": { - "offset": 25961, + "offset": 25694, "col": 11, "tokLen": 2 } @@ -24198,7 +24198,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -24209,16 +24209,16 @@ ] }, { - "id": "0x7f0da6e49388", + "id": "0x7feb10e8e418", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25959, + "offset": 25692, "col": 9, "tokLen": 1 }, "end": { - "offset": 25959, + "offset": 25692, "col": 9, "tokLen": 1 } @@ -24226,11 +24226,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -24239,16 +24239,16 @@ } }, { - "id": "0x7f0da6e4a5a8", + "id": "0x7feb10e8f638", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 }, "end": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 } @@ -24260,16 +24260,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e493a8", + "id": "0x7feb10e8e438", "kind": "StringLiteral", "range": { "begin": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 }, "end": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 } @@ -24285,33 +24285,33 @@ ] }, { - "id": "0x7f0da6e4a698", + "id": "0x7feb10e8f728", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25995, - "line": 844, + "offset": 25728, + "line": 836, "col": 9, "tokLen": 6 }, "end": { - "offset": 26008, + "offset": 25741, "col": 22, "tokLen": 23 } }, "inner": [ { - "id": "0x7f0da6e4a668", + "id": "0x7feb10e8f6f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26002, + "offset": 25735, "col": 16, "tokLen": 4 }, "end": { - "offset": 26008, + "offset": 25741, "col": 22, "tokLen": 23 } @@ -24321,7 +24321,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0e90", + "id": "0x37ff1a40", "kind": "EnumConstantDecl", "name": "DIGITAL_AND_TRANSCEIVER", "type": { @@ -24334,17 +24334,17 @@ ] }, { - "id": "0x7f0da6e4ad70", + "id": "0x7feb10e8fe00", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 26037, - "line": 845, + "offset": 25770, + "line": 837, "col": 5, "tokLen": 5 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24356,16 +24356,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e4ad58", + "id": "0x7feb10e8fde8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 26037, + "offset": 25770, "col": 5, "tokLen": 5 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24376,16 +24376,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e4ad28", + "id": "0x7feb10e8fdb8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24403,16 +24403,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e4ad10", + "id": "0x7feb10e8fda0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24425,16 +24425,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e4ace8", + "id": "0x7feb10e8fd78", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24446,7 +24446,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -24455,16 +24455,16 @@ }, "inner": [ { - "id": "0x7f0da6e4acc8", + "id": "0x7feb10e8fd58", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24474,9 +24474,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e4acc0", + "temp": "0x7feb10e8fd50", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -24485,16 +24485,16 @@ }, "inner": [ { - "id": "0x7f0da6e4ac90", + "id": "0x7feb10e8fd20", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24511,16 +24511,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e4ac78", + "id": "0x7feb10e8fd08", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24534,16 +24534,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e4ac60", + "id": "0x7feb10e8fcf0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24556,16 +24556,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e4ac40", + "id": "0x7feb10e8fcd0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24575,9 +24575,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e4ac38", + "temp": "0x7feb10e8fcc8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -24586,16 +24586,16 @@ }, "inner": [ { - "id": "0x7f0da6e4ac00", + "id": "0x7feb10e8fc90", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24608,16 +24608,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4abe8", + "id": "0x7feb10e8fc78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26080, + "offset": 25813, "col": 48, "tokLen": 1 }, "end": { - "offset": 26080, + "offset": 25813, "col": 48, "tokLen": 1 } @@ -24629,16 +24629,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4abc8", + "id": "0x7feb10e8fc58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26080, + "offset": 25813, "col": 48, "tokLen": 1 }, "end": { - "offset": 26080, + "offset": 25813, "col": 48, "tokLen": 1 } @@ -24648,7 +24648,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -24659,16 +24659,16 @@ ] }, { - "id": "0x7f0da6e4abb0", + "id": "0x7feb10e8fc40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 } @@ -24680,16 +24680,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4a6d8", + "id": "0x7feb10e8f768", "kind": "StringLiteral", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 } @@ -24703,16 +24703,16 @@ ] }, { - "id": "0x7f0da6e4a708", + "id": "0x7feb10e8f798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24720,11 +24720,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -24759,29 +24759,29 @@ ] } { - "id": "0x7f0da6e4af48", + "id": "0x7feb10e8ffd8", "kind": "FunctionDecl", "loc": { - "offset": 26116, + "offset": 25849, "file": "ToString.cpp", - "line": 848, + "line": 840, "col": 28, "tokLen": 8 }, "range": { "begin": { - "offset": 26089, + "offset": 25822, "col": 1, "tokLen": 8 }, "end": { - "offset": 31510, - "line": 1034, + "offset": 31012, + "line": 1018, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d378468", + "previousDecl": "0x385a8a58", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -24795,13 +24795,13 @@ }, "inner": [ { - "id": "0x2cdbda40", + "id": "0x37fee730", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::dacIndex" }, "decl": { - "id": "0x2cdbd998", + "id": "0x37fee688", "kind": "EnumDecl", "name": "dacIndex" } @@ -24809,22 +24809,22 @@ ] }, { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "loc": { - "offset": 26144, - "line": 848, + "offset": 25877, + "line": 840, "col": 56, "tokLen": 1 }, "range": { "begin": { - "offset": 26125, + "offset": 25858, "col": 37, "tokLen": 5 }, "end": { - "offset": 26144, + "offset": 25877, "col": 56, "tokLen": 1 } @@ -24836,52 +24836,52 @@ } }, { - "id": "0x7f0da6b95d80", + "id": "0x7feb10e0b140", "kind": "CompoundStmt", "range": { "begin": { - "offset": 26147, + "offset": 25880, "col": 59, "tokLen": 1 }, "end": { - "offset": 31510, - "line": 1034, + "offset": 31012, + "line": 1018, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e4d6e8", + "id": "0x7feb10e92778", "kind": "IfStmt", "range": { "begin": { - "offset": 26153, - "line": 849, + "offset": 25886, + "line": 841, "col": 5, "tokLen": 2 }, "end": { - "offset": 26204, - "line": 850, + "offset": 25937, + "line": 842, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e4d650", + "id": "0x7feb10e926e0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26157, - "line": 849, + "offset": 25890, + "line": 841, "col": 9, "tokLen": 1 }, "end": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 } @@ -24893,16 +24893,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6e4c388", + "id": "0x7feb10e91418", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26157, + "offset": 25890, "col": 9, "tokLen": 1 }, "end": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 } @@ -24914,16 +24914,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4c370", + "id": "0x7feb10e91400", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26159, + "offset": 25892, "col": 11, "tokLen": 2 }, "end": { - "offset": 26159, + "offset": 25892, "col": 11, "tokLen": 2 } @@ -24935,16 +24935,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4c350", + "id": "0x7feb10e913e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26159, + "offset": 25892, "col": 11, "tokLen": 2 }, "end": { - "offset": 26159, + "offset": 25892, "col": 11, "tokLen": 2 } @@ -24954,7 +24954,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -24965,16 +24965,16 @@ ] }, { - "id": "0x7f0da6e4b130", + "id": "0x7feb10e901c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26157, + "offset": 25890, "col": 9, "tokLen": 1 }, "end": { - "offset": 26157, + "offset": 25890, "col": 9, "tokLen": 1 } @@ -24982,11 +24982,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -24995,16 +24995,16 @@ } }, { - "id": "0x7f0da6e4c338", + "id": "0x7feb10e913c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 }, "end": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 } @@ -25016,16 +25016,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4b150", + "id": "0x7feb10e901e0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 }, "end": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 } @@ -25041,16 +25041,16 @@ ] }, { - "id": "0x7f0da6e4d618", + "id": "0x7feb10e926a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26173, + "offset": 25906, "col": 25, "tokLen": 1 }, "end": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 } @@ -25062,16 +25062,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4d600", + "id": "0x7feb10e92690", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26175, + "offset": 25908, "col": 27, "tokLen": 2 }, "end": { - "offset": 26175, + "offset": 25908, "col": 27, "tokLen": 2 } @@ -25083,16 +25083,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4d5e0", + "id": "0x7feb10e92670", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26175, + "offset": 25908, "col": 27, "tokLen": 2 }, "end": { - "offset": 26175, + "offset": 25908, "col": 27, "tokLen": 2 } @@ -25102,7 +25102,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25113,16 +25113,16 @@ ] }, { - "id": "0x7f0da6e4c3c0", + "id": "0x7feb10e91450", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26173, + "offset": 25906, "col": 25, "tokLen": 1 }, "end": { - "offset": 26173, + "offset": 25906, "col": 25, "tokLen": 1 } @@ -25130,11 +25130,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25143,16 +25143,16 @@ } }, { - "id": "0x7f0da6e4d5c8", + "id": "0x7feb10e92658", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 }, "end": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 } @@ -25164,16 +25164,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4c3e0", + "id": "0x7feb10e91470", "kind": "StringLiteral", "range": { "begin": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 }, "end": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 } @@ -25191,33 +25191,33 @@ ] }, { - "id": "0x7f0da6e4d6d8", + "id": "0x7feb10e92768", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26191, - "line": 850, + "offset": 25924, + "line": 842, "col": 9, "tokLen": 6 }, "end": { - "offset": 26204, + "offset": 25937, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e4d6a8", + "id": "0x7feb10e92738", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26198, + "offset": 25931, "col": 16, "tokLen": 4 }, "end": { - "offset": 26204, + "offset": 25937, "col": 22, "tokLen": 5 } @@ -25227,7 +25227,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbda60", + "id": "0x37fee750", "kind": "EnumConstantDecl", "name": "DAC_0", "type": { @@ -25240,35 +25240,35 @@ ] }, { - "id": "0x7f0da6e4fcc8", + "id": "0x7feb10e94d58", "kind": "IfStmt", "range": { "begin": { - "offset": 26215, - "line": 851, + "offset": 25948, + "line": 843, "col": 5, "tokLen": 2 }, "end": { - "offset": 26266, - "line": 852, + "offset": 25999, + "line": 844, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e4fc30", + "id": "0x7feb10e94cc0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26219, - "line": 851, + "offset": 25952, + "line": 843, "col": 9, "tokLen": 1 }, "end": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 } @@ -25280,16 +25280,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6e4e968", + "id": "0x7feb10e939f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26219, + "offset": 25952, "col": 9, "tokLen": 1 }, "end": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 } @@ -25301,16 +25301,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4e950", + "id": "0x7feb10e939e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26221, + "offset": 25954, "col": 11, "tokLen": 2 }, "end": { - "offset": 26221, + "offset": 25954, "col": 11, "tokLen": 2 } @@ -25322,16 +25322,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4e930", + "id": "0x7feb10e939c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26221, + "offset": 25954, "col": 11, "tokLen": 2 }, "end": { - "offset": 26221, + "offset": 25954, "col": 11, "tokLen": 2 } @@ -25341,7 +25341,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25352,16 +25352,16 @@ ] }, { - "id": "0x7f0da6e4d708", + "id": "0x7feb10e92798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26219, + "offset": 25952, "col": 9, "tokLen": 1 }, "end": { - "offset": 26219, + "offset": 25952, "col": 9, "tokLen": 1 } @@ -25369,11 +25369,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25382,16 +25382,16 @@ } }, { - "id": "0x7f0da6e4e918", + "id": "0x7feb10e939a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 }, "end": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 } @@ -25403,16 +25403,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4d728", + "id": "0x7feb10e927b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 }, "end": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 } @@ -25428,16 +25428,16 @@ ] }, { - "id": "0x7f0da6e4fbf8", + "id": "0x7feb10e94c88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26235, + "offset": 25968, "col": 25, "tokLen": 1 }, "end": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 } @@ -25449,16 +25449,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4fbe0", + "id": "0x7feb10e94c70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26237, + "offset": 25970, "col": 27, "tokLen": 2 }, "end": { - "offset": 26237, + "offset": 25970, "col": 27, "tokLen": 2 } @@ -25470,16 +25470,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4fbc0", + "id": "0x7feb10e94c50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26237, + "offset": 25970, "col": 27, "tokLen": 2 }, "end": { - "offset": 26237, + "offset": 25970, "col": 27, "tokLen": 2 } @@ -25489,7 +25489,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25500,16 +25500,16 @@ ] }, { - "id": "0x7f0da6e4e9a0", + "id": "0x7feb10e93a30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26235, + "offset": 25968, "col": 25, "tokLen": 1 }, "end": { - "offset": 26235, + "offset": 25968, "col": 25, "tokLen": 1 } @@ -25517,11 +25517,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25530,16 +25530,16 @@ } }, { - "id": "0x7f0da6e4fba8", + "id": "0x7feb10e94c38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 }, "end": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 } @@ -25551,16 +25551,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4e9c0", + "id": "0x7feb10e93a50", "kind": "StringLiteral", "range": { "begin": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 }, "end": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 } @@ -25578,33 +25578,33 @@ ] }, { - "id": "0x7f0da6e4fcb8", + "id": "0x7feb10e94d48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26253, - "line": 852, + "offset": 25986, + "line": 844, "col": 9, "tokLen": 6 }, "end": { - "offset": 26266, + "offset": 25999, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e4fc88", + "id": "0x7feb10e94d18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26260, + "offset": 25993, "col": 16, "tokLen": 4 }, "end": { - "offset": 26266, + "offset": 25999, "col": 22, "tokLen": 5 } @@ -25614,7 +25614,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdab0", + "id": "0x37fee7a0", "kind": "EnumConstantDecl", "name": "DAC_1", "type": { @@ -25627,35 +25627,35 @@ ] }, { - "id": "0x7f0da6e522a8", + "id": "0x7feb10e97338", "kind": "IfStmt", "range": { "begin": { - "offset": 26277, - "line": 853, + "offset": 26010, + "line": 845, "col": 5, "tokLen": 2 }, "end": { - "offset": 26328, - "line": 854, + "offset": 26061, + "line": 846, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e52210", + "id": "0x7feb10e972a0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26281, - "line": 853, + "offset": 26014, + "line": 845, "col": 9, "tokLen": 1 }, "end": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 } @@ -25667,16 +25667,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6e50f48", + "id": "0x7feb10e95fd8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26281, + "offset": 26014, "col": 9, "tokLen": 1 }, "end": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 } @@ -25688,16 +25688,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e50f30", + "id": "0x7feb10e95fc0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26283, + "offset": 26016, "col": 11, "tokLen": 2 }, "end": { - "offset": 26283, + "offset": 26016, "col": 11, "tokLen": 2 } @@ -25709,16 +25709,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e50f10", + "id": "0x7feb10e95fa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26283, + "offset": 26016, "col": 11, "tokLen": 2 }, "end": { - "offset": 26283, + "offset": 26016, "col": 11, "tokLen": 2 } @@ -25728,7 +25728,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25739,16 +25739,16 @@ ] }, { - "id": "0x7f0da6e4fce8", + "id": "0x7feb10e94d78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26281, + "offset": 26014, "col": 9, "tokLen": 1 }, "end": { - "offset": 26281, + "offset": 26014, "col": 9, "tokLen": 1 } @@ -25756,11 +25756,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25769,16 +25769,16 @@ } }, { - "id": "0x7f0da6e50ef8", + "id": "0x7feb10e95f88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 }, "end": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 } @@ -25790,16 +25790,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4fd08", + "id": "0x7feb10e94d98", "kind": "StringLiteral", "range": { "begin": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 }, "end": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 } @@ -25815,16 +25815,16 @@ ] }, { - "id": "0x7f0da6e521d8", + "id": "0x7feb10e97268", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26297, + "offset": 26030, "col": 25, "tokLen": 1 }, "end": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 } @@ -25836,16 +25836,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e521c0", + "id": "0x7feb10e97250", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26299, + "offset": 26032, "col": 27, "tokLen": 2 }, "end": { - "offset": 26299, + "offset": 26032, "col": 27, "tokLen": 2 } @@ -25857,16 +25857,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e521a0", + "id": "0x7feb10e97230", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26299, + "offset": 26032, "col": 27, "tokLen": 2 }, "end": { - "offset": 26299, + "offset": 26032, "col": 27, "tokLen": 2 } @@ -25876,7 +25876,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25887,16 +25887,16 @@ ] }, { - "id": "0x7f0da6e50f80", + "id": "0x7feb10e96010", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26297, + "offset": 26030, "col": 25, "tokLen": 1 }, "end": { - "offset": 26297, + "offset": 26030, "col": 25, "tokLen": 1 } @@ -25904,11 +25904,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25917,16 +25917,16 @@ } }, { - "id": "0x7f0da6e52188", + "id": "0x7feb10e97218", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 }, "end": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 } @@ -25938,16 +25938,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e50fa0", + "id": "0x7feb10e96030", "kind": "StringLiteral", "range": { "begin": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 }, "end": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 } @@ -25965,33 +25965,33 @@ ] }, { - "id": "0x7f0da6e52298", + "id": "0x7feb10e97328", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26315, - "line": 854, + "offset": 26048, + "line": 846, "col": 9, "tokLen": 6 }, "end": { - "offset": 26328, + "offset": 26061, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e52268", + "id": "0x7feb10e972f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26322, + "offset": 26055, "col": 16, "tokLen": 4 }, "end": { - "offset": 26328, + "offset": 26061, "col": 22, "tokLen": 5 } @@ -26001,7 +26001,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdb00", + "id": "0x37fee7f0", "kind": "EnumConstantDecl", "name": "DAC_2", "type": { @@ -26014,35 +26014,35 @@ ] }, { - "id": "0x7f0da6e54888", + "id": "0x7feb10e99918", "kind": "IfStmt", "range": { "begin": { - "offset": 26339, - "line": 855, + "offset": 26072, + "line": 847, "col": 5, "tokLen": 2 }, "end": { - "offset": 26390, - "line": 856, + "offset": 26123, + "line": 848, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e547f0", + "id": "0x7feb10e99880", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26343, - "line": 855, + "offset": 26076, + "line": 847, "col": 9, "tokLen": 1 }, "end": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 } @@ -26054,16 +26054,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6e53528", + "id": "0x7feb10e985b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26343, + "offset": 26076, "col": 9, "tokLen": 1 }, "end": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 } @@ -26075,16 +26075,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e53510", + "id": "0x7feb10e985a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26345, + "offset": 26078, "col": 11, "tokLen": 2 }, "end": { - "offset": 26345, + "offset": 26078, "col": 11, "tokLen": 2 } @@ -26096,16 +26096,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e534f0", + "id": "0x7feb10e98580", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26345, + "offset": 26078, "col": 11, "tokLen": 2 }, "end": { - "offset": 26345, + "offset": 26078, "col": 11, "tokLen": 2 } @@ -26115,7 +26115,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26126,16 +26126,16 @@ ] }, { - "id": "0x7f0da6e522c8", + "id": "0x7feb10e97358", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26343, + "offset": 26076, "col": 9, "tokLen": 1 }, "end": { - "offset": 26343, + "offset": 26076, "col": 9, "tokLen": 1 } @@ -26143,11 +26143,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26156,16 +26156,16 @@ } }, { - "id": "0x7f0da6e534d8", + "id": "0x7feb10e98568", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 }, "end": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 } @@ -26177,16 +26177,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e522e8", + "id": "0x7feb10e97378", "kind": "StringLiteral", "range": { "begin": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 }, "end": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 } @@ -26202,16 +26202,16 @@ ] }, { - "id": "0x7f0da6e547b8", + "id": "0x7feb10e99848", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26359, + "offset": 26092, "col": 25, "tokLen": 1 }, "end": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 } @@ -26223,16 +26223,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e547a0", + "id": "0x7feb10e99830", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26361, + "offset": 26094, "col": 27, "tokLen": 2 }, "end": { - "offset": 26361, + "offset": 26094, "col": 27, "tokLen": 2 } @@ -26244,16 +26244,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e54780", + "id": "0x7feb10e99810", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26361, + "offset": 26094, "col": 27, "tokLen": 2 }, "end": { - "offset": 26361, + "offset": 26094, "col": 27, "tokLen": 2 } @@ -26263,7 +26263,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26274,16 +26274,16 @@ ] }, { - "id": "0x7f0da6e53560", + "id": "0x7feb10e985f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26359, + "offset": 26092, "col": 25, "tokLen": 1 }, "end": { - "offset": 26359, + "offset": 26092, "col": 25, "tokLen": 1 } @@ -26291,11 +26291,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26304,16 +26304,16 @@ } }, { - "id": "0x7f0da6e54768", + "id": "0x7feb10e997f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 }, "end": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 } @@ -26325,16 +26325,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e53580", + "id": "0x7feb10e98610", "kind": "StringLiteral", "range": { "begin": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 }, "end": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 } @@ -26352,33 +26352,33 @@ ] }, { - "id": "0x7f0da6e54878", + "id": "0x7feb10e99908", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26377, - "line": 856, + "offset": 26110, + "line": 848, "col": 9, "tokLen": 6 }, "end": { - "offset": 26390, + "offset": 26123, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e54848", + "id": "0x7feb10e998d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26384, + "offset": 26117, "col": 16, "tokLen": 4 }, "end": { - "offset": 26390, + "offset": 26123, "col": 22, "tokLen": 5 } @@ -26388,7 +26388,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdb50", + "id": "0x37fee840", "kind": "EnumConstantDecl", "name": "DAC_3", "type": { @@ -26401,35 +26401,35 @@ ] }, { - "id": "0x7f0da6be0e68", + "id": "0x7feb10e5aef8", "kind": "IfStmt", "range": { "begin": { - "offset": 26401, - "line": 857, + "offset": 26134, + "line": 849, "col": 5, "tokLen": 2 }, "end": { - "offset": 26452, - "line": 858, + "offset": 26185, + "line": 850, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be0dd0", + "id": "0x7feb10e5ae60", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26405, - "line": 857, + "offset": 26138, + "line": 849, "col": 9, "tokLen": 1 }, "end": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 } @@ -26441,16 +26441,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bdfb08", + "id": "0x7feb10e9ab98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26405, + "offset": 26138, "col": 9, "tokLen": 1 }, "end": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 } @@ -26462,16 +26462,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bdfaf0", + "id": "0x7feb10e9ab80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26407, + "offset": 26140, "col": 11, "tokLen": 2 }, "end": { - "offset": 26407, + "offset": 26140, "col": 11, "tokLen": 2 } @@ -26483,16 +26483,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bdfad0", + "id": "0x7feb10e9ab60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26407, + "offset": 26140, "col": 11, "tokLen": 2 }, "end": { - "offset": 26407, + "offset": 26140, "col": 11, "tokLen": 2 } @@ -26502,7 +26502,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26513,16 +26513,16 @@ ] }, { - "id": "0x7f0da6e548a8", + "id": "0x7feb10e99938", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26405, + "offset": 26138, "col": 9, "tokLen": 1 }, "end": { - "offset": 26405, + "offset": 26138, "col": 9, "tokLen": 1 } @@ -26530,11 +26530,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26543,16 +26543,16 @@ } }, { - "id": "0x7f0da6bdfab8", + "id": "0x7feb10e9ab48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 }, "end": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 } @@ -26564,16 +26564,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e548c8", + "id": "0x7feb10e99958", "kind": "StringLiteral", "range": { "begin": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 }, "end": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 } @@ -26589,16 +26589,16 @@ ] }, { - "id": "0x7f0da6be0d98", + "id": "0x7feb10e5ae28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26421, + "offset": 26154, "col": 25, "tokLen": 1 }, "end": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 } @@ -26610,16 +26610,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be0d80", + "id": "0x7feb10e5ae10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26423, + "offset": 26156, "col": 27, "tokLen": 2 }, "end": { - "offset": 26423, + "offset": 26156, "col": 27, "tokLen": 2 } @@ -26631,16 +26631,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be0d60", + "id": "0x7feb10e5adf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26423, + "offset": 26156, "col": 27, "tokLen": 2 }, "end": { - "offset": 26423, + "offset": 26156, "col": 27, "tokLen": 2 } @@ -26650,7 +26650,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26661,16 +26661,16 @@ ] }, { - "id": "0x7f0da6bdfb40", + "id": "0x7feb10e9abd0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26421, + "offset": 26154, "col": 25, "tokLen": 1 }, "end": { - "offset": 26421, + "offset": 26154, "col": 25, "tokLen": 1 } @@ -26678,11 +26678,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26691,16 +26691,16 @@ } }, { - "id": "0x7f0da6be0d48", + "id": "0x7feb10e5add8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 }, "end": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 } @@ -26712,16 +26712,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bdfb60", + "id": "0x7feb10e9abf0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 }, "end": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 } @@ -26739,33 +26739,33 @@ ] }, { - "id": "0x7f0da6be0e58", + "id": "0x7feb10e5aee8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26439, - "line": 858, + "offset": 26172, + "line": 850, "col": 9, "tokLen": 6 }, "end": { - "offset": 26452, + "offset": 26185, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be0e28", + "id": "0x7feb10e5aeb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26446, + "offset": 26179, "col": 16, "tokLen": 4 }, "end": { - "offset": 26452, + "offset": 26185, "col": 22, "tokLen": 5 } @@ -26775,7 +26775,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdba0", + "id": "0x37fee890", "kind": "EnumConstantDecl", "name": "DAC_4", "type": { @@ -26788,35 +26788,35 @@ ] }, { - "id": "0x7f0da6be3448", + "id": "0x7feb10e5d4d8", "kind": "IfStmt", "range": { "begin": { - "offset": 26463, - "line": 859, + "offset": 26196, + "line": 851, "col": 5, "tokLen": 2 }, "end": { - "offset": 26514, - "line": 860, + "offset": 26247, + "line": 852, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be33b0", + "id": "0x7feb10e5d440", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26467, - "line": 859, + "offset": 26200, + "line": 851, "col": 9, "tokLen": 1 }, "end": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 } @@ -26828,16 +26828,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6be20e8", + "id": "0x7feb10e5c178", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26467, + "offset": 26200, "col": 9, "tokLen": 1 }, "end": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 } @@ -26849,16 +26849,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be20d0", + "id": "0x7feb10e5c160", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26469, + "offset": 26202, "col": 11, "tokLen": 2 }, "end": { - "offset": 26469, + "offset": 26202, "col": 11, "tokLen": 2 } @@ -26870,16 +26870,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be20b0", + "id": "0x7feb10e5c140", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26469, + "offset": 26202, "col": 11, "tokLen": 2 }, "end": { - "offset": 26469, + "offset": 26202, "col": 11, "tokLen": 2 } @@ -26889,7 +26889,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26900,16 +26900,16 @@ ] }, { - "id": "0x7f0da6be0e88", + "id": "0x7feb10e5af18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26467, + "offset": 26200, "col": 9, "tokLen": 1 }, "end": { - "offset": 26467, + "offset": 26200, "col": 9, "tokLen": 1 } @@ -26917,11 +26917,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26930,16 +26930,16 @@ } }, { - "id": "0x7f0da6be2098", + "id": "0x7feb10e5c128", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 }, "end": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 } @@ -26951,16 +26951,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be0ea8", + "id": "0x7feb10e5af38", "kind": "StringLiteral", "range": { "begin": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 }, "end": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 } @@ -26976,16 +26976,16 @@ ] }, { - "id": "0x7f0da6be3378", + "id": "0x7feb10e5d408", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26483, + "offset": 26216, "col": 25, "tokLen": 1 }, "end": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 } @@ -26997,16 +26997,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be3360", + "id": "0x7feb10e5d3f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26485, + "offset": 26218, "col": 27, "tokLen": 2 }, "end": { - "offset": 26485, + "offset": 26218, "col": 27, "tokLen": 2 } @@ -27018,16 +27018,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be3340", + "id": "0x7feb10e5d3d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26485, + "offset": 26218, "col": 27, "tokLen": 2 }, "end": { - "offset": 26485, + "offset": 26218, "col": 27, "tokLen": 2 } @@ -27037,7 +27037,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27048,16 +27048,16 @@ ] }, { - "id": "0x7f0da6be2120", + "id": "0x7feb10e5c1b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26483, + "offset": 26216, "col": 25, "tokLen": 1 }, "end": { - "offset": 26483, + "offset": 26216, "col": 25, "tokLen": 1 } @@ -27065,11 +27065,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27078,16 +27078,16 @@ } }, { - "id": "0x7f0da6be3328", + "id": "0x7feb10e5d3b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 }, "end": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 } @@ -27099,16 +27099,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be2140", + "id": "0x7feb10e5c1d0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 }, "end": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 } @@ -27126,33 +27126,33 @@ ] }, { - "id": "0x7f0da6be3438", + "id": "0x7feb10e5d4c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26501, - "line": 860, + "offset": 26234, + "line": 852, "col": 9, "tokLen": 6 }, "end": { - "offset": 26514, + "offset": 26247, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be3408", + "id": "0x7feb10e5d498", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26508, + "offset": 26241, "col": 16, "tokLen": 4 }, "end": { - "offset": 26514, + "offset": 26247, "col": 22, "tokLen": 5 } @@ -27162,7 +27162,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdbf0", + "id": "0x37fee8e0", "kind": "EnumConstantDecl", "name": "DAC_5", "type": { @@ -27175,35 +27175,35 @@ ] }, { - "id": "0x7f0da6be5a28", + "id": "0x7feb10e5fab8", "kind": "IfStmt", "range": { "begin": { - "offset": 26525, - "line": 861, + "offset": 26258, + "line": 853, "col": 5, "tokLen": 2 }, "end": { - "offset": 26576, - "line": 862, + "offset": 26309, + "line": 854, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be5990", + "id": "0x7feb10e5fa20", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26529, - "line": 861, + "offset": 26262, + "line": 853, "col": 9, "tokLen": 1 }, "end": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 } @@ -27215,16 +27215,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6be46c8", + "id": "0x7feb10e5e758", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26529, + "offset": 26262, "col": 9, "tokLen": 1 }, "end": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 } @@ -27236,16 +27236,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be46b0", + "id": "0x7feb10e5e740", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26531, + "offset": 26264, "col": 11, "tokLen": 2 }, "end": { - "offset": 26531, + "offset": 26264, "col": 11, "tokLen": 2 } @@ -27257,16 +27257,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be4690", + "id": "0x7feb10e5e720", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26531, + "offset": 26264, "col": 11, "tokLen": 2 }, "end": { - "offset": 26531, + "offset": 26264, "col": 11, "tokLen": 2 } @@ -27276,7 +27276,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27287,16 +27287,16 @@ ] }, { - "id": "0x7f0da6be3468", + "id": "0x7feb10e5d4f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26529, + "offset": 26262, "col": 9, "tokLen": 1 }, "end": { - "offset": 26529, + "offset": 26262, "col": 9, "tokLen": 1 } @@ -27304,11 +27304,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27317,16 +27317,16 @@ } }, { - "id": "0x7f0da6be4678", + "id": "0x7feb10e5e708", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 }, "end": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 } @@ -27338,16 +27338,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be3488", + "id": "0x7feb10e5d518", "kind": "StringLiteral", "range": { "begin": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 }, "end": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 } @@ -27363,16 +27363,16 @@ ] }, { - "id": "0x7f0da6be5958", + "id": "0x7feb10e5f9e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26545, + "offset": 26278, "col": 25, "tokLen": 1 }, "end": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 } @@ -27384,16 +27384,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be5940", + "id": "0x7feb10e5f9d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26547, + "offset": 26280, "col": 27, "tokLen": 2 }, "end": { - "offset": 26547, + "offset": 26280, "col": 27, "tokLen": 2 } @@ -27405,16 +27405,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be5920", + "id": "0x7feb10e5f9b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26547, + "offset": 26280, "col": 27, "tokLen": 2 }, "end": { - "offset": 26547, + "offset": 26280, "col": 27, "tokLen": 2 } @@ -27424,7 +27424,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27435,16 +27435,16 @@ ] }, { - "id": "0x7f0da6be4700", + "id": "0x7feb10e5e790", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26545, + "offset": 26278, "col": 25, "tokLen": 1 }, "end": { - "offset": 26545, + "offset": 26278, "col": 25, "tokLen": 1 } @@ -27452,11 +27452,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27465,16 +27465,16 @@ } }, { - "id": "0x7f0da6be5908", + "id": "0x7feb10e5f998", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 }, "end": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 } @@ -27486,16 +27486,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be4720", + "id": "0x7feb10e5e7b0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 }, "end": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 } @@ -27513,33 +27513,33 @@ ] }, { - "id": "0x7f0da6be5a18", + "id": "0x7feb10e5faa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26563, - "line": 862, + "offset": 26296, + "line": 854, "col": 9, "tokLen": 6 }, "end": { - "offset": 26576, + "offset": 26309, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be59e8", + "id": "0x7feb10e5fa78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26570, + "offset": 26303, "col": 16, "tokLen": 4 }, "end": { - "offset": 26576, + "offset": 26309, "col": 22, "tokLen": 5 } @@ -27549,7 +27549,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdc40", + "id": "0x37fee930", "kind": "EnumConstantDecl", "name": "DAC_6", "type": { @@ -27562,35 +27562,35 @@ ] }, { - "id": "0x7f0da6be8008", + "id": "0x7feb10e62098", "kind": "IfStmt", "range": { "begin": { - "offset": 26587, - "line": 863, + "offset": 26320, + "line": 855, "col": 5, "tokLen": 2 }, "end": { - "offset": 26638, - "line": 864, + "offset": 26371, + "line": 856, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be7f70", + "id": "0x7feb10e62000", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26591, - "line": 863, + "offset": 26324, + "line": 855, "col": 9, "tokLen": 1 }, "end": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 } @@ -27602,16 +27602,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6be6ca8", + "id": "0x7feb10e60d38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26591, + "offset": 26324, "col": 9, "tokLen": 1 }, "end": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 } @@ -27623,16 +27623,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be6c90", + "id": "0x7feb10e60d20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26593, + "offset": 26326, "col": 11, "tokLen": 2 }, "end": { - "offset": 26593, + "offset": 26326, "col": 11, "tokLen": 2 } @@ -27644,16 +27644,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be6c70", + "id": "0x7feb10e60d00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26593, + "offset": 26326, "col": 11, "tokLen": 2 }, "end": { - "offset": 26593, + "offset": 26326, "col": 11, "tokLen": 2 } @@ -27663,7 +27663,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27674,16 +27674,16 @@ ] }, { - "id": "0x7f0da6be5a48", + "id": "0x7feb10e5fad8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26591, + "offset": 26324, "col": 9, "tokLen": 1 }, "end": { - "offset": 26591, + "offset": 26324, "col": 9, "tokLen": 1 } @@ -27691,11 +27691,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27704,16 +27704,16 @@ } }, { - "id": "0x7f0da6be6c58", + "id": "0x7feb10e60ce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 }, "end": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 } @@ -27725,16 +27725,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be5a68", + "id": "0x7feb10e5faf8", "kind": "StringLiteral", "range": { "begin": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 }, "end": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 } @@ -27750,16 +27750,16 @@ ] }, { - "id": "0x7f0da6be7f38", + "id": "0x7feb10e61fc8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26607, + "offset": 26340, "col": 25, "tokLen": 1 }, "end": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 } @@ -27771,16 +27771,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be7f20", + "id": "0x7feb10e61fb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26609, + "offset": 26342, "col": 27, "tokLen": 2 }, "end": { - "offset": 26609, + "offset": 26342, "col": 27, "tokLen": 2 } @@ -27792,16 +27792,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be7f00", + "id": "0x7feb10e61f90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26609, + "offset": 26342, "col": 27, "tokLen": 2 }, "end": { - "offset": 26609, + "offset": 26342, "col": 27, "tokLen": 2 } @@ -27811,7 +27811,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27822,16 +27822,16 @@ ] }, { - "id": "0x7f0da6be6ce0", + "id": "0x7feb10e60d70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26607, + "offset": 26340, "col": 25, "tokLen": 1 }, "end": { - "offset": 26607, + "offset": 26340, "col": 25, "tokLen": 1 } @@ -27839,11 +27839,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27852,16 +27852,16 @@ } }, { - "id": "0x7f0da6be7ee8", + "id": "0x7feb10e61f78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 }, "end": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 } @@ -27873,16 +27873,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be6d00", + "id": "0x7feb10e60d90", "kind": "StringLiteral", "range": { "begin": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 }, "end": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 } @@ -27900,33 +27900,33 @@ ] }, { - "id": "0x7f0da6be7ff8", + "id": "0x7feb10e62088", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26625, - "line": 864, + "offset": 26358, + "line": 856, "col": 9, "tokLen": 6 }, "end": { - "offset": 26638, + "offset": 26371, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be7fc8", + "id": "0x7feb10e62058", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26632, + "offset": 26365, "col": 16, "tokLen": 4 }, "end": { - "offset": 26638, + "offset": 26371, "col": 22, "tokLen": 5 } @@ -27936,7 +27936,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdc90", + "id": "0x37fee980", "kind": "EnumConstantDecl", "name": "DAC_7", "type": { @@ -27949,35 +27949,35 @@ ] }, { - "id": "0x7f0da6bea5e8", + "id": "0x7feb10e64678", "kind": "IfStmt", "range": { "begin": { - "offset": 26649, - "line": 865, + "offset": 26382, + "line": 857, "col": 5, "tokLen": 2 }, "end": { - "offset": 26700, - "line": 866, + "offset": 26433, + "line": 858, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bea550", + "id": "0x7feb10e645e0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26653, - "line": 865, + "offset": 26386, + "line": 857, "col": 9, "tokLen": 1 }, "end": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 } @@ -27989,16 +27989,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6be9288", + "id": "0x7feb10e63318", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26653, + "offset": 26386, "col": 9, "tokLen": 1 }, "end": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 } @@ -28010,16 +28010,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be9270", + "id": "0x7feb10e63300", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26655, + "offset": 26388, "col": 11, "tokLen": 2 }, "end": { - "offset": 26655, + "offset": 26388, "col": 11, "tokLen": 2 } @@ -28031,16 +28031,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be9250", + "id": "0x7feb10e632e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26655, + "offset": 26388, "col": 11, "tokLen": 2 }, "end": { - "offset": 26655, + "offset": 26388, "col": 11, "tokLen": 2 } @@ -28050,7 +28050,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28061,16 +28061,16 @@ ] }, { - "id": "0x7f0da6be8028", + "id": "0x7feb10e620b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26653, + "offset": 26386, "col": 9, "tokLen": 1 }, "end": { - "offset": 26653, + "offset": 26386, "col": 9, "tokLen": 1 } @@ -28078,11 +28078,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28091,16 +28091,16 @@ } }, { - "id": "0x7f0da6be9238", + "id": "0x7feb10e632c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 }, "end": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 } @@ -28112,16 +28112,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be8048", + "id": "0x7feb10e620d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 }, "end": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 } @@ -28137,16 +28137,16 @@ ] }, { - "id": "0x7f0da6bea518", + "id": "0x7feb10e645a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26669, + "offset": 26402, "col": 25, "tokLen": 1 }, "end": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 } @@ -28158,16 +28158,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bea500", + "id": "0x7feb10e64590", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26671, + "offset": 26404, "col": 27, "tokLen": 2 }, "end": { - "offset": 26671, + "offset": 26404, "col": 27, "tokLen": 2 } @@ -28179,16 +28179,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bea4e0", + "id": "0x7feb10e64570", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26671, + "offset": 26404, "col": 27, "tokLen": 2 }, "end": { - "offset": 26671, + "offset": 26404, "col": 27, "tokLen": 2 } @@ -28198,7 +28198,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28209,16 +28209,16 @@ ] }, { - "id": "0x7f0da6be92c0", + "id": "0x7feb10e63350", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26669, + "offset": 26402, "col": 25, "tokLen": 1 }, "end": { - "offset": 26669, + "offset": 26402, "col": 25, "tokLen": 1 } @@ -28226,11 +28226,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28239,16 +28239,16 @@ } }, { - "id": "0x7f0da6bea4c8", + "id": "0x7feb10e64558", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 }, "end": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 } @@ -28260,16 +28260,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be92e0", + "id": "0x7feb10e63370", "kind": "StringLiteral", "range": { "begin": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 }, "end": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 } @@ -28287,33 +28287,33 @@ ] }, { - "id": "0x7f0da6bea5d8", + "id": "0x7feb10e64668", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26687, - "line": 866, + "offset": 26420, + "line": 858, "col": 9, "tokLen": 6 }, "end": { - "offset": 26700, + "offset": 26433, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bea5a8", + "id": "0x7feb10e64638", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26694, + "offset": 26427, "col": 16, "tokLen": 4 }, "end": { - "offset": 26700, + "offset": 26433, "col": 22, "tokLen": 5 } @@ -28323,7 +28323,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdce0", + "id": "0x37fee9d0", "kind": "EnumConstantDecl", "name": "DAC_8", "type": { @@ -28336,35 +28336,35 @@ ] }, { - "id": "0x7f0da6becbc8", + "id": "0x7feb10e66c58", "kind": "IfStmt", "range": { "begin": { - "offset": 26711, - "line": 867, + "offset": 26444, + "line": 859, "col": 5, "tokLen": 2 }, "end": { - "offset": 26762, - "line": 868, + "offset": 26495, + "line": 860, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6becb30", + "id": "0x7feb10e66bc0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26715, - "line": 867, + "offset": 26448, + "line": 859, "col": 9, "tokLen": 1 }, "end": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 } @@ -28376,16 +28376,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6beb868", + "id": "0x7feb10e658f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26715, + "offset": 26448, "col": 9, "tokLen": 1 }, "end": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 } @@ -28397,16 +28397,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6beb850", + "id": "0x7feb10e658e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26717, + "offset": 26450, "col": 11, "tokLen": 2 }, "end": { - "offset": 26717, + "offset": 26450, "col": 11, "tokLen": 2 } @@ -28418,16 +28418,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6beb830", + "id": "0x7feb10e658c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26717, + "offset": 26450, "col": 11, "tokLen": 2 }, "end": { - "offset": 26717, + "offset": 26450, "col": 11, "tokLen": 2 } @@ -28437,7 +28437,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28448,16 +28448,16 @@ ] }, { - "id": "0x7f0da6bea608", + "id": "0x7feb10e64698", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26715, + "offset": 26448, "col": 9, "tokLen": 1 }, "end": { - "offset": 26715, + "offset": 26448, "col": 9, "tokLen": 1 } @@ -28465,11 +28465,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28478,16 +28478,16 @@ } }, { - "id": "0x7f0da6beb818", + "id": "0x7feb10e658a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 }, "end": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 } @@ -28499,16 +28499,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bea628", + "id": "0x7feb10e646b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 }, "end": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 } @@ -28524,16 +28524,16 @@ ] }, { - "id": "0x7f0da6becaf8", + "id": "0x7feb10e66b88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26731, + "offset": 26464, "col": 25, "tokLen": 1 }, "end": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 } @@ -28545,16 +28545,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6becae0", + "id": "0x7feb10e66b70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26733, + "offset": 26466, "col": 27, "tokLen": 2 }, "end": { - "offset": 26733, + "offset": 26466, "col": 27, "tokLen": 2 } @@ -28566,16 +28566,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6becac0", + "id": "0x7feb10e66b50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26733, + "offset": 26466, "col": 27, "tokLen": 2 }, "end": { - "offset": 26733, + "offset": 26466, "col": 27, "tokLen": 2 } @@ -28585,7 +28585,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28596,16 +28596,16 @@ ] }, { - "id": "0x7f0da6beb8a0", + "id": "0x7feb10e65930", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26731, + "offset": 26464, "col": 25, "tokLen": 1 }, "end": { - "offset": 26731, + "offset": 26464, "col": 25, "tokLen": 1 } @@ -28613,11 +28613,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28626,16 +28626,16 @@ } }, { - "id": "0x7f0da6becaa8", + "id": "0x7feb10e66b38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 }, "end": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 } @@ -28647,16 +28647,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6beb8c0", + "id": "0x7feb10e65950", "kind": "StringLiteral", "range": { "begin": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 }, "end": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 } @@ -28674,33 +28674,33 @@ ] }, { - "id": "0x7f0da6becbb8", + "id": "0x7feb10e66c48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26749, - "line": 868, + "offset": 26482, + "line": 860, "col": 9, "tokLen": 6 }, "end": { - "offset": 26762, + "offset": 26495, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6becb88", + "id": "0x7feb10e66c18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26756, + "offset": 26489, "col": 16, "tokLen": 4 }, "end": { - "offset": 26762, + "offset": 26495, "col": 22, "tokLen": 5 } @@ -28710,7 +28710,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdd30", + "id": "0x37feea20", "kind": "EnumConstantDecl", "name": "DAC_9", "type": { @@ -28723,35 +28723,35 @@ ] }, { - "id": "0x7f0da6bef1a8", + "id": "0x7feb10e69238", "kind": "IfStmt", "range": { "begin": { - "offset": 26773, - "line": 869, + "offset": 26506, + "line": 861, "col": 5, "tokLen": 2 }, "end": { - "offset": 26826, - "line": 870, + "offset": 26559, + "line": 862, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bef110", + "id": "0x7feb10e691a0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26777, - "line": 869, + "offset": 26510, + "line": 861, "col": 9, "tokLen": 1 }, "end": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 } @@ -28763,16 +28763,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bede48", + "id": "0x7feb10e67ed8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26777, + "offset": 26510, "col": 9, "tokLen": 1 }, "end": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 } @@ -28784,16 +28784,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bede30", + "id": "0x7feb10e67ec0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26779, + "offset": 26512, "col": 11, "tokLen": 2 }, "end": { - "offset": 26779, + "offset": 26512, "col": 11, "tokLen": 2 } @@ -28805,16 +28805,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bede10", + "id": "0x7feb10e67ea0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26779, + "offset": 26512, "col": 11, "tokLen": 2 }, "end": { - "offset": 26779, + "offset": 26512, "col": 11, "tokLen": 2 } @@ -28824,7 +28824,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28835,16 +28835,16 @@ ] }, { - "id": "0x7f0da6becbe8", + "id": "0x7feb10e66c78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26777, + "offset": 26510, "col": 9, "tokLen": 1 }, "end": { - "offset": 26777, + "offset": 26510, "col": 9, "tokLen": 1 } @@ -28852,11 +28852,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28865,16 +28865,16 @@ } }, { - "id": "0x7f0da6beddf8", + "id": "0x7feb10e67e88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 }, "end": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 } @@ -28886,16 +28886,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6becc08", + "id": "0x7feb10e66c98", "kind": "StringLiteral", "range": { "begin": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 }, "end": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 } @@ -28911,16 +28911,16 @@ ] }, { - "id": "0x7f0da6bef0d8", + "id": "0x7feb10e69168", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26794, + "offset": 26527, "col": 26, "tokLen": 1 }, "end": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 } @@ -28932,16 +28932,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bef0c0", + "id": "0x7feb10e69150", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26796, + "offset": 26529, "col": 28, "tokLen": 2 }, "end": { - "offset": 26796, + "offset": 26529, "col": 28, "tokLen": 2 } @@ -28953,16 +28953,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bef0a0", + "id": "0x7feb10e69130", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26796, + "offset": 26529, "col": 28, "tokLen": 2 }, "end": { - "offset": 26796, + "offset": 26529, "col": 28, "tokLen": 2 } @@ -28972,7 +28972,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28983,16 +28983,16 @@ ] }, { - "id": "0x7f0da6bede80", + "id": "0x7feb10e67f10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26794, + "offset": 26527, "col": 26, "tokLen": 1 }, "end": { - "offset": 26794, + "offset": 26527, "col": 26, "tokLen": 1 } @@ -29000,11 +29000,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29013,16 +29013,16 @@ } }, { - "id": "0x7f0da6bef088", + "id": "0x7feb10e69118", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 }, "end": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 } @@ -29034,16 +29034,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bedea0", + "id": "0x7feb10e67f30", "kind": "StringLiteral", "range": { "begin": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 }, "end": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 } @@ -29061,33 +29061,33 @@ ] }, { - "id": "0x7f0da6bef198", + "id": "0x7feb10e69228", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26813, - "line": 870, + "offset": 26546, + "line": 862, "col": 9, "tokLen": 6 }, "end": { - "offset": 26826, + "offset": 26559, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bef168", + "id": "0x7feb10e691f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26820, + "offset": 26553, "col": 16, "tokLen": 4 }, "end": { - "offset": 26826, + "offset": 26559, "col": 22, "tokLen": 6 } @@ -29097,7 +29097,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdd80", + "id": "0x37feea70", "kind": "EnumConstantDecl", "name": "DAC_10", "type": { @@ -29110,35 +29110,35 @@ ] }, { - "id": "0x7f0da6bf1788", + "id": "0x7feb10e6b818", "kind": "IfStmt", "range": { "begin": { - "offset": 26838, - "line": 871, + "offset": 26571, + "line": 863, "col": 5, "tokLen": 2 }, "end": { - "offset": 26891, - "line": 872, + "offset": 26624, + "line": 864, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf16f0", + "id": "0x7feb10e6b780", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26842, - "line": 871, + "offset": 26575, + "line": 863, "col": 9, "tokLen": 1 }, "end": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 } @@ -29150,16 +29150,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf0428", + "id": "0x7feb10e6a4b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26842, + "offset": 26575, "col": 9, "tokLen": 1 }, "end": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 } @@ -29171,16 +29171,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf0410", + "id": "0x7feb10e6a4a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26844, + "offset": 26577, "col": 11, "tokLen": 2 }, "end": { - "offset": 26844, + "offset": 26577, "col": 11, "tokLen": 2 } @@ -29192,16 +29192,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf03f0", + "id": "0x7feb10e6a480", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26844, + "offset": 26577, "col": 11, "tokLen": 2 }, "end": { - "offset": 26844, + "offset": 26577, "col": 11, "tokLen": 2 } @@ -29211,7 +29211,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29222,16 +29222,16 @@ ] }, { - "id": "0x7f0da6bef1c8", + "id": "0x7feb10e69258", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26842, + "offset": 26575, "col": 9, "tokLen": 1 }, "end": { - "offset": 26842, + "offset": 26575, "col": 9, "tokLen": 1 } @@ -29239,11 +29239,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29252,16 +29252,16 @@ } }, { - "id": "0x7f0da6bf03d8", + "id": "0x7feb10e6a468", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 }, "end": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 } @@ -29273,16 +29273,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bef1e8", + "id": "0x7feb10e69278", "kind": "StringLiteral", "range": { "begin": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 }, "end": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 } @@ -29298,16 +29298,16 @@ ] }, { - "id": "0x7f0da6bf16b8", + "id": "0x7feb10e6b748", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26859, + "offset": 26592, "col": 26, "tokLen": 1 }, "end": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 } @@ -29319,16 +29319,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf16a0", + "id": "0x7feb10e6b730", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26861, + "offset": 26594, "col": 28, "tokLen": 2 }, "end": { - "offset": 26861, + "offset": 26594, "col": 28, "tokLen": 2 } @@ -29340,16 +29340,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf1680", + "id": "0x7feb10e6b710", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26861, + "offset": 26594, "col": 28, "tokLen": 2 }, "end": { - "offset": 26861, + "offset": 26594, "col": 28, "tokLen": 2 } @@ -29359,7 +29359,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29370,16 +29370,16 @@ ] }, { - "id": "0x7f0da6bf0460", + "id": "0x7feb10e6a4f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26859, + "offset": 26592, "col": 26, "tokLen": 1 }, "end": { - "offset": 26859, + "offset": 26592, "col": 26, "tokLen": 1 } @@ -29387,11 +29387,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29400,16 +29400,16 @@ } }, { - "id": "0x7f0da6bf1668", + "id": "0x7feb10e6b6f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 }, "end": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 } @@ -29421,16 +29421,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf0480", + "id": "0x7feb10e6a510", "kind": "StringLiteral", "range": { "begin": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 }, "end": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 } @@ -29448,33 +29448,33 @@ ] }, { - "id": "0x7f0da6bf1778", + "id": "0x7feb10e6b808", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26878, - "line": 872, + "offset": 26611, + "line": 864, "col": 9, "tokLen": 6 }, "end": { - "offset": 26891, + "offset": 26624, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf1748", + "id": "0x7feb10e6b7d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26885, + "offset": 26618, "col": 16, "tokLen": 4 }, "end": { - "offset": 26891, + "offset": 26624, "col": 22, "tokLen": 6 } @@ -29484,7 +29484,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbddd0", + "id": "0x37feeac0", "kind": "EnumConstantDecl", "name": "DAC_11", "type": { @@ -29497,35 +29497,35 @@ ] }, { - "id": "0x7f0da6bf3d68", + "id": "0x7feb10e6ddf8", "kind": "IfStmt", "range": { "begin": { - "offset": 26903, - "line": 873, + "offset": 26636, + "line": 865, "col": 5, "tokLen": 2 }, "end": { - "offset": 26956, - "line": 874, + "offset": 26689, + "line": 866, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf3cd0", + "id": "0x7feb10e6dd60", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26907, - "line": 873, + "offset": 26640, + "line": 865, "col": 9, "tokLen": 1 }, "end": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 } @@ -29537,16 +29537,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf2a08", + "id": "0x7feb10e6ca98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26907, + "offset": 26640, "col": 9, "tokLen": 1 }, "end": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 } @@ -29558,16 +29558,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf29f0", + "id": "0x7feb10e6ca80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26909, + "offset": 26642, "col": 11, "tokLen": 2 }, "end": { - "offset": 26909, + "offset": 26642, "col": 11, "tokLen": 2 } @@ -29579,16 +29579,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf29d0", + "id": "0x7feb10e6ca60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26909, + "offset": 26642, "col": 11, "tokLen": 2 }, "end": { - "offset": 26909, + "offset": 26642, "col": 11, "tokLen": 2 } @@ -29598,7 +29598,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29609,16 +29609,16 @@ ] }, { - "id": "0x7f0da6bf17a8", + "id": "0x7feb10e6b838", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26907, + "offset": 26640, "col": 9, "tokLen": 1 }, "end": { - "offset": 26907, + "offset": 26640, "col": 9, "tokLen": 1 } @@ -29626,11 +29626,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29639,16 +29639,16 @@ } }, { - "id": "0x7f0da6bf29b8", + "id": "0x7feb10e6ca48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 }, "end": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 } @@ -29660,16 +29660,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf17c8", + "id": "0x7feb10e6b858", "kind": "StringLiteral", "range": { "begin": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 }, "end": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 } @@ -29685,16 +29685,16 @@ ] }, { - "id": "0x7f0da6bf3c98", + "id": "0x7feb10e6dd28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26924, + "offset": 26657, "col": 26, "tokLen": 1 }, "end": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 } @@ -29706,16 +29706,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf3c80", + "id": "0x7feb10e6dd10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26926, + "offset": 26659, "col": 28, "tokLen": 2 }, "end": { - "offset": 26926, + "offset": 26659, "col": 28, "tokLen": 2 } @@ -29727,16 +29727,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf3c60", + "id": "0x7feb10e6dcf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26926, + "offset": 26659, "col": 28, "tokLen": 2 }, "end": { - "offset": 26926, + "offset": 26659, "col": 28, "tokLen": 2 } @@ -29746,7 +29746,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29757,16 +29757,16 @@ ] }, { - "id": "0x7f0da6bf2a40", + "id": "0x7feb10e6cad0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26924, + "offset": 26657, "col": 26, "tokLen": 1 }, "end": { - "offset": 26924, + "offset": 26657, "col": 26, "tokLen": 1 } @@ -29774,11 +29774,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29787,16 +29787,16 @@ } }, { - "id": "0x7f0da6bf3c48", + "id": "0x7feb10e6dcd8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 }, "end": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 } @@ -29808,16 +29808,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf2a60", + "id": "0x7feb10e6caf0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 }, "end": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 } @@ -29835,33 +29835,33 @@ ] }, { - "id": "0x7f0da6bf3d58", + "id": "0x7feb10e6dde8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26943, - "line": 874, + "offset": 26676, + "line": 866, "col": 9, "tokLen": 6 }, "end": { - "offset": 26956, + "offset": 26689, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf3d28", + "id": "0x7feb10e6ddb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26950, + "offset": 26683, "col": 16, "tokLen": 4 }, "end": { - "offset": 26956, + "offset": 26689, "col": 22, "tokLen": 6 } @@ -29871,7 +29871,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbde20", + "id": "0x37feeb10", "kind": "EnumConstantDecl", "name": "DAC_12", "type": { @@ -29884,35 +29884,35 @@ ] }, { - "id": "0x7f0da6bf6348", + "id": "0x7feb10e703d8", "kind": "IfStmt", "range": { "begin": { - "offset": 26968, - "line": 875, + "offset": 26701, + "line": 867, "col": 5, "tokLen": 2 }, "end": { - "offset": 27021, - "line": 876, + "offset": 26754, + "line": 868, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf62b0", + "id": "0x7feb10e70340", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26972, - "line": 875, + "offset": 26705, + "line": 867, "col": 9, "tokLen": 1 }, "end": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 } @@ -29924,16 +29924,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf4fe8", + "id": "0x7feb10e6f078", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26972, + "offset": 26705, "col": 9, "tokLen": 1 }, "end": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 } @@ -29945,16 +29945,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf4fd0", + "id": "0x7feb10e6f060", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26974, + "offset": 26707, "col": 11, "tokLen": 2 }, "end": { - "offset": 26974, + "offset": 26707, "col": 11, "tokLen": 2 } @@ -29966,16 +29966,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf4fb0", + "id": "0x7feb10e6f040", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26974, + "offset": 26707, "col": 11, "tokLen": 2 }, "end": { - "offset": 26974, + "offset": 26707, "col": 11, "tokLen": 2 } @@ -29985,7 +29985,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29996,16 +29996,16 @@ ] }, { - "id": "0x7f0da6bf3d88", + "id": "0x7feb10e6de18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26972, + "offset": 26705, "col": 9, "tokLen": 1 }, "end": { - "offset": 26972, + "offset": 26705, "col": 9, "tokLen": 1 } @@ -30013,11 +30013,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30026,16 +30026,16 @@ } }, { - "id": "0x7f0da6bf4f98", + "id": "0x7feb10e6f028", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 }, "end": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 } @@ -30047,16 +30047,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf3da8", + "id": "0x7feb10e6de38", "kind": "StringLiteral", "range": { "begin": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 }, "end": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 } @@ -30072,16 +30072,16 @@ ] }, { - "id": "0x7f0da6bf6278", + "id": "0x7feb10e70308", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26989, + "offset": 26722, "col": 26, "tokLen": 1 }, "end": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 } @@ -30093,16 +30093,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf6260", + "id": "0x7feb10e702f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26991, + "offset": 26724, "col": 28, "tokLen": 2 }, "end": { - "offset": 26991, + "offset": 26724, "col": 28, "tokLen": 2 } @@ -30114,16 +30114,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf6240", + "id": "0x7feb10e702d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26991, + "offset": 26724, "col": 28, "tokLen": 2 }, "end": { - "offset": 26991, + "offset": 26724, "col": 28, "tokLen": 2 } @@ -30133,7 +30133,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30144,16 +30144,16 @@ ] }, { - "id": "0x7f0da6bf5020", + "id": "0x7feb10e6f0b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26989, + "offset": 26722, "col": 26, "tokLen": 1 }, "end": { - "offset": 26989, + "offset": 26722, "col": 26, "tokLen": 1 } @@ -30161,11 +30161,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30174,16 +30174,16 @@ } }, { - "id": "0x7f0da6bf6228", + "id": "0x7feb10e702b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 }, "end": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 } @@ -30195,16 +30195,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf5040", + "id": "0x7feb10e6f0d0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 }, "end": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 } @@ -30222,33 +30222,33 @@ ] }, { - "id": "0x7f0da6bf6338", + "id": "0x7feb10e703c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27008, - "line": 876, + "offset": 26741, + "line": 868, "col": 9, "tokLen": 6 }, "end": { - "offset": 27021, + "offset": 26754, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf6308", + "id": "0x7feb10e70398", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27015, + "offset": 26748, "col": 16, "tokLen": 4 }, "end": { - "offset": 27021, + "offset": 26754, "col": 22, "tokLen": 6 } @@ -30258,7 +30258,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbde70", + "id": "0x37feeb60", "kind": "EnumConstantDecl", "name": "DAC_13", "type": { @@ -30271,35 +30271,35 @@ ] }, { - "id": "0x7f0da6bf8928", + "id": "0x7feb10e729b8", "kind": "IfStmt", "range": { "begin": { - "offset": 27033, - "line": 877, + "offset": 26766, + "line": 869, "col": 5, "tokLen": 2 }, "end": { - "offset": 27086, - "line": 878, + "offset": 26819, + "line": 870, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf8890", + "id": "0x7feb10e72920", "kind": "BinaryOperator", "range": { "begin": { - "offset": 27037, - "line": 877, + "offset": 26770, + "line": 869, "col": 9, "tokLen": 1 }, "end": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 } @@ -30311,16 +30311,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf75c8", + "id": "0x7feb10e71658", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27037, + "offset": 26770, "col": 9, "tokLen": 1 }, "end": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 } @@ -30332,16 +30332,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf75b0", + "id": "0x7feb10e71640", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27039, + "offset": 26772, "col": 11, "tokLen": 2 }, "end": { - "offset": 27039, + "offset": 26772, "col": 11, "tokLen": 2 } @@ -30353,16 +30353,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf7590", + "id": "0x7feb10e71620", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27039, + "offset": 26772, "col": 11, "tokLen": 2 }, "end": { - "offset": 27039, + "offset": 26772, "col": 11, "tokLen": 2 } @@ -30372,7 +30372,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30383,16 +30383,16 @@ ] }, { - "id": "0x7f0da6bf6368", + "id": "0x7feb10e703f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27037, + "offset": 26770, "col": 9, "tokLen": 1 }, "end": { - "offset": 27037, + "offset": 26770, "col": 9, "tokLen": 1 } @@ -30400,11 +30400,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30413,16 +30413,16 @@ } }, { - "id": "0x7f0da6bf7578", + "id": "0x7feb10e71608", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 }, "end": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 } @@ -30434,16 +30434,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf6388", + "id": "0x7feb10e70418", "kind": "StringLiteral", "range": { "begin": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 }, "end": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 } @@ -30459,16 +30459,16 @@ ] }, { - "id": "0x7f0da6bf8858", + "id": "0x7feb10e728e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27054, + "offset": 26787, "col": 26, "tokLen": 1 }, "end": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 } @@ -30480,16 +30480,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf8840", + "id": "0x7feb10e728d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27056, + "offset": 26789, "col": 28, "tokLen": 2 }, "end": { - "offset": 27056, + "offset": 26789, "col": 28, "tokLen": 2 } @@ -30501,16 +30501,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf8820", + "id": "0x7feb10e728b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27056, + "offset": 26789, "col": 28, "tokLen": 2 }, "end": { - "offset": 27056, + "offset": 26789, "col": 28, "tokLen": 2 } @@ -30520,7 +30520,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30531,16 +30531,16 @@ ] }, { - "id": "0x7f0da6bf7600", + "id": "0x7feb10e71690", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27054, + "offset": 26787, "col": 26, "tokLen": 1 }, "end": { - "offset": 27054, + "offset": 26787, "col": 26, "tokLen": 1 } @@ -30548,11 +30548,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30561,16 +30561,16 @@ } }, { - "id": "0x7f0da6bf8808", + "id": "0x7feb10e72898", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 }, "end": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 } @@ -30582,16 +30582,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf7620", + "id": "0x7feb10e716b0", "kind": "StringLiteral", "range": { "begin": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 }, "end": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 } @@ -30609,33 +30609,33 @@ ] }, { - "id": "0x7f0da6bf8918", + "id": "0x7feb10e729a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27073, - "line": 878, + "offset": 26806, + "line": 870, "col": 9, "tokLen": 6 }, "end": { - "offset": 27086, + "offset": 26819, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf88e8", + "id": "0x7feb10e72978", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27080, + "offset": 26813, "col": 16, "tokLen": 4 }, "end": { - "offset": 27086, + "offset": 26819, "col": 22, "tokLen": 6 } @@ -30645,7 +30645,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdec0", + "id": "0x37feebb0", "kind": "EnumConstantDecl", "name": "DAC_14", "type": { @@ -30658,35 +30658,35 @@ ] }, { - "id": "0x7f0da6bfaf08", + "id": "0x7feb10e74f98", "kind": "IfStmt", "range": { "begin": { - "offset": 27098, - "line": 879, + "offset": 26831, + "line": 871, "col": 5, "tokLen": 2 }, "end": { - "offset": 27151, - "line": 880, + "offset": 26884, + "line": 872, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bfae70", + "id": "0x7feb10e74f00", "kind": "BinaryOperator", "range": { "begin": { - "offset": 27102, - "line": 879, + "offset": 26835, + "line": 871, "col": 9, "tokLen": 1 }, "end": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 } @@ -30698,16 +30698,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf9ba8", + "id": "0x7feb10e73c38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27102, + "offset": 26835, "col": 9, "tokLen": 1 }, "end": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 } @@ -30719,16 +30719,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf9b90", + "id": "0x7feb10e73c20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27104, + "offset": 26837, "col": 11, "tokLen": 2 }, "end": { - "offset": 27104, + "offset": 26837, "col": 11, "tokLen": 2 } @@ -30740,16 +30740,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf9b70", + "id": "0x7feb10e73c00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27104, + "offset": 26837, "col": 11, "tokLen": 2 }, "end": { - "offset": 27104, + "offset": 26837, "col": 11, "tokLen": 2 } @@ -30759,7 +30759,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30770,16 +30770,16 @@ ] }, { - "id": "0x7f0da6bf8948", + "id": "0x7feb10e729d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27102, + "offset": 26835, "col": 9, "tokLen": 1 }, "end": { - "offset": 27102, + "offset": 26835, "col": 9, "tokLen": 1 } @@ -30787,11 +30787,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30800,16 +30800,16 @@ } }, { - "id": "0x7f0da6bf9b58", + "id": "0x7feb10e73be8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 }, "end": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 } @@ -30821,16 +30821,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf8968", + "id": "0x7feb10e729f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 }, "end": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 } @@ -30846,16 +30846,16 @@ ] }, { - "id": "0x7f0da6bfae38", + "id": "0x7feb10e74ec8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27119, + "offset": 26852, "col": 26, "tokLen": 1 }, "end": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 } @@ -30867,16 +30867,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bfae20", + "id": "0x7feb10e74eb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27121, + "offset": 26854, "col": 28, "tokLen": 2 }, "end": { - "offset": 27121, + "offset": 26854, "col": 28, "tokLen": 2 } @@ -30888,16 +30888,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bfae00", + "id": "0x7feb10e74e90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27121, + "offset": 26854, "col": 28, "tokLen": 2 }, "end": { - "offset": 27121, + "offset": 26854, "col": 28, "tokLen": 2 } @@ -30907,7 +30907,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30918,16 +30918,16 @@ ] }, { - "id": "0x7f0da6bf9be0", + "id": "0x7feb10e73c70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27119, + "offset": 26852, "col": 26, "tokLen": 1 }, "end": { - "offset": 27119, + "offset": 26852, "col": 26, "tokLen": 1 } @@ -30935,11 +30935,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30948,16 +30948,16 @@ } }, { - "id": "0x7f0da6bfade8", + "id": "0x7feb10e74e78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 }, "end": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 } @@ -30969,16 +30969,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf9c00", + "id": "0x7feb10e73c90", "kind": "StringLiteral", "range": { "begin": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 }, "end": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 } @@ -30996,33 +30996,33 @@ ] }, { - "id": "0x7f0da6bfaef8", + "id": "0x7feb10e74f88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27138, - "line": 880, + "offset": 26871, + "line": 872, "col": 9, "tokLen": 6 }, "end": { - "offset": 27151, + "offset": 26884, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bfaec8", + "id": "0x7feb10e74f58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27145, + "offset": 26878, "col": 16, "tokLen": 4 }, "end": { - "offset": 27151, + "offset": 26884, "col": 22, "tokLen": 6 } @@ -31032,7 +31032,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdf10", + "id": "0x37feec00", "kind": "EnumConstantDecl", "name": "DAC_15", "type": { @@ -31045,35 +31045,35 @@ ] }, { - "id": "0x7f0da6bfd4e8", + "id": "0x7feb10e77578", "kind": "IfStmt", "range": { "begin": { - "offset": 27163, - "line": 881, + "offset": 26896, + "line": 873, "col": 5, "tokLen": 2 }, "end": { - "offset": 27216, - "line": 882, + "offset": 26949, + "line": 874, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bfd450", + "id": "0x7feb10e774e0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 27167, - "line": 881, + "offset": 26900, + "line": 873, "col": 9, "tokLen": 1 }, "end": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 } @@ -31085,16 +31085,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bfc188", + "id": "0x7feb10e76218", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27167, + "offset": 26900, "col": 9, "tokLen": 1 }, "end": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 } @@ -31106,16 +31106,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bfc170", + "id": "0x7feb10e76200", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27169, + "offset": 26902, "col": 11, "tokLen": 2 }, "end": { - "offset": 27169, + "offset": 26902, "col": 11, "tokLen": 2 } @@ -31127,16 +31127,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bfc150", + "id": "0x7feb10e761e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27169, + "offset": 26902, "col": 11, "tokLen": 2 }, "end": { - "offset": 27169, + "offset": 26902, "col": 11, "tokLen": 2 } @@ -31146,7 +31146,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31157,16 +31157,16 @@ ] }, { - "id": "0x7f0da6bfaf28", + "id": "0x7feb10e74fb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27167, + "offset": 26900, "col": 9, "tokLen": 1 }, "end": { - "offset": 27167, + "offset": 26900, "col": 9, "tokLen": 1 } @@ -31174,11 +31174,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31187,16 +31187,16 @@ } }, { - "id": "0x7f0da6bfc138", + "id": "0x7feb10e761c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 }, "end": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 } @@ -31208,16 +31208,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bfaf48", + "id": "0x7feb10e74fd8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 }, "end": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 } @@ -31233,16 +31233,16 @@ ] }, { - "id": "0x7f0da6bfd418", + "id": "0x7feb10e774a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27184, + "offset": 26917, "col": 26, "tokLen": 1 }, "end": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 } @@ -31254,16 +31254,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bfd400", + "id": "0x7feb10e77490", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27186, + "offset": 26919, "col": 28, "tokLen": 2 }, "end": { - "offset": 27186, + "offset": 26919, "col": 28, "tokLen": 2 } @@ -31275,16 +31275,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bfd3e0", + "id": "0x7feb10e77470", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27186, + "offset": 26919, "col": 28, "tokLen": 2 }, "end": { - "offset": 27186, + "offset": 26919, "col": 28, "tokLen": 2 } @@ -31294,7 +31294,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31305,16 +31305,16 @@ ] }, { - "id": "0x7f0da6bfc1c0", + "id": "0x7feb10e76250", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27184, + "offset": 26917, "col": 26, "tokLen": 1 }, "end": { - "offset": 27184, + "offset": 26917, "col": 26, "tokLen": 1 } @@ -31322,11 +31322,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31335,16 +31335,16 @@ } }, { - "id": "0x7f0da6bfd3c8", + "id": "0x7feb10e77458", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 }, "end": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 } @@ -31356,16 +31356,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bfc1e0", + "id": "0x7feb10e76270", "kind": "StringLiteral", "range": { "begin": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 }, "end": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 } @@ -31383,33 +31383,33 @@ ] }, { - "id": "0x7f0da6bfd4d8", + "id": "0x7feb10e77568", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27203, - "line": 882, + "offset": 26936, + "line": 874, "col": 9, "tokLen": 6 }, "end": { - "offset": 27216, + "offset": 26949, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bfd4a8", + "id": "0x7feb10e77538", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27210, + "offset": 26943, "col": 16, "tokLen": 4 }, "end": { - "offset": 27216, + "offset": 26949, "col": 22, "tokLen": 6 } @@ -31419,7 +31419,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdf60", + "id": "0x37feec50", "kind": "EnumConstantDecl", "name": "DAC_16", "type": { @@ -31432,35 +31432,35 @@ ] }, { - "id": "0x7f0da6bbeac8", + "id": "0x7feb10e79b58", "kind": "IfStmt", "range": { "begin": { - "offset": 27228, - "line": 883, + "offset": 26961, + "line": 875, "col": 5, "tokLen": 2 }, "end": { - "offset": 27281, - "line": 884, + "offset": 27014, + "line": 876, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bbea30", + "id": "0x7feb10e79ac0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 27232, - "line": 883, + "offset": 26965, + "line": 875, "col": 9, "tokLen": 1 }, "end": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 } @@ -31472,16 +31472,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bfe768", + "id": "0x7feb10e787f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27232, + "offset": 26965, "col": 9, "tokLen": 1 }, "end": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 } @@ -31493,16 +31493,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bfe750", + "id": "0x7feb10e787e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27234, + "offset": 26967, "col": 11, "tokLen": 2 }, "end": { - "offset": 27234, + "offset": 26967, "col": 11, "tokLen": 2 } @@ -31514,16 +31514,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bfe730", + "id": "0x7feb10e787c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27234, + "offset": 26967, "col": 11, "tokLen": 2 }, "end": { - "offset": 27234, + "offset": 26967, "col": 11, "tokLen": 2 } @@ -31533,7 +31533,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31544,16 +31544,16 @@ ] }, { - "id": "0x7f0da6bfd508", + "id": "0x7feb10e77598", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27232, + "offset": 26965, "col": 9, "tokLen": 1 }, "end": { - "offset": 27232, + "offset": 26965, "col": 9, "tokLen": 1 } @@ -31561,11 +31561,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31574,16 +31574,16 @@ } }, { - "id": "0x7f0da6bfe718", + "id": "0x7feb10e787a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 }, "end": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 } @@ -31595,16 +31595,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bfd528", + "id": "0x7feb10e775b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 }, "end": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 } @@ -31620,16 +31620,16 @@ ] }, { - "id": "0x7f0da6bbe9f8", + "id": "0x7feb10e79a88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27249, + "offset": 26982, "col": 26, "tokLen": 1 }, "end": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 } @@ -31641,16 +31641,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bbe9e0", + "id": "0x7feb10e79a70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27251, + "offset": 26984, "col": 28, "tokLen": 2 }, "end": { - "offset": 27251, + "offset": 26984, "col": 28, "tokLen": 2 } @@ -31662,16 +31662,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bbe9c0", + "id": "0x7feb10e79a50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27251, + "offset": 26984, "col": 28, "tokLen": 2 }, "end": { - "offset": 27251, + "offset": 26984, "col": 28, "tokLen": 2 } @@ -31681,7 +31681,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31692,16 +31692,16 @@ ] }, { - "id": "0x7f0da6bfe7a0", + "id": "0x7feb10e78830", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27249, + "offset": 26982, "col": 26, "tokLen": 1 }, "end": { - "offset": 27249, + "offset": 26982, "col": 26, "tokLen": 1 } @@ -31709,11 +31709,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31722,16 +31722,16 @@ } }, { - "id": "0x7f0da6bbe9a8", + "id": "0x7feb10e79a38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 }, "end": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 } @@ -31743,16 +31743,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bfe7c0", + "id": "0x7feb10e78850", "kind": "StringLiteral", "range": { "begin": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 }, "end": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 } @@ -31770,33 +31770,33 @@ ] }, { - "id": "0x7f0da6bbeab8", + "id": "0x7feb10e79b48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27268, - "line": 884, + "offset": 27001, + "line": 876, "col": 9, "tokLen": 6 }, "end": { - "offset": 27281, + "offset": 27014, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bbea88", + "id": "0x7feb10e79b18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27275, + "offset": 27008, "col": 16, "tokLen": 4 }, "end": { - "offset": 27281, + "offset": 27014, "col": 22, "tokLen": 6 } @@ -31806,7 +31806,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdfb0", + "id": "0x37feeca0", "kind": "EnumConstantDecl", "name": "DAC_17", "type": { @@ -31819,35 +31819,35 @@ ] }, { - "id": "0x7f0da6bbfdf8", + "id": "0x7feb10e39e88", "kind": "IfStmt", "range": { "begin": { - "offset": 27293, - "line": 885, + "offset": 27026, + "line": 877, "col": 5, "tokLen": 2 }, "end": { - "offset": 27331, - "line": 886, + "offset": 27064, + "line": 878, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bbfd48", + "id": "0x7feb10e39dd8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27297, - "line": 885, + "offset": 27030, + "line": 877, "col": 9, "tokLen": 1 }, "end": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 } @@ -31859,16 +31859,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bbfd30", + "id": "0x7feb10e39dc0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27299, + "offset": 27032, "col": 11, "tokLen": 2 }, "end": { - "offset": 27299, + "offset": 27032, "col": 11, "tokLen": 2 } @@ -31880,16 +31880,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bbfd10", + "id": "0x7feb10e39da0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27299, + "offset": 27032, "col": 11, "tokLen": 2 }, "end": { - "offset": 27299, + "offset": 27032, "col": 11, "tokLen": 2 } @@ -31899,7 +31899,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31910,16 +31910,16 @@ ] }, { - "id": "0x7f0da6bbeae8", + "id": "0x7feb10e79b78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27297, + "offset": 27030, "col": 9, "tokLen": 1 }, "end": { - "offset": 27297, + "offset": 27030, "col": 9, "tokLen": 1 } @@ -31927,11 +31927,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31940,16 +31940,16 @@ } }, { - "id": "0x7f0da6bbfcf8", + "id": "0x7feb10e39d88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 }, "end": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 } @@ -31961,16 +31961,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bbeb08", + "id": "0x7feb10e79b98", "kind": "StringLiteral", "range": { "begin": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 }, "end": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 } @@ -31986,33 +31986,33 @@ ] }, { - "id": "0x7f0da6bbfde8", + "id": "0x7feb10e39e78", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27318, - "line": 886, + "offset": 27051, + "line": 878, "col": 9, "tokLen": 6 }, "end": { - "offset": 27331, + "offset": 27064, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bbfdb8", + "id": "0x7feb10e39e48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27325, + "offset": 27058, "col": 16, "tokLen": 4 }, "end": { - "offset": 27331, + "offset": 27064, "col": 22, "tokLen": 4 } @@ -32022,7 +32022,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe000", + "id": "0x37feecf0", "kind": "EnumConstantDecl", "name": "VSVP", "type": { @@ -32035,35 +32035,35 @@ ] }, { - "id": "0x7f0da6bc1128", + "id": "0x7feb10e3b1b8", "kind": "IfStmt", "range": { "begin": { - "offset": 27341, - "line": 887, + "offset": 27074, + "line": 879, "col": 5, "tokLen": 2 }, "end": { - "offset": 27380, - "line": 888, + "offset": 27113, + "line": 880, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bc1078", + "id": "0x7feb10e3b108", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27345, - "line": 887, + "offset": 27078, + "line": 879, "col": 9, "tokLen": 1 }, "end": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 } @@ -32075,16 +32075,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc1060", + "id": "0x7feb10e3b0f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27347, + "offset": 27080, "col": 11, "tokLen": 2 }, "end": { - "offset": 27347, + "offset": 27080, "col": 11, "tokLen": 2 } @@ -32096,16 +32096,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc1040", + "id": "0x7feb10e3b0d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27347, + "offset": 27080, "col": 11, "tokLen": 2 }, "end": { - "offset": 27347, + "offset": 27080, "col": 11, "tokLen": 2 } @@ -32115,7 +32115,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32126,16 +32126,16 @@ ] }, { - "id": "0x7f0da6bbfe18", + "id": "0x7feb10e39ea8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27345, + "offset": 27078, "col": 9, "tokLen": 1 }, "end": { - "offset": 27345, + "offset": 27078, "col": 9, "tokLen": 1 } @@ -32143,11 +32143,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -32156,16 +32156,16 @@ } }, { - "id": "0x7f0da6bc1028", + "id": "0x7feb10e3b0b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 }, "end": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 } @@ -32177,16 +32177,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bbfe38", + "id": "0x7feb10e39ec8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 }, "end": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 } @@ -32202,33 +32202,33 @@ ] }, { - "id": "0x7f0da6bc1118", + "id": "0x7feb10e3b1a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27367, - "line": 888, + "offset": 27100, + "line": 880, "col": 9, "tokLen": 6 }, "end": { - "offset": 27380, + "offset": 27113, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bc10e8", + "id": "0x7feb10e3b178", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27374, + "offset": 27107, "col": 16, "tokLen": 4 }, "end": { - "offset": 27380, + "offset": 27113, "col": 22, "tokLen": 5 } @@ -32238,7 +32238,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe050", + "id": "0x37feed40", "kind": "EnumConstantDecl", "name": "VTRIM", "type": { @@ -32251,35 +32251,35 @@ ] }, { - "id": "0x7f0da6bc2458", + "id": "0x7feb10e3c4e8", "kind": "IfStmt", "range": { "begin": { - "offset": 27391, - "line": 889, + "offset": 27124, + "line": 881, "col": 5, "tokLen": 2 }, "end": { - "offset": 27433, - "line": 890, + "offset": 27166, + "line": 882, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bc23a8", + "id": "0x7feb10e3c438", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27395, - "line": 889, + "offset": 27128, + "line": 881, "col": 9, "tokLen": 1 }, "end": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 } @@ -32291,16 +32291,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc2390", + "id": "0x7feb10e3c420", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27397, + "offset": 27130, "col": 11, "tokLen": 2 }, "end": { - "offset": 27397, + "offset": 27130, "col": 11, "tokLen": 2 } @@ -32312,16 +32312,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc2370", + "id": "0x7feb10e3c400", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27397, + "offset": 27130, "col": 11, "tokLen": 2 }, "end": { - "offset": 27397, + "offset": 27130, "col": 11, "tokLen": 2 } @@ -32331,7 +32331,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32342,16 +32342,16 @@ ] }, { - "id": "0x7f0da6bc1148", + "id": "0x7feb10e3b1d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27395, + "offset": 27128, "col": 9, "tokLen": 1 }, "end": { - "offset": 27395, + "offset": 27128, "col": 9, "tokLen": 1 } @@ -32359,11 +32359,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -32372,16 +32372,16 @@ } }, { - "id": "0x7f0da6bc2358", + "id": "0x7feb10e3c3e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 }, "end": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 } @@ -32393,16 +32393,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc1168", + "id": "0x7feb10e3b1f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 }, "end": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 } @@ -32418,33 +32418,33 @@ ] }, { - "id": "0x7f0da6bc2448", + "id": "0x7feb10e3c4d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27420, - "line": 890, + "offset": 27153, + "line": 882, "col": 9, "tokLen": 6 }, "end": { - "offset": 27433, + "offset": 27166, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bc2418", + "id": "0x7feb10e3c4a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27427, + "offset": 27160, "col": 16, "tokLen": 4 }, "end": { - "offset": 27433, + "offset": 27166, "col": 22, "tokLen": 8 } @@ -32454,7 +32454,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe0a0", + "id": "0x37feed90", "kind": "EnumConstantDecl", "name": "VRPREAMP", "type": { @@ -32467,35 +32467,35 @@ ] }, { - "id": "0x7f0da6bc3788", + "id": "0x7feb10e3d818", "kind": "IfStmt", "range": { "begin": { - "offset": 27447, - "line": 891, + "offset": 27180, + "line": 883, "col": 5, "tokLen": 2 }, "end": { - "offset": 27489, - "line": 892, + "offset": 27222, + "line": 884, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bc36d8", + "id": "0x7feb10e3d768", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27451, - "line": 891, + "offset": 27184, + "line": 883, "col": 9, "tokLen": 1 }, "end": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 } @@ -32507,16 +32507,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc36c0", + "id": "0x7feb10e3d750", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27453, + "offset": 27186, "col": 11, "tokLen": 2 }, "end": { - "offset": 27453, + "offset": 27186, "col": 11, "tokLen": 2 } @@ -32528,16 +32528,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc36a0", + "id": "0x7feb10e3d730", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27453, + "offset": 27186, "col": 11, "tokLen": 2 }, "end": { - "offset": 27453, + "offset": 27186, "col": 11, "tokLen": 2 } @@ -32547,7 +32547,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32558,16 +32558,16 @@ ] }, { - "id": "0x7f0da6bc2478", + "id": "0x7feb10e3c508", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27451, + "offset": 27184, "col": 9, "tokLen": 1 }, "end": { - "offset": 27451, + "offset": 27184, "col": 9, "tokLen": 1 } @@ -32575,11 +32575,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -32588,16 +32588,16 @@ } }, { - "id": "0x7f0da6bc3688", + "id": "0x7feb10e3d718", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 }, "end": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 } @@ -32609,16 +32609,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc2498", + "id": "0x7feb10e3c528", "kind": "StringLiteral", "range": { "begin": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 }, "end": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 } @@ -32634,33 +32634,33 @@ ] }, { - "id": "0x7f0da6bc3778", + "id": "0x7feb10e3d808", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27476, - "line": 892, + "offset": 27209, + "line": 884, "col": 9, "tokLen": 6 }, "end": { - "offset": 27489, + "offset": 27222, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bc3748", + "id": "0x7feb10e3d7d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27483, + "offset": 27216, "col": 16, "tokLen": 4 }, "end": { - "offset": 27489, + "offset": 27222, "col": 22, "tokLen": 8 } @@ -32670,7 +32670,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe0f0", + "id": "0x37feede0", "kind": "EnumConstantDecl", "name": "VRSHAPER", "type": { @@ -32683,35 +32683,35 @@ ] }, { - "id": "0x7f0da6bc4ab8", + "id": "0x7feb10e3eb48", "kind": "IfStmt", "range": { "begin": { - "offset": 27503, - "line": 893, + "offset": 27236, + "line": 885, "col": 5, "tokLen": 2 }, "end": { - "offset": 27541, - "line": 894, + "offset": 27274, + "line": 886, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bc4a08", + "id": "0x7feb10e3ea98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27507, - "line": 893, + "offset": 27240, + "line": 885, "col": 9, "tokLen": 1 }, "end": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 } @@ -32723,16 +32723,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc49f0", + "id": "0x7feb10e3ea80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27509, + "offset": 27242, "col": 11, "tokLen": 2 }, "end": { - "offset": 27509, + "offset": 27242, "col": 11, "tokLen": 2 } @@ -32744,16 +32744,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc49d0", + "id": "0x7feb10e3ea60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27509, + "offset": 27242, "col": 11, "tokLen": 2 }, "end": { - "offset": 27509, + "offset": 27242, "col": 11, "tokLen": 2 } @@ -32763,7 +32763,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32774,16 +32774,16 @@ ] }, { - "id": "0x7f0da6bc37a8", + "id": "0x7feb10e3d838", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27507, + "offset": 27240, "col": 9, "tokLen": 1 }, "end": { - "offset": 27507, + "offset": 27240, "col": 9, "tokLen": 1 } @@ -32791,11 +32791,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -32804,16 +32804,16 @@ } }, { - "id": "0x7f0da6bc49b8", + "id": "0x7feb10e3ea48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 }, "end": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 } @@ -32825,16 +32825,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc37c8", + "id": "0x7feb10e3d858", "kind": "StringLiteral", "range": { "begin": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 }, "end": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 } @@ -32850,33 +32850,33 @@ ] }, { - "id": "0x7f0da6bc4aa8", + "id": "0x7feb10e3eb38", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27528, - "line": 894, + "offset": 27261, + "line": 886, "col": 9, "tokLen": 6 }, "end": { - "offset": 27541, + "offset": 27274, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bc4a78", + "id": "0x7feb10e3eb08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27535, + "offset": 27268, "col": 16, "tokLen": 4 }, "end": { - "offset": 27541, + "offset": 27274, "col": 22, "tokLen": 4 } @@ -32886,7 +32886,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe140", + "id": "0x37feee30", "kind": "EnumConstantDecl", "name": "VSVN", "type": { @@ -32899,35 +32899,35 @@ ] }, { - "id": "0x7f0da6bc5de8", + "id": "0x7feb10e3fe78", "kind": "IfStmt", "range": { "begin": { - "offset": 27551, - "line": 895, + "offset": 27284, + "line": 887, "col": 5, "tokLen": 2 }, "end": { - "offset": 27591, - "line": 896, + "offset": 27324, + "line": 888, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bc5d38", + "id": "0x7feb10e3fdc8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27555, - "line": 895, + "offset": 27288, + "line": 887, "col": 9, "tokLen": 1 }, "end": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 } @@ -32939,16 +32939,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc5d20", + "id": "0x7feb10e3fdb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27557, + "offset": 27290, "col": 11, "tokLen": 2 }, "end": { - "offset": 27557, + "offset": 27290, "col": 11, "tokLen": 2 } @@ -32960,16 +32960,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc5d00", + "id": "0x7feb10e3fd90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27557, + "offset": 27290, "col": 11, "tokLen": 2 }, "end": { - "offset": 27557, + "offset": 27290, "col": 11, "tokLen": 2 } @@ -32979,7 +32979,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32990,16 +32990,16 @@ ] }, { - "id": "0x7f0da6bc4ad8", + "id": "0x7feb10e3eb68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27555, + "offset": 27288, "col": 9, "tokLen": 1 }, "end": { - "offset": 27555, + "offset": 27288, "col": 9, "tokLen": 1 } @@ -33007,11 +33007,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33020,16 +33020,16 @@ } }, { - "id": "0x7f0da6bc5ce8", + "id": "0x7feb10e3fd78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 }, "end": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 } @@ -33041,16 +33041,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc4af8", + "id": "0x7feb10e3eb88", "kind": "StringLiteral", "range": { "begin": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 }, "end": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 } @@ -33066,33 +33066,33 @@ ] }, { - "id": "0x7f0da6bc5dd8", + "id": "0x7feb10e3fe68", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27578, - "line": 896, + "offset": 27311, + "line": 888, "col": 9, "tokLen": 6 }, "end": { - "offset": 27591, + "offset": 27324, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bc5da8", + "id": "0x7feb10e3fe38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27585, + "offset": 27318, "col": 16, "tokLen": 4 }, "end": { - "offset": 27591, + "offset": 27324, "col": 22, "tokLen": 6 } @@ -33102,7 +33102,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe190", + "id": "0x37feee80", "kind": "EnumConstantDecl", "name": "VTGSTV", "type": { @@ -33115,35 +33115,35 @@ ] }, { - "id": "0x7f0da6bc7118", + "id": "0x7feb10e411a8", "kind": "IfStmt", "range": { "begin": { - "offset": 27603, - "line": 897, + "offset": 27336, + "line": 889, "col": 5, "tokLen": 2 }, "end": { - "offset": 27644, - "line": 898, + "offset": 27377, + "line": 890, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bc7068", + "id": "0x7feb10e410f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27607, - "line": 897, + "offset": 27340, + "line": 889, "col": 9, "tokLen": 1 }, "end": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 } @@ -33155,16 +33155,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc7050", + "id": "0x7feb10e410e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27609, + "offset": 27342, "col": 11, "tokLen": 2 }, "end": { - "offset": 27609, + "offset": 27342, "col": 11, "tokLen": 2 } @@ -33176,16 +33176,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc7030", + "id": "0x7feb10e410c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27609, + "offset": 27342, "col": 11, "tokLen": 2 }, "end": { - "offset": 27609, + "offset": 27342, "col": 11, "tokLen": 2 } @@ -33195,7 +33195,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -33206,16 +33206,16 @@ ] }, { - "id": "0x7f0da6bc5e08", + "id": "0x7feb10e3fe98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27607, + "offset": 27340, "col": 9, "tokLen": 1 }, "end": { - "offset": 27607, + "offset": 27340, "col": 9, "tokLen": 1 } @@ -33223,11 +33223,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33236,16 +33236,16 @@ } }, { - "id": "0x7f0da6bc7018", + "id": "0x7feb10e410a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 }, "end": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 } @@ -33257,16 +33257,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc5e28", + "id": "0x7feb10e3feb8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 }, "end": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 } @@ -33282,33 +33282,33 @@ ] }, { - "id": "0x7f0da6bc7108", + "id": "0x7feb10e41198", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27631, - "line": 898, + "offset": 27364, + "line": 890, "col": 9, "tokLen": 6 }, "end": { - "offset": 27644, + "offset": 27377, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bc70d8", + "id": "0x7feb10e41168", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27638, + "offset": 27371, "col": 16, "tokLen": 4 }, "end": { - "offset": 27644, + "offset": 27377, "col": 22, "tokLen": 7 } @@ -33318,7 +33318,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe1e0", + "id": "0x37feeed0", "kind": "EnumConstantDecl", "name": "VCMP_LL", "type": { @@ -33331,35 +33331,35 @@ ] }, { - "id": "0x7f0da6bc8448", + "id": "0x7feb10e424d8", "kind": "IfStmt", "range": { "begin": { - "offset": 27657, - "line": 899, + "offset": 27390, + "line": 891, "col": 5, "tokLen": 2 }, "end": { - "offset": 27698, - "line": 900, + "offset": 27431, + "line": 892, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bc8398", + "id": "0x7feb10e42428", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27661, - "line": 899, + "offset": 27394, + "line": 891, "col": 9, "tokLen": 1 }, "end": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 } @@ -33371,16 +33371,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc8380", + "id": "0x7feb10e42410", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27663, + "offset": 27396, "col": 11, "tokLen": 2 }, "end": { - "offset": 27663, + "offset": 27396, "col": 11, "tokLen": 2 } @@ -33392,16 +33392,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc8360", + "id": "0x7feb10e423f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27663, + "offset": 27396, "col": 11, "tokLen": 2 }, "end": { - "offset": 27663, + "offset": 27396, "col": 11, "tokLen": 2 } @@ -33411,7 +33411,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -33422,16 +33422,16 @@ ] }, { - "id": "0x7f0da6bc7138", + "id": "0x7feb10e411c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27661, + "offset": 27394, "col": 9, "tokLen": 1 }, "end": { - "offset": 27661, + "offset": 27394, "col": 9, "tokLen": 1 } @@ -33439,11 +33439,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33452,16 +33452,16 @@ } }, { - "id": "0x7f0da6bc8348", + "id": "0x7feb10e423d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 }, "end": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 } @@ -33473,16 +33473,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc7158", + "id": "0x7feb10e411e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 }, "end": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 } @@ -33498,33 +33498,33 @@ ] }, { - "id": "0x7f0da6bc8438", + "id": "0x7feb10e424c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27685, - "line": 900, + "offset": 27418, + "line": 892, "col": 9, "tokLen": 6 }, "end": { - "offset": 27698, + "offset": 27431, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bc8408", + "id": "0x7feb10e42498", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27692, + "offset": 27425, "col": 16, "tokLen": 4 }, "end": { - "offset": 27698, + "offset": 27431, "col": 22, "tokLen": 7 } @@ -33534,7 +33534,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe230", + "id": "0x37feef20", "kind": "EnumConstantDecl", "name": "VCMP_LR", "type": { @@ -33547,35 +33547,35 @@ ] }, { - "id": "0x7f0da6bc9778", + "id": "0x7feb10e43808", "kind": "IfStmt", "range": { "begin": { - "offset": 27711, - "line": 901, + "offset": 27444, + "line": 893, "col": 5, "tokLen": 2 }, "end": { - "offset": 27749, - "line": 902, + "offset": 27482, + "line": 894, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bc96c8", + "id": "0x7feb10e43758", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27715, - "line": 901, + "offset": 27448, + "line": 893, "col": 9, "tokLen": 1 }, "end": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 } @@ -33587,16 +33587,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc96b0", + "id": "0x7feb10e43740", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27717, + "offset": 27450, "col": 11, "tokLen": 2 }, "end": { - "offset": 27717, + "offset": 27450, "col": 11, "tokLen": 2 } @@ -33608,16 +33608,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc9690", + "id": "0x7feb10e43720", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27717, + "offset": 27450, "col": 11, "tokLen": 2 }, "end": { - "offset": 27717, + "offset": 27450, "col": 11, "tokLen": 2 } @@ -33627,7 +33627,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -33638,16 +33638,16 @@ ] }, { - "id": "0x7f0da6bc8468", + "id": "0x7feb10e424f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27715, + "offset": 27448, "col": 9, "tokLen": 1 }, "end": { - "offset": 27715, + "offset": 27448, "col": 9, "tokLen": 1 } @@ -33655,11 +33655,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33668,16 +33668,16 @@ } }, { - "id": "0x7f0da6bc9678", + "id": "0x7feb10e43708", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 }, "end": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 } @@ -33689,16 +33689,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc8488", + "id": "0x7feb10e42518", "kind": "StringLiteral", "range": { "begin": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 }, "end": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 } @@ -33714,33 +33714,33 @@ ] }, { - "id": "0x7f0da6bc9768", + "id": "0x7feb10e437f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27736, - "line": 902, + "offset": 27469, + "line": 894, "col": 9, "tokLen": 6 }, "end": { - "offset": 27749, + "offset": 27482, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bc9738", + "id": "0x7feb10e437c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27743, + "offset": 27476, "col": 16, "tokLen": 4 }, "end": { - "offset": 27749, + "offset": 27482, "col": 22, "tokLen": 4 } @@ -33750,7 +33750,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe280", + "id": "0x37feef70", "kind": "EnumConstantDecl", "name": "VCAL", "type": { @@ -33763,35 +33763,35 @@ ] }, { - "id": "0x7f0da6bcaaa8", + "id": "0x7feb10e44b38", "kind": "IfStmt", "range": { "begin": { - "offset": 27759, - "line": 903, + "offset": 27492, + "line": 895, "col": 5, "tokLen": 2 }, "end": { - "offset": 27800, - "line": 904, + "offset": 27533, + "line": 896, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bca9f8", + "id": "0x7feb10e44a88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27763, - "line": 903, + "offset": 27496, + "line": 895, "col": 9, "tokLen": 1 }, "end": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 } @@ -33803,16 +33803,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bca9e0", + "id": "0x7feb10e44a70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27765, + "offset": 27498, "col": 11, "tokLen": 2 }, "end": { - "offset": 27765, + "offset": 27498, "col": 11, "tokLen": 2 } @@ -33824,16 +33824,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bca9c0", + "id": "0x7feb10e44a50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27765, + "offset": 27498, "col": 11, "tokLen": 2 }, "end": { - "offset": 27765, + "offset": 27498, "col": 11, "tokLen": 2 } @@ -33843,7 +33843,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -33854,16 +33854,16 @@ ] }, { - "id": "0x7f0da6bc9798", + "id": "0x7feb10e43828", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27763, + "offset": 27496, "col": 9, "tokLen": 1 }, "end": { - "offset": 27763, + "offset": 27496, "col": 9, "tokLen": 1 } @@ -33871,11 +33871,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33884,16 +33884,16 @@ } }, { - "id": "0x7f0da6bca9a8", + "id": "0x7feb10e44a38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 }, "end": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 } @@ -33905,16 +33905,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc97b8", + "id": "0x7feb10e43848", "kind": "StringLiteral", "range": { "begin": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 }, "end": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 } @@ -33930,33 +33930,33 @@ ] }, { - "id": "0x7f0da6bcaa98", + "id": "0x7feb10e44b28", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27787, - "line": 904, + "offset": 27520, + "line": 896, "col": 9, "tokLen": 6 }, "end": { - "offset": 27800, + "offset": 27533, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bcaa68", + "id": "0x7feb10e44af8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27794, + "offset": 27527, "col": 16, "tokLen": 4 }, "end": { - "offset": 27800, + "offset": 27533, "col": 22, "tokLen": 7 } @@ -33966,7 +33966,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe2d0", + "id": "0x37feefc0", "kind": "EnumConstantDecl", "name": "VCMP_RL", "type": { @@ -33979,35 +33979,35 @@ ] }, { - "id": "0x7f0da6bcbdd8", + "id": "0x7feb10e45e68", "kind": "IfStmt", "range": { "begin": { - "offset": 27813, - "line": 905, + "offset": 27546, + "line": 897, "col": 5, "tokLen": 2 }, "end": { - "offset": 27853, - "line": 906, + "offset": 27586, + "line": 898, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bcbd28", + "id": "0x7feb10e45db8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27817, - "line": 905, + "offset": 27550, + "line": 897, "col": 9, "tokLen": 1 }, "end": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 } @@ -34019,16 +34019,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bcbd10", + "id": "0x7feb10e45da0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27819, + "offset": 27552, "col": 11, "tokLen": 2 }, "end": { - "offset": 27819, + "offset": 27552, "col": 11, "tokLen": 2 } @@ -34040,16 +34040,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bcbcf0", + "id": "0x7feb10e45d80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27819, + "offset": 27552, "col": 11, "tokLen": 2 }, "end": { - "offset": 27819, + "offset": 27552, "col": 11, "tokLen": 2 } @@ -34059,7 +34059,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34070,16 +34070,16 @@ ] }, { - "id": "0x7f0da6bcaac8", + "id": "0x7feb10e44b58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27817, + "offset": 27550, "col": 9, "tokLen": 1 }, "end": { - "offset": 27817, + "offset": 27550, "col": 9, "tokLen": 1 } @@ -34087,11 +34087,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34100,16 +34100,16 @@ } }, { - "id": "0x7f0da6bcbcd8", + "id": "0x7feb10e45d68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 }, "end": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 } @@ -34121,16 +34121,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bcaae8", + "id": "0x7feb10e44b78", "kind": "StringLiteral", "range": { "begin": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 }, "end": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 } @@ -34146,33 +34146,33 @@ ] }, { - "id": "0x7f0da6bcbdc8", + "id": "0x7feb10e45e58", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27840, - "line": 906, + "offset": 27573, + "line": 898, "col": 9, "tokLen": 6 }, "end": { - "offset": 27853, + "offset": 27586, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bcbd98", + "id": "0x7feb10e45e28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27847, + "offset": 27580, "col": 16, "tokLen": 4 }, "end": { - "offset": 27853, + "offset": 27586, "col": 22, "tokLen": 6 } @@ -34182,7 +34182,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe320", + "id": "0x37fef010", "kind": "EnumConstantDecl", "name": "RXB_RB", "type": { @@ -34195,35 +34195,35 @@ ] }, { - "id": "0x7f0da6bcd108", + "id": "0x7feb10e47198", "kind": "IfStmt", "range": { "begin": { - "offset": 27865, - "line": 907, + "offset": 27598, + "line": 899, "col": 5, "tokLen": 2 }, "end": { - "offset": 27905, - "line": 908, + "offset": 27638, + "line": 900, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bcd058", + "id": "0x7feb10e470e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27869, - "line": 907, + "offset": 27602, + "line": 899, "col": 9, "tokLen": 1 }, "end": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 } @@ -34235,16 +34235,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bcd040", + "id": "0x7feb10e470d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27871, + "offset": 27604, "col": 11, "tokLen": 2 }, "end": { - "offset": 27871, + "offset": 27604, "col": 11, "tokLen": 2 } @@ -34256,16 +34256,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bcd020", + "id": "0x7feb10e470b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27871, + "offset": 27604, "col": 11, "tokLen": 2 }, "end": { - "offset": 27871, + "offset": 27604, "col": 11, "tokLen": 2 } @@ -34275,7 +34275,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34286,16 +34286,16 @@ ] }, { - "id": "0x7f0da6bcbdf8", + "id": "0x7feb10e45e88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27869, + "offset": 27602, "col": 9, "tokLen": 1 }, "end": { - "offset": 27869, + "offset": 27602, "col": 9, "tokLen": 1 } @@ -34303,11 +34303,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34316,16 +34316,16 @@ } }, { - "id": "0x7f0da6bcd008", + "id": "0x7feb10e47098", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 }, "end": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 } @@ -34337,16 +34337,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bcbe18", + "id": "0x7feb10e45ea8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 }, "end": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 } @@ -34362,33 +34362,33 @@ ] }, { - "id": "0x7f0da6bcd0f8", + "id": "0x7feb10e47188", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27892, - "line": 908, + "offset": 27625, + "line": 900, "col": 9, "tokLen": 6 }, "end": { - "offset": 27905, + "offset": 27638, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bcd0c8", + "id": "0x7feb10e47158", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27899, + "offset": 27632, "col": 16, "tokLen": 4 }, "end": { - "offset": 27905, + "offset": 27638, "col": 22, "tokLen": 6 } @@ -34398,7 +34398,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe370", + "id": "0x37fef060", "kind": "EnumConstantDecl", "name": "RXB_LB", "type": { @@ -34411,35 +34411,35 @@ ] }, { - "id": "0x7f0da6bce438", + "id": "0x7feb10e484c8", "kind": "IfStmt", "range": { "begin": { - "offset": 27917, - "line": 909, + "offset": 27650, + "line": 901, "col": 5, "tokLen": 2 }, "end": { - "offset": 27958, - "line": 910, + "offset": 27691, + "line": 902, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bce388", + "id": "0x7feb10e48418", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27921, - "line": 909, + "offset": 27654, + "line": 901, "col": 9, "tokLen": 1 }, "end": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 } @@ -34451,16 +34451,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bce370", + "id": "0x7feb10e48400", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27923, + "offset": 27656, "col": 11, "tokLen": 2 }, "end": { - "offset": 27923, + "offset": 27656, "col": 11, "tokLen": 2 } @@ -34472,16 +34472,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bce350", + "id": "0x7feb10e483e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27923, + "offset": 27656, "col": 11, "tokLen": 2 }, "end": { - "offset": 27923, + "offset": 27656, "col": 11, "tokLen": 2 } @@ -34491,7 +34491,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34502,16 +34502,16 @@ ] }, { - "id": "0x7f0da6bcd128", + "id": "0x7feb10e471b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27921, + "offset": 27654, "col": 9, "tokLen": 1 }, "end": { - "offset": 27921, + "offset": 27654, "col": 9, "tokLen": 1 } @@ -34519,11 +34519,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34532,16 +34532,16 @@ } }, { - "id": "0x7f0da6bce338", + "id": "0x7feb10e483c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 }, "end": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 } @@ -34553,16 +34553,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bcd148", + "id": "0x7feb10e471d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 }, "end": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 } @@ -34578,33 +34578,33 @@ ] }, { - "id": "0x7f0da6bce428", + "id": "0x7feb10e484b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27945, - "line": 910, + "offset": 27678, + "line": 902, "col": 9, "tokLen": 6 }, "end": { - "offset": 27958, + "offset": 27691, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bce3f8", + "id": "0x7feb10e48488", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27952, + "offset": 27685, "col": 16, "tokLen": 4 }, "end": { - "offset": 27958, + "offset": 27691, "col": 22, "tokLen": 7 } @@ -34614,7 +34614,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe3c0", + "id": "0x37fef0b0", "kind": "EnumConstantDecl", "name": "VCMP_RR", "type": { @@ -34627,35 +34627,35 @@ ] }, { - "id": "0x7f0da6bcf768", + "id": "0x7feb10e497f8", "kind": "IfStmt", "range": { "begin": { - "offset": 27971, - "line": 911, + "offset": 27704, + "line": 903, "col": 5, "tokLen": 2 }, "end": { - "offset": 28008, - "line": 912, + "offset": 27741, + "line": 904, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6bcf6b8", + "id": "0x7feb10e49748", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27975, - "line": 911, + "offset": 27708, + "line": 903, "col": 9, "tokLen": 1 }, "end": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 } @@ -34667,16 +34667,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bcf6a0", + "id": "0x7feb10e49730", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27977, + "offset": 27710, "col": 11, "tokLen": 2 }, "end": { - "offset": 27977, + "offset": 27710, "col": 11, "tokLen": 2 } @@ -34688,16 +34688,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bcf680", + "id": "0x7feb10e49710", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27977, + "offset": 27710, "col": 11, "tokLen": 2 }, "end": { - "offset": 27977, + "offset": 27710, "col": 11, "tokLen": 2 } @@ -34707,7 +34707,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34718,16 +34718,16 @@ ] }, { - "id": "0x7f0da6bce458", + "id": "0x7feb10e484e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27975, + "offset": 27708, "col": 9, "tokLen": 1 }, "end": { - "offset": 27975, + "offset": 27708, "col": 9, "tokLen": 1 } @@ -34735,11 +34735,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34748,16 +34748,16 @@ } }, { - "id": "0x7f0da6bcf668", + "id": "0x7feb10e496f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 }, "end": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 } @@ -34769,16 +34769,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bce478", + "id": "0x7feb10e48508", "kind": "StringLiteral", "range": { "begin": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 }, "end": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 } @@ -34794,33 +34794,33 @@ ] }, { - "id": "0x7f0da6bcf758", + "id": "0x7feb10e497e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27995, - "line": 912, + "offset": 27728, + "line": 904, "col": 9, "tokLen": 6 }, "end": { - "offset": 28008, + "offset": 27741, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6bcf728", + "id": "0x7feb10e497b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28002, + "offset": 27735, "col": 16, "tokLen": 4 }, "end": { - "offset": 28008, + "offset": 27741, "col": 22, "tokLen": 3 } @@ -34830,7 +34830,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe410", + "id": "0x37fef100", "kind": "EnumConstantDecl", "name": "VCP", "type": { @@ -34843,35 +34843,35 @@ ] }, { - "id": "0x7f0da6bd0a98", + "id": "0x7feb10e4ab28", "kind": "IfStmt", "range": { "begin": { - "offset": 28017, - "line": 913, + "offset": 27750, + "line": 905, "col": 5, "tokLen": 2 }, "end": { - "offset": 28054, - "line": 914, + "offset": 27787, + "line": 906, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6bd09e8", + "id": "0x7feb10e4aa78", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28021, - "line": 913, + "offset": 27754, + "line": 905, "col": 9, "tokLen": 1 }, "end": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 } @@ -34883,16 +34883,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd09d0", + "id": "0x7feb10e4aa60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28023, + "offset": 27756, "col": 11, "tokLen": 2 }, "end": { - "offset": 28023, + "offset": 27756, "col": 11, "tokLen": 2 } @@ -34904,16 +34904,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd09b0", + "id": "0x7feb10e4aa40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28023, + "offset": 27756, "col": 11, "tokLen": 2 }, "end": { - "offset": 28023, + "offset": 27756, "col": 11, "tokLen": 2 } @@ -34923,7 +34923,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34934,16 +34934,16 @@ ] }, { - "id": "0x7f0da6bcf788", + "id": "0x7feb10e49818", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28021, + "offset": 27754, "col": 9, "tokLen": 1 }, "end": { - "offset": 28021, + "offset": 27754, "col": 9, "tokLen": 1 } @@ -34951,11 +34951,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34964,16 +34964,16 @@ } }, { - "id": "0x7f0da6bd0998", + "id": "0x7feb10e4aa28", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 }, "end": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 } @@ -34985,16 +34985,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bcf7a8", + "id": "0x7feb10e49838", "kind": "StringLiteral", "range": { "begin": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 }, "end": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 } @@ -35010,33 +35010,33 @@ ] }, { - "id": "0x7f0da6bd0a88", + "id": "0x7feb10e4ab18", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28041, - "line": 914, + "offset": 27774, + "line": 906, "col": 9, "tokLen": 6 }, "end": { - "offset": 28054, + "offset": 27787, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6bd0a58", + "id": "0x7feb10e4aae8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28048, + "offset": 27781, "col": 16, "tokLen": 4 }, "end": { - "offset": 28054, + "offset": 27787, "col": 22, "tokLen": 3 } @@ -35046,7 +35046,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe460", + "id": "0x37fef150", "kind": "EnumConstantDecl", "name": "VCN", "type": { @@ -35059,35 +35059,35 @@ ] }, { - "id": "0x7f0da6bd1dc8", + "id": "0x7feb10e4be58", "kind": "IfStmt", "range": { "begin": { - "offset": 28063, - "line": 915, + "offset": 27796, + "line": 907, "col": 5, "tokLen": 2 }, "end": { - "offset": 28105, - "line": 916, + "offset": 27838, + "line": 908, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bd1d18", + "id": "0x7feb10e4bda8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28067, - "line": 915, + "offset": 27800, + "line": 907, "col": 9, "tokLen": 1 }, "end": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 } @@ -35099,16 +35099,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd1d00", + "id": "0x7feb10e4bd90", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28069, + "offset": 27802, "col": 11, "tokLen": 2 }, "end": { - "offset": 28069, + "offset": 27802, "col": 11, "tokLen": 2 } @@ -35120,16 +35120,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd1ce0", + "id": "0x7feb10e4bd70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28069, + "offset": 27802, "col": 11, "tokLen": 2 }, "end": { - "offset": 28069, + "offset": 27802, "col": 11, "tokLen": 2 } @@ -35139,7 +35139,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -35150,16 +35150,16 @@ ] }, { - "id": "0x7f0da6bd0ab8", + "id": "0x7feb10e4ab48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28067, + "offset": 27800, "col": 9, "tokLen": 1 }, "end": { - "offset": 28067, + "offset": 27800, "col": 9, "tokLen": 1 } @@ -35167,11 +35167,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -35180,16 +35180,16 @@ } }, { - "id": "0x7f0da6bd1cc8", + "id": "0x7feb10e4bd58", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 }, "end": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 } @@ -35201,16 +35201,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd0ad8", + "id": "0x7feb10e4ab68", "kind": "StringLiteral", "range": { "begin": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 }, "end": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 } @@ -35226,33 +35226,33 @@ ] }, { - "id": "0x7f0da6bd1db8", + "id": "0x7feb10e4be48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28092, - "line": 916, + "offset": 27825, + "line": 908, "col": 9, "tokLen": 6 }, "end": { - "offset": 28105, + "offset": 27838, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bd1d88", + "id": "0x7feb10e4be18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28099, + "offset": 27832, "col": 16, "tokLen": 4 }, "end": { - "offset": 28105, + "offset": 27838, "col": 22, "tokLen": 8 } @@ -35262,7 +35262,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe4b0", + "id": "0x37fef1a0", "kind": "EnumConstantDecl", "name": "VISHAPER", "type": { @@ -35275,35 +35275,35 @@ ] }, { - "id": "0x7f0da6bd30f8", + "id": "0x7feb10e4d188", "kind": "IfStmt", "range": { "begin": { - "offset": 28119, - "line": 917, + "offset": 27852, + "line": 909, "col": 5, "tokLen": 2 }, "end": { - "offset": 28163, - "line": 918, + "offset": 27896, + "line": 910, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bd3048", + "id": "0x7feb10e4d0d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28123, - "line": 917, + "offset": 27856, + "line": 909, "col": 9, "tokLen": 1 }, "end": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 } @@ -35315,16 +35315,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd3030", + "id": "0x7feb10e4d0c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28125, + "offset": 27858, "col": 11, "tokLen": 2 }, "end": { - "offset": 28125, + "offset": 27858, "col": 11, "tokLen": 2 } @@ -35336,16 +35336,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd3010", + "id": "0x7feb10e4d0a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28125, + "offset": 27858, "col": 11, "tokLen": 2 }, "end": { - "offset": 28125, + "offset": 27858, "col": 11, "tokLen": 2 } @@ -35355,7 +35355,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -35366,16 +35366,16 @@ ] }, { - "id": "0x7f0da6bd1de8", + "id": "0x7feb10e4be78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28123, + "offset": 27856, "col": 9, "tokLen": 1 }, "end": { - "offset": 28123, + "offset": 27856, "col": 9, "tokLen": 1 } @@ -35383,11 +35383,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -35396,16 +35396,16 @@ } }, { - "id": "0x7f0da6bd2ff8", + "id": "0x7feb10e4d088", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 }, "end": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 } @@ -35417,16 +35417,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd1e08", + "id": "0x7feb10e4be98", "kind": "StringLiteral", "range": { "begin": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 }, "end": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 } @@ -35442,33 +35442,33 @@ ] }, { - "id": "0x7f0da6bd30e8", + "id": "0x7feb10e4d178", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28150, - "line": 918, + "offset": 27883, + "line": 910, "col": 9, "tokLen": 6 }, "end": { - "offset": 28163, + "offset": 27896, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bd30b8", + "id": "0x7feb10e4d148", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28157, + "offset": 27890, "col": 16, "tokLen": 4 }, "end": { - "offset": 28163, + "offset": 27896, "col": 22, "tokLen": 10 } @@ -35478,7 +35478,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe500", + "id": "0x37fef1f0", "kind": "EnumConstantDecl", "name": "VTHRESHOLD", "type": { @@ -35491,35 +35491,35 @@ ] }, { - "id": "0x7f0da6bd4428", + "id": "0x7feb10e4e4b8", "kind": "IfStmt", "range": { "begin": { - "offset": 28179, - "line": 919, + "offset": 27912, + "line": 911, "col": 5, "tokLen": 2 }, "end": { - "offset": 28220, - "line": 920, + "offset": 27953, + "line": 912, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bd4378", + "id": "0x7feb10e4e408", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28183, - "line": 919, + "offset": 27916, + "line": 911, "col": 9, "tokLen": 1 }, "end": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 } @@ -35531,16 +35531,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd4360", + "id": "0x7feb10e4e3f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28185, + "offset": 27918, "col": 11, "tokLen": 2 }, "end": { - "offset": 28185, + "offset": 27918, "col": 11, "tokLen": 2 } @@ -35552,16 +35552,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd4340", + "id": "0x7feb10e4e3d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28185, + "offset": 27918, "col": 11, "tokLen": 2 }, "end": { - "offset": 28185, + "offset": 27918, "col": 11, "tokLen": 2 } @@ -35571,7 +35571,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -35582,16 +35582,16 @@ ] }, { - "id": "0x7f0da6bd3118", + "id": "0x7feb10e4d1a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28183, + "offset": 27916, "col": 9, "tokLen": 1 }, "end": { - "offset": 28183, + "offset": 27916, "col": 9, "tokLen": 1 } @@ -35599,11 +35599,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -35612,16 +35612,16 @@ } }, { - "id": "0x7f0da6bd4328", + "id": "0x7feb10e4e3b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 }, "end": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 } @@ -35633,16 +35633,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd3138", + "id": "0x7feb10e4d1c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 }, "end": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 } @@ -35658,33 +35658,33 @@ ] }, { - "id": "0x7f0da6bd4418", + "id": "0x7feb10e4e4a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28207, - "line": 920, + "offset": 27940, + "line": 912, "col": 9, "tokLen": 6 }, "end": { - "offset": 28220, + "offset": 27953, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bd43e8", + "id": "0x7feb10e4e478", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28214, + "offset": 27947, "col": 16, "tokLen": 4 }, "end": { - "offset": 28220, + "offset": 27953, "col": 22, "tokLen": 7 } @@ -35694,7 +35694,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe5a0", + "id": "0x37fef290", "kind": "EnumConstantDecl", "name": "VREF_DS", "type": { @@ -35707,467 +35707,35 @@ ] }, { - "id": "0x7f0da6bd5758", + "id": "0x7feb10e4f7e8", "kind": "IfStmt", "range": { "begin": { - "offset": 28233, - "line": 921, + "offset": 27966, + "line": 913, "col": 5, "tokLen": 2 }, "end": { - "offset": 28276, - "line": 922, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd56a8", - "kind": "CXXOperatorCallExpr", - "range": { - "begin": { - "offset": 28237, - "line": 921, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28242, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "bool" - }, - "valueCategory": "prvalue", - "adl": true, - "inner": [ - { - "id": "0x7f0da6bd5690", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28239, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28239, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (*)(const basic_string, allocator> &, const char *)" - }, - "valueCategory": "prvalue", - "castKind": "FunctionToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd5670", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28239, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28239, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x2d2f20c8", - "kind": "FunctionDecl", - "name": "operator==", - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - } - } - } - ] - }, - { - "id": "0x7f0da6bd4448", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28237, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28237, - "col": 9, - "tokLen": 1 - } - }, - "type": { - "desugaredQualType": "const std::basic_string", - "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x7f0da6e4ae70", - "kind": "ParmVarDecl", - "name": "s", - "type": { - "qualType": "const std::string &" - } - } - }, - { - "id": "0x7f0da6bd5658", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28242, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28242, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char *" - }, - "valueCategory": "prvalue", - "castKind": "ArrayToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd4468", - "kind": "StringLiteral", - "range": { - "begin": { - "offset": 28242, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28242, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char[10]" - }, - "valueCategory": "lvalue", - "value": "\"vcascn_pb\"" - } - ] - } - ] - }, - { - "id": "0x7f0da6bd5748", - "kind": "ReturnStmt", - "range": { - "begin": { - "offset": 28263, - "line": 922, - "col": 9, - "tokLen": 6 - }, - "end": { - "offset": 28276, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd5718", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28270, - "col": 16, - "tokLen": 4 - }, - "end": { - "offset": 28276, - "col": 22, - "tokLen": 9 - } - }, - "type": { - "qualType": "slsDetectorDefs::dacIndex" - }, - "valueCategory": "prvalue", - "referencedDecl": { - "id": "0x2cdbe5f0", - "kind": "EnumConstantDecl", - "name": "VCASCN_PB", - "type": { - "qualType": "slsDetectorDefs::dacIndex" - } - } - } - ] - } - ] - }, - { - "id": "0x7f0da6bd6a88", - "kind": "IfStmt", - "range": { - "begin": { - "offset": 28291, - "line": 923, - "col": 5, - "tokLen": 2 - }, - "end": { - "offset": 28334, - "line": 924, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd69d8", - "kind": "CXXOperatorCallExpr", - "range": { - "begin": { - "offset": 28295, - "line": 923, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28300, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "bool" - }, - "valueCategory": "prvalue", - "adl": true, - "inner": [ - { - "id": "0x7f0da6bd69c0", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28297, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28297, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (*)(const basic_string, allocator> &, const char *)" - }, - "valueCategory": "prvalue", - "castKind": "FunctionToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd69a0", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28297, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28297, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x2d2f20c8", - "kind": "FunctionDecl", - "name": "operator==", - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - } - } - } - ] - }, - { - "id": "0x7f0da6bd5778", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28295, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28295, - "col": 9, - "tokLen": 1 - } - }, - "type": { - "desugaredQualType": "const std::basic_string", - "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x7f0da6e4ae70", - "kind": "ParmVarDecl", - "name": "s", - "type": { - "qualType": "const std::string &" - } - } - }, - { - "id": "0x7f0da6bd6988", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28300, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28300, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char *" - }, - "valueCategory": "prvalue", - "castKind": "ArrayToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd5798", - "kind": "StringLiteral", - "range": { - "begin": { - "offset": 28300, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28300, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char[10]" - }, - "valueCategory": "lvalue", - "value": "\"vcascp_pb\"" - } - ] - } - ] - }, - { - "id": "0x7f0da6bd6a78", - "kind": "ReturnStmt", - "range": { - "begin": { - "offset": 28321, - "line": 924, - "col": 9, - "tokLen": 6 - }, - "end": { - "offset": 28334, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd6a48", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28328, - "col": 16, - "tokLen": 4 - }, - "end": { - "offset": 28334, - "col": 22, - "tokLen": 9 - } - }, - "type": { - "qualType": "slsDetectorDefs::dacIndex" - }, - "valueCategory": "prvalue", - "referencedDecl": { - "id": "0x2cdbe640", - "kind": "EnumConstantDecl", - "name": "VCASCP_PB", - "type": { - "qualType": "slsDetectorDefs::dacIndex" - } - } - } - ] - } - ] - }, - { - "id": "0x7f0da6bd7db8", - "kind": "IfStmt", - "range": { - "begin": { - "offset": 28349, - "line": 925, - "col": 5, - "tokLen": 2 - }, - "end": { - "offset": 28390, - "line": 926, + "offset": 28007, + "line": 914, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bd7d08", + "id": "0x7feb10e4f738", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28353, - "line": 925, + "offset": 27970, + "line": 913, "col": 9, "tokLen": 1 }, "end": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 } @@ -36179,16 +35747,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd7cf0", + "id": "0x7feb10e4f720", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28355, + "offset": 27972, "col": 11, "tokLen": 2 }, "end": { - "offset": 28355, + "offset": 27972, "col": 11, "tokLen": 2 } @@ -36200,16 +35768,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd7cd0", + "id": "0x7feb10e4f700", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28355, + "offset": 27972, "col": 11, "tokLen": 2 }, "end": { - "offset": 28355, + "offset": 27972, "col": 11, "tokLen": 2 } @@ -36219,7 +35787,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -36230,16 +35798,16 @@ ] }, { - "id": "0x7f0da6bd6aa8", + "id": "0x7feb10e4e4d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28353, + "offset": 27970, "col": 9, "tokLen": 1 }, "end": { - "offset": 28353, + "offset": 27970, "col": 9, "tokLen": 1 } @@ -36247,11 +35815,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -36260,16 +35828,16 @@ } }, { - "id": "0x7f0da6bd7cb8", + "id": "0x7feb10e4f6e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 }, "end": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 } @@ -36281,16 +35849,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd6ac8", + "id": "0x7feb10e4e4f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 }, "end": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 } @@ -36306,33 +35874,33 @@ ] }, { - "id": "0x7f0da6bd7da8", + "id": "0x7feb10e4f7d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28377, - "line": 926, + "offset": 27994, + "line": 914, "col": 9, "tokLen": 6 }, "end": { - "offset": 28390, + "offset": 28007, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bd7d78", + "id": "0x7feb10e4f7a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28384, + "offset": 28001, "col": 16, "tokLen": 4 }, "end": { - "offset": 28390, + "offset": 28007, "col": 22, "tokLen": 7 } @@ -36342,7 +35910,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe690", + "id": "0x37fef2e0", "kind": "EnumConstantDecl", "name": "VOUT_CM", "type": { @@ -36355,251 +35923,35 @@ ] }, { - "id": "0x7f0da6bd90e8", + "id": "0x7feb10e50b18", "kind": "IfStmt", "range": { "begin": { - "offset": 28403, - "line": 927, + "offset": 28020, + "line": 915, "col": 5, "tokLen": 2 }, "end": { - "offset": 28446, - "line": 928, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd9038", - "kind": "CXXOperatorCallExpr", - "range": { - "begin": { - "offset": 28407, - "line": 927, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28412, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "bool" - }, - "valueCategory": "prvalue", - "adl": true, - "inner": [ - { - "id": "0x7f0da6bd9020", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28409, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28409, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (*)(const basic_string, allocator> &, const char *)" - }, - "valueCategory": "prvalue", - "castKind": "FunctionToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd9000", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28409, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28409, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x2d2f20c8", - "kind": "FunctionDecl", - "name": "operator==", - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - } - } - } - ] - }, - { - "id": "0x7f0da6bd7dd8", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28407, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28407, - "col": 9, - "tokLen": 1 - } - }, - "type": { - "desugaredQualType": "const std::basic_string", - "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x7f0da6e4ae70", - "kind": "ParmVarDecl", - "name": "s", - "type": { - "qualType": "const std::string &" - } - } - }, - { - "id": "0x7f0da6bd8fe8", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28412, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28412, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char *" - }, - "valueCategory": "prvalue", - "castKind": "ArrayToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd7df8", - "kind": "StringLiteral", - "range": { - "begin": { - "offset": 28412, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28412, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char[10]" - }, - "valueCategory": "lvalue", - "value": "\"vcasc_out\"" - } - ] - } - ] - }, - { - "id": "0x7f0da6bd90d8", - "kind": "ReturnStmt", - "range": { - "begin": { - "offset": 28433, - "line": 928, - "col": 9, - "tokLen": 6 - }, - "end": { - "offset": 28446, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd90a8", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28440, - "col": 16, - "tokLen": 4 - }, - "end": { - "offset": 28446, - "col": 22, - "tokLen": 9 - } - }, - "type": { - "qualType": "slsDetectorDefs::dacIndex" - }, - "valueCategory": "prvalue", - "referencedDecl": { - "id": "0x2cdbe6e0", - "kind": "EnumConstantDecl", - "name": "VCASC_OUT", - "type": { - "qualType": "slsDetectorDefs::dacIndex" - } - } - } - ] - } - ] - }, - { - "id": "0x7f0da6bda418", - "kind": "IfStmt", - "range": { - "begin": { - "offset": 28461, - "line": 929, - "col": 5, - "tokLen": 2 - }, - "end": { - "offset": 28501, - "line": 930, + "offset": 28060, + "line": 916, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bda368", + "id": "0x7feb10e50a68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28465, - "line": 929, + "offset": 28024, + "line": 915, "col": 9, "tokLen": 1 }, "end": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 } @@ -36611,16 +35963,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bda350", + "id": "0x7feb10e50a50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28467, + "offset": 28026, "col": 11, "tokLen": 2 }, "end": { - "offset": 28467, + "offset": 28026, "col": 11, "tokLen": 2 } @@ -36632,16 +35984,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bda330", + "id": "0x7feb10e50a30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28467, + "offset": 28026, "col": 11, "tokLen": 2 }, "end": { - "offset": 28467, + "offset": 28026, "col": 11, "tokLen": 2 } @@ -36651,7 +36003,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -36662,16 +36014,16 @@ ] }, { - "id": "0x7f0da6bd9108", + "id": "0x7feb10e4f808", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28465, + "offset": 28024, "col": 9, "tokLen": 1 }, "end": { - "offset": 28465, + "offset": 28024, "col": 9, "tokLen": 1 } @@ -36679,11 +36031,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -36692,16 +36044,16 @@ } }, { - "id": "0x7f0da6bda318", + "id": "0x7feb10e50a18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 }, "end": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 } @@ -36713,16 +36065,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd9128", + "id": "0x7feb10e4f828", "kind": "StringLiteral", "range": { "begin": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 }, "end": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 } @@ -36738,33 +36090,33 @@ ] }, { - "id": "0x7f0da6bda408", + "id": "0x7feb10e50b08", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28488, - "line": 930, + "offset": 28047, + "line": 916, "col": 9, "tokLen": 6 }, "end": { - "offset": 28501, + "offset": 28060, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bda3d8", + "id": "0x7feb10e50ad8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28495, + "offset": 28054, "col": 16, "tokLen": 4 }, "end": { - "offset": 28501, + "offset": 28060, "col": 22, "tokLen": 6 } @@ -36774,7 +36126,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe730", + "id": "0x37fef330", "kind": "EnumConstantDecl", "name": "VIN_CM", "type": { @@ -36787,35 +36139,35 @@ ] }, { - "id": "0x7f0da6bdb748", + "id": "0x7feb10e51e48", "kind": "IfStmt", "range": { "begin": { - "offset": 28513, - "line": 931, + "offset": 28072, + "line": 917, "col": 5, "tokLen": 2 }, "end": { - "offset": 28556, - "line": 932, + "offset": 28115, + "line": 918, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bdb698", + "id": "0x7feb10e51d98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28517, - "line": 931, + "offset": 28076, + "line": 917, "col": 9, "tokLen": 1 }, "end": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 } @@ -36827,16 +36179,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bdb680", + "id": "0x7feb10e51d80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28519, + "offset": 28078, "col": 11, "tokLen": 2 }, "end": { - "offset": 28519, + "offset": 28078, "col": 11, "tokLen": 2 } @@ -36848,16 +36200,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bdb660", + "id": "0x7feb10e51d60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28519, + "offset": 28078, "col": 11, "tokLen": 2 }, "end": { - "offset": 28519, + "offset": 28078, "col": 11, "tokLen": 2 } @@ -36867,7 +36219,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -36878,16 +36230,16 @@ ] }, { - "id": "0x7f0da6bda438", + "id": "0x7feb10e50b38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28517, + "offset": 28076, "col": 9, "tokLen": 1 }, "end": { - "offset": 28517, + "offset": 28076, "col": 9, "tokLen": 1 } @@ -36895,11 +36247,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -36908,16 +36260,16 @@ } }, { - "id": "0x7f0da6bdb648", + "id": "0x7feb10e51d48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 }, "end": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 } @@ -36929,16 +36281,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bda458", + "id": "0x7feb10e50b58", "kind": "StringLiteral", "range": { "begin": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 }, "end": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 } @@ -36954,33 +36306,33 @@ ] }, { - "id": "0x7f0da6bdb738", + "id": "0x7feb10e51e38", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28543, - "line": 932, + "offset": 28102, + "line": 918, "col": 9, "tokLen": 6 }, "end": { - "offset": 28556, + "offset": 28115, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bdb708", + "id": "0x7feb10e51e08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28550, + "offset": 28109, "col": 16, "tokLen": 4 }, "end": { - "offset": 28556, + "offset": 28115, "col": 22, "tokLen": 9 } @@ -36990,7 +36342,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe780", + "id": "0x37fef380", "kind": "EnumConstantDecl", "name": "VREF_COMP", "type": { @@ -37003,251 +36355,35 @@ ] }, { - "id": "0x7f0da6bdca78", + "id": "0x7feb10e53178", "kind": "IfStmt", "range": { "begin": { - "offset": 28571, - "line": 933, + "offset": 28130, + "line": 919, "col": 5, "tokLen": 2 }, "end": { - "offset": 28614, - "line": 934, - "col": 22, - "tokLen": 8 - } - }, - "inner": [ - { - "id": "0x7f0da6bdc9c8", - "kind": "CXXOperatorCallExpr", - "range": { - "begin": { - "offset": 28575, - "line": 933, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28580, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "bool" - }, - "valueCategory": "prvalue", - "adl": true, - "inner": [ - { - "id": "0x7f0da6bdc9b0", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28577, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28577, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (*)(const basic_string, allocator> &, const char *)" - }, - "valueCategory": "prvalue", - "castKind": "FunctionToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bdc990", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28577, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28577, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x2d2f20c8", - "kind": "FunctionDecl", - "name": "operator==", - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - } - } - } - ] - }, - { - "id": "0x7f0da6bdb768", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28575, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28575, - "col": 9, - "tokLen": 1 - } - }, - "type": { - "desugaredQualType": "const std::basic_string", - "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x7f0da6e4ae70", - "kind": "ParmVarDecl", - "name": "s", - "type": { - "qualType": "const std::string &" - } - } - }, - { - "id": "0x7f0da6bdc978", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28580, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28580, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char *" - }, - "valueCategory": "prvalue", - "castKind": "ArrayToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bdb788", - "kind": "StringLiteral", - "range": { - "begin": { - "offset": 28580, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28580, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char[10]" - }, - "valueCategory": "lvalue", - "value": "\"ib_test_c\"" - } - ] - } - ] - }, - { - "id": "0x7f0da6bdca68", - "kind": "ReturnStmt", - "range": { - "begin": { - "offset": 28601, - "line": 934, - "col": 9, - "tokLen": 6 - }, - "end": { - "offset": 28614, - "col": 22, - "tokLen": 8 - } - }, - "inner": [ - { - "id": "0x7f0da6bdca38", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28608, - "col": 16, - "tokLen": 4 - }, - "end": { - "offset": 28614, - "col": 22, - "tokLen": 8 - } - }, - "type": { - "qualType": "slsDetectorDefs::dacIndex" - }, - "valueCategory": "prvalue", - "referencedDecl": { - "id": "0x2cdbe7d0", - "kind": "EnumConstantDecl", - "name": "IB_TESTC", - "type": { - "qualType": "slsDetectorDefs::dacIndex" - } - } - } - ] - } - ] - }, - { - "id": "0x7f0da6bddda8", - "kind": "IfStmt", - "range": { - "begin": { - "offset": 28628, - "line": 935, - "col": 5, - "tokLen": 2 - }, - "end": { - "offset": 28669, - "line": 936, + "offset": 28171, + "line": 920, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bddcf8", + "id": "0x7feb10e530c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28632, - "line": 935, + "offset": 28134, + "line": 919, "col": 9, "tokLen": 1 }, "end": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 } @@ -37259,16 +36395,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bddce0", + "id": "0x7feb10e530b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28634, + "offset": 28136, "col": 11, "tokLen": 2 }, "end": { - "offset": 28634, + "offset": 28136, "col": 11, "tokLen": 2 } @@ -37280,16 +36416,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bddcc0", + "id": "0x7feb10e53090", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28634, + "offset": 28136, "col": 11, "tokLen": 2 }, "end": { - "offset": 28634, + "offset": 28136, "col": 11, "tokLen": 2 } @@ -37299,7 +36435,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -37310,16 +36446,16 @@ ] }, { - "id": "0x7f0da6bdca98", + "id": "0x7feb10e51e68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28632, + "offset": 28134, "col": 9, "tokLen": 1 }, "end": { - "offset": 28632, + "offset": 28134, "col": 9, "tokLen": 1 } @@ -37327,11 +36463,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -37340,16 +36476,16 @@ } }, { - "id": "0x7f0da6bddca8", + "id": "0x7feb10e53078", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 }, "end": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 } @@ -37361,16 +36497,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bdcab8", + "id": "0x7feb10e51e88", "kind": "StringLiteral", "range": { "begin": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 }, "end": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 } @@ -37386,33 +36522,33 @@ ] }, { - "id": "0x7f0da6bddd98", + "id": "0x7feb10e53168", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28656, - "line": 936, + "offset": 28158, + "line": 920, "col": 9, "tokLen": 6 }, "end": { - "offset": 28669, + "offset": 28171, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bddd68", + "id": "0x7feb10e53138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28663, + "offset": 28165, "col": 16, "tokLen": 4 }, "end": { - "offset": 28669, + "offset": 28171, "col": 22, "tokLen": 7 } @@ -37422,7 +36558,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe820", + "id": "0x37fef3d0", "kind": "EnumConstantDecl", "name": "VB_COMP", "type": { @@ -37435,35 +36571,35 @@ ] }, { - "id": "0x7f0da6b9e0f8", + "id": "0x7feb10e544a8", "kind": "IfStmt", "range": { "begin": { - "offset": 28682, - "line": 937, + "offset": 28184, + "line": 921, "col": 5, "tokLen": 2 }, "end": { - "offset": 28724, - "line": 938, + "offset": 28226, + "line": 922, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b9e048", + "id": "0x7feb10e543f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28686, - "line": 937, + "offset": 28188, + "line": 921, "col": 9, "tokLen": 1 }, "end": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 } @@ -37475,16 +36611,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b9e030", + "id": "0x7feb10e543e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28688, + "offset": 28190, "col": 11, "tokLen": 2 }, "end": { - "offset": 28688, + "offset": 28190, "col": 11, "tokLen": 2 } @@ -37496,16 +36632,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b9e010", + "id": "0x7feb10e543c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28688, + "offset": 28190, "col": 11, "tokLen": 2 }, "end": { - "offset": 28688, + "offset": 28190, "col": 11, "tokLen": 2 } @@ -37515,7 +36651,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -37526,16 +36662,16 @@ ] }, { - "id": "0x7f0da6bdddc8", + "id": "0x7feb10e53198", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28686, + "offset": 28188, "col": 9, "tokLen": 1 }, "end": { - "offset": 28686, + "offset": 28188, "col": 9, "tokLen": 1 } @@ -37543,11 +36679,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -37556,16 +36692,16 @@ } }, { - "id": "0x7f0da6b9dff8", + "id": "0x7feb10e543a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 }, "end": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 } @@ -37577,16 +36713,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bddde8", + "id": "0x7feb10e531b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 }, "end": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 } @@ -37602,33 +36738,33 @@ ] }, { - "id": "0x7f0da6b9e0e8", + "id": "0x7feb10e54498", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28711, - "line": 938, + "offset": 28213, + "line": 922, "col": 9, "tokLen": 6 }, "end": { - "offset": 28724, + "offset": 28226, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b9e0b8", + "id": "0x7feb10e54468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28718, + "offset": 28220, "col": 16, "tokLen": 4 }, "end": { - "offset": 28724, + "offset": 28226, "col": 22, "tokLen": 8 } @@ -37638,7 +36774,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe870", + "id": "0x37fef420", "kind": "EnumConstantDecl", "name": "VDD_PROT", "type": { @@ -37651,35 +36787,35 @@ ] }, { - "id": "0x7f0da6b9f428", + "id": "0x7feb10e557d8", "kind": "IfStmt", "range": { "begin": { - "offset": 28738, - "line": 939, + "offset": 28240, + "line": 923, "col": 5, "tokLen": 2 }, "end": { - "offset": 28779, - "line": 940, + "offset": 28281, + "line": 924, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b9f378", + "id": "0x7feb10e55728", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28742, - "line": 939, + "offset": 28244, + "line": 923, "col": 9, "tokLen": 1 }, "end": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 } @@ -37691,16 +36827,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b9f360", + "id": "0x7feb10e55710", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28744, + "offset": 28246, "col": 11, "tokLen": 2 }, "end": { - "offset": 28744, + "offset": 28246, "col": 11, "tokLen": 2 } @@ -37712,16 +36848,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b9f340", + "id": "0x7feb10e556f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28744, + "offset": 28246, "col": 11, "tokLen": 2 }, "end": { - "offset": 28744, + "offset": 28246, "col": 11, "tokLen": 2 } @@ -37731,7 +36867,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -37742,16 +36878,16 @@ ] }, { - "id": "0x7f0da6b9e118", + "id": "0x7feb10e544c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28742, + "offset": 28244, "col": 9, "tokLen": 1 }, "end": { - "offset": 28742, + "offset": 28244, "col": 9, "tokLen": 1 } @@ -37759,11 +36895,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -37772,16 +36908,16 @@ } }, { - "id": "0x7f0da6b9f328", + "id": "0x7feb10e556d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 }, "end": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 } @@ -37793,16 +36929,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b9e138", + "id": "0x7feb10e544e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 }, "end": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 } @@ -37818,33 +36954,33 @@ ] }, { - "id": "0x7f0da6b9f418", + "id": "0x7feb10e557c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28766, - "line": 940, + "offset": 28268, + "line": 924, "col": 9, "tokLen": 6 }, "end": { - "offset": 28779, + "offset": 28281, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b9f3e8", + "id": "0x7feb10e55798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28773, + "offset": 28275, "col": 16, "tokLen": 4 }, "end": { - "offset": 28779, + "offset": 28281, "col": 22, "tokLen": 7 } @@ -37854,7 +36990,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe8c0", + "id": "0x37fef470", "kind": "EnumConstantDecl", "name": "VIN_COM", "type": { @@ -37867,35 +37003,35 @@ ] }, { - "id": "0x7f0da6ba0758", + "id": "0x7feb10e56b08", "kind": "IfStmt", "range": { "begin": { - "offset": 28792, - "line": 941, + "offset": 28294, + "line": 925, "col": 5, "tokLen": 2 }, "end": { - "offset": 28836, - "line": 942, + "offset": 28338, + "line": 926, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba06a8", + "id": "0x7feb10e56a58", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28796, - "line": 941, + "offset": 28298, + "line": 925, "col": 9, "tokLen": 1 }, "end": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 } @@ -37907,16 +37043,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba0690", + "id": "0x7feb10e56a40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28798, + "offset": 28300, "col": 11, "tokLen": 2 }, "end": { - "offset": 28798, + "offset": 28300, "col": 11, "tokLen": 2 } @@ -37928,16 +37064,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba0670", + "id": "0x7feb10e56a20", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28798, + "offset": 28300, "col": 11, "tokLen": 2 }, "end": { - "offset": 28798, + "offset": 28300, "col": 11, "tokLen": 2 } @@ -37947,7 +37083,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -37958,16 +37094,16 @@ ] }, { - "id": "0x7f0da6b9f448", + "id": "0x7feb10e557f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28796, + "offset": 28298, "col": 9, "tokLen": 1 }, "end": { - "offset": 28796, + "offset": 28298, "col": 9, "tokLen": 1 } @@ -37975,11 +37111,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -37988,16 +37124,16 @@ } }, { - "id": "0x7f0da6ba0658", + "id": "0x7feb10e56a08", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 }, "end": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 } @@ -38009,16 +37145,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b9f468", + "id": "0x7feb10e55818", "kind": "StringLiteral", "range": { "begin": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 }, "end": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 } @@ -38034,33 +37170,33 @@ ] }, { - "id": "0x7f0da6ba0748", + "id": "0x7feb10e56af8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28823, - "line": 942, + "offset": 28325, + "line": 926, "col": 9, "tokLen": 6 }, "end": { - "offset": 28836, + "offset": 28338, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba0718", + "id": "0x7feb10e56ac8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28830, + "offset": 28332, "col": 16, "tokLen": 4 }, "end": { - "offset": 28836, + "offset": 28338, "col": 22, "tokLen": 10 } @@ -38070,7 +37206,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe910", + "id": "0x37fef4c0", "kind": "EnumConstantDecl", "name": "VREF_PRECH", "type": { @@ -38083,35 +37219,35 @@ ] }, { - "id": "0x7f0da6ba1a88", + "id": "0x7feb10e57e38", "kind": "IfStmt", "range": { "begin": { - "offset": 28852, - "line": 943, + "offset": 28354, + "line": 927, "col": 5, "tokLen": 2 }, "end": { - "offset": 28895, - "line": 944, + "offset": 28397, + "line": 928, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6ba19d8", + "id": "0x7feb10e57d88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28856, - "line": 943, + "offset": 28358, + "line": 927, "col": 9, "tokLen": 1 }, "end": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 } @@ -38123,16 +37259,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba19c0", + "id": "0x7feb10e57d70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28858, + "offset": 28360, "col": 11, "tokLen": 2 }, "end": { - "offset": 28858, + "offset": 28360, "col": 11, "tokLen": 2 } @@ -38144,16 +37280,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba19a0", + "id": "0x7feb10e57d50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28858, + "offset": 28360, "col": 11, "tokLen": 2 }, "end": { - "offset": 28858, + "offset": 28360, "col": 11, "tokLen": 2 } @@ -38163,7 +37299,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -38174,16 +37310,16 @@ ] }, { - "id": "0x7f0da6ba0778", + "id": "0x7feb10e56b28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28856, + "offset": 28358, "col": 9, "tokLen": 1 }, "end": { - "offset": 28856, + "offset": 28358, "col": 9, "tokLen": 1 } @@ -38191,11 +37327,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -38204,16 +37340,16 @@ } }, { - "id": "0x7f0da6ba1988", + "id": "0x7feb10e57d38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 }, "end": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 } @@ -38225,16 +37361,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba0798", + "id": "0x7feb10e56b48", "kind": "StringLiteral", "range": { "begin": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 }, "end": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 } @@ -38250,33 +37386,33 @@ ] }, { - "id": "0x7f0da6ba1a78", + "id": "0x7feb10e57e28", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28882, - "line": 944, + "offset": 28384, + "line": 928, "col": 9, "tokLen": 6 }, "end": { - "offset": 28895, + "offset": 28397, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6ba1a48", + "id": "0x7feb10e57df8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28889, + "offset": 28391, "col": 16, "tokLen": 4 }, "end": { - "offset": 28895, + "offset": 28397, "col": 22, "tokLen": 9 } @@ -38286,7 +37422,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe960", + "id": "0x37fef510", "kind": "EnumConstantDecl", "name": "VB_PIXBUF", "type": { @@ -38299,35 +37435,35 @@ ] }, { - "id": "0x7f0da6ba2db8", + "id": "0x7feb10e18168", "kind": "IfStmt", "range": { "begin": { - "offset": 28910, - "line": 945, + "offset": 28412, + "line": 929, "col": 5, "tokLen": 2 }, "end": { - "offset": 28949, - "line": 946, + "offset": 28451, + "line": 930, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6ba2d08", + "id": "0x7feb10e180b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28914, - "line": 945, + "offset": 28416, + "line": 929, "col": 9, "tokLen": 1 }, "end": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 } @@ -38339,16 +37475,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba2cf0", + "id": "0x7feb10e180a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28916, + "offset": 28418, "col": 11, "tokLen": 2 }, "end": { - "offset": 28916, + "offset": 28418, "col": 11, "tokLen": 2 } @@ -38360,16 +37496,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba2cd0", + "id": "0x7feb10e18080", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28916, + "offset": 28418, "col": 11, "tokLen": 2 }, "end": { - "offset": 28916, + "offset": 28418, "col": 11, "tokLen": 2 } @@ -38379,7 +37515,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -38390,16 +37526,16 @@ ] }, { - "id": "0x7f0da6ba1aa8", + "id": "0x7feb10e57e58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28914, + "offset": 28416, "col": 9, "tokLen": 1 }, "end": { - "offset": 28914, + "offset": 28416, "col": 9, "tokLen": 1 } @@ -38407,11 +37543,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -38420,16 +37556,16 @@ } }, { - "id": "0x7f0da6ba2cb8", + "id": "0x7feb10e18068", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 }, "end": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 } @@ -38441,16 +37577,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba1ac8", + "id": "0x7feb10e57e78", "kind": "StringLiteral", "range": { "begin": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 }, "end": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 } @@ -38466,33 +37602,33 @@ ] }, { - "id": "0x7f0da6ba2da8", + "id": "0x7feb10e18158", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28936, - "line": 946, + "offset": 28438, + "line": 930, "col": 9, "tokLen": 6 }, "end": { - "offset": 28949, + "offset": 28451, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6ba2d78", + "id": "0x7feb10e18128", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28943, + "offset": 28445, "col": 16, "tokLen": 4 }, "end": { - "offset": 28949, + "offset": 28451, "col": 22, "tokLen": 5 } @@ -38502,7 +37638,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe9b0", + "id": "0x37fef560", "kind": "EnumConstantDecl", "name": "VB_DS", "type": { @@ -38515,35 +37651,35 @@ ] }, { - "id": "0x7f0da6ba40e8", + "id": "0x7feb10e19498", "kind": "IfStmt", "range": { "begin": { - "offset": 28960, - "line": 947, + "offset": 28462, + "line": 931, "col": 5, "tokLen": 2 }, "end": { - "offset": 29004, - "line": 948, + "offset": 28506, + "line": 932, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba4038", + "id": "0x7feb10e193e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28964, - "line": 947, + "offset": 28466, + "line": 931, "col": 9, "tokLen": 1 }, "end": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 } @@ -38555,16 +37691,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba4020", + "id": "0x7feb10e193d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28966, + "offset": 28468, "col": 11, "tokLen": 2 }, "end": { - "offset": 28966, + "offset": 28468, "col": 11, "tokLen": 2 } @@ -38576,16 +37712,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba4000", + "id": "0x7feb10e193b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28966, + "offset": 28468, "col": 11, "tokLen": 2 }, "end": { - "offset": 28966, + "offset": 28468, "col": 11, "tokLen": 2 } @@ -38595,7 +37731,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -38606,16 +37742,16 @@ ] }, { - "id": "0x7f0da6ba2dd8", + "id": "0x7feb10e18188", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28964, + "offset": 28466, "col": 9, "tokLen": 1 }, "end": { - "offset": 28964, + "offset": 28466, "col": 9, "tokLen": 1 } @@ -38623,11 +37759,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -38636,16 +37772,16 @@ } }, { - "id": "0x7f0da6ba3fe8", + "id": "0x7feb10e19398", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 }, "end": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 } @@ -38657,16 +37793,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba2df8", + "id": "0x7feb10e181a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 }, "end": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 } @@ -38682,33 +37818,33 @@ ] }, { - "id": "0x7f0da6ba40d8", + "id": "0x7feb10e19488", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28991, - "line": 948, + "offset": 28493, + "line": 932, "col": 9, "tokLen": 6 }, "end": { - "offset": 29004, + "offset": 28506, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba40a8", + "id": "0x7feb10e19458", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28998, + "offset": 28500, "col": 16, "tokLen": 4 }, "end": { - "offset": 29004, + "offset": 28506, "col": 22, "tokLen": 10 } @@ -38718,7 +37854,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbea00", + "id": "0x37fef5b0", "kind": "EnumConstantDecl", "name": "VREF_H_ADC", "type": { @@ -38731,35 +37867,35 @@ ] }, { - "id": "0x7f0da6ba5418", + "id": "0x7feb10e1a7c8", "kind": "IfStmt", "range": { "begin": { - "offset": 29020, - "line": 949, + "offset": 28522, + "line": 933, "col": 5, "tokLen": 2 }, "end": { - "offset": 29064, - "line": 950, + "offset": 28566, + "line": 934, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba5368", + "id": "0x7feb10e1a718", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29024, - "line": 949, + "offset": 28526, + "line": 933, "col": 9, "tokLen": 1 }, "end": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 } @@ -38771,16 +37907,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba5350", + "id": "0x7feb10e1a700", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29026, + "offset": 28528, "col": 11, "tokLen": 2 }, "end": { - "offset": 29026, + "offset": 28528, "col": 11, "tokLen": 2 } @@ -38792,16 +37928,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba5330", + "id": "0x7feb10e1a6e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29026, + "offset": 28528, "col": 11, "tokLen": 2 }, "end": { - "offset": 29026, + "offset": 28528, "col": 11, "tokLen": 2 } @@ -38811,7 +37947,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -38822,16 +37958,16 @@ ] }, { - "id": "0x7f0da6ba4108", + "id": "0x7feb10e194b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29024, + "offset": 28526, "col": 9, "tokLen": 1 }, "end": { - "offset": 29024, + "offset": 28526, "col": 9, "tokLen": 1 } @@ -38839,11 +37975,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -38852,16 +37988,16 @@ } }, { - "id": "0x7f0da6ba5318", + "id": "0x7feb10e1a6c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 }, "end": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 } @@ -38873,16 +38009,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba4128", + "id": "0x7feb10e194d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 }, "end": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 } @@ -38898,33 +38034,33 @@ ] }, { - "id": "0x7f0da6ba5408", + "id": "0x7feb10e1a7b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29051, - "line": 950, + "offset": 28553, + "line": 934, "col": 9, "tokLen": 6 }, "end": { - "offset": 29064, + "offset": 28566, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba53d8", + "id": "0x7feb10e1a788", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29058, + "offset": 28560, "col": 16, "tokLen": 4 }, "end": { - "offset": 29064, + "offset": 28566, "col": 22, "tokLen": 10 } @@ -38934,7 +38070,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbea50", + "id": "0x37fef600", "kind": "EnumConstantDecl", "name": "VB_COMP_FE", "type": { @@ -38947,35 +38083,35 @@ ] }, { - "id": "0x7f0da6ba6748", + "id": "0x7feb10e1baf8", "kind": "IfStmt", "range": { "begin": { - "offset": 29080, - "line": 951, + "offset": 28582, + "line": 935, "col": 5, "tokLen": 2 }, "end": { - "offset": 29125, - "line": 952, + "offset": 28627, + "line": 936, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6ba6698", + "id": "0x7feb10e1ba48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29084, - "line": 951, + "offset": 28586, + "line": 935, "col": 9, "tokLen": 1 }, "end": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 } @@ -38987,16 +38123,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba6680", + "id": "0x7feb10e1ba30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29086, + "offset": 28588, "col": 11, "tokLen": 2 }, "end": { - "offset": 29086, + "offset": 28588, "col": 11, "tokLen": 2 } @@ -39008,16 +38144,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba6660", + "id": "0x7feb10e1ba10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29086, + "offset": 28588, "col": 11, "tokLen": 2 }, "end": { - "offset": 29086, + "offset": 28588, "col": 11, "tokLen": 2 } @@ -39027,7 +38163,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39038,16 +38174,16 @@ ] }, { - "id": "0x7f0da6ba5438", + "id": "0x7feb10e1a7e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29084, + "offset": 28586, "col": 9, "tokLen": 1 }, "end": { - "offset": 29084, + "offset": 28586, "col": 9, "tokLen": 1 } @@ -39055,11 +38191,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39068,16 +38204,16 @@ } }, { - "id": "0x7f0da6ba6648", + "id": "0x7feb10e1b9f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 }, "end": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 } @@ -39089,16 +38225,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba5458", + "id": "0x7feb10e1a808", "kind": "StringLiteral", "range": { "begin": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 }, "end": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 } @@ -39114,33 +38250,33 @@ ] }, { - "id": "0x7f0da6ba6738", + "id": "0x7feb10e1bae8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29112, - "line": 952, + "offset": 28614, + "line": 936, "col": 9, "tokLen": 6 }, "end": { - "offset": 29125, + "offset": 28627, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6ba6708", + "id": "0x7feb10e1bab8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29119, + "offset": 28621, "col": 16, "tokLen": 4 }, "end": { - "offset": 29125, + "offset": 28627, "col": 22, "tokLen": 11 } @@ -39150,7 +38286,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeaa0", + "id": "0x37fef650", "kind": "EnumConstantDecl", "name": "VB_COMP_ADC", "type": { @@ -39163,35 +38299,35 @@ ] }, { - "id": "0x7f0da6ba7a78", + "id": "0x7feb10e1ce28", "kind": "IfStmt", "range": { "begin": { - "offset": 29142, - "line": 953, + "offset": 28644, + "line": 937, "col": 5, "tokLen": 2 }, "end": { - "offset": 29184, - "line": 954, + "offset": 28686, + "line": 938, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6ba79c8", + "id": "0x7feb10e1cd78", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29146, - "line": 953, + "offset": 28648, + "line": 937, "col": 9, "tokLen": 1 }, "end": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 } @@ -39203,16 +38339,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba79b0", + "id": "0x7feb10e1cd60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29148, + "offset": 28650, "col": 11, "tokLen": 2 }, "end": { - "offset": 29148, + "offset": 28650, "col": 11, "tokLen": 2 } @@ -39224,16 +38360,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba7990", + "id": "0x7feb10e1cd40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29148, + "offset": 28650, "col": 11, "tokLen": 2 }, "end": { - "offset": 29148, + "offset": 28650, "col": 11, "tokLen": 2 } @@ -39243,7 +38379,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39254,16 +38390,16 @@ ] }, { - "id": "0x7f0da6ba6768", + "id": "0x7feb10e1bb18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29146, + "offset": 28648, "col": 9, "tokLen": 1 }, "end": { - "offset": 29146, + "offset": 28648, "col": 9, "tokLen": 1 } @@ -39271,11 +38407,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39284,16 +38420,16 @@ } }, { - "id": "0x7f0da6ba7978", + "id": "0x7feb10e1cd28", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 }, "end": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 } @@ -39305,16 +38441,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba6788", + "id": "0x7feb10e1bb38", "kind": "StringLiteral", "range": { "begin": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 }, "end": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 } @@ -39330,33 +38466,33 @@ ] }, { - "id": "0x7f0da6ba7a68", + "id": "0x7feb10e1ce18", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29171, - "line": 954, + "offset": 28673, + "line": 938, "col": 9, "tokLen": 6 }, "end": { - "offset": 29184, + "offset": 28686, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6ba7a38", + "id": "0x7feb10e1cde8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29178, + "offset": 28680, "col": 16, "tokLen": 4 }, "end": { - "offset": 29184, + "offset": 28686, "col": 22, "tokLen": 8 } @@ -39366,7 +38502,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeaf0", + "id": "0x37fef6a0", "kind": "EnumConstantDecl", "name": "VCOM_CDS", "type": { @@ -39379,35 +38515,35 @@ ] }, { - "id": "0x7f0da6ba8da8", + "id": "0x7feb10e1e158", "kind": "IfStmt", "range": { "begin": { - "offset": 29198, - "line": 955, + "offset": 28700, + "line": 939, "col": 5, "tokLen": 2 }, "end": { - "offset": 29243, - "line": 956, + "offset": 28745, + "line": 940, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6ba8cf8", + "id": "0x7feb10e1e0a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29202, - "line": 955, + "offset": 28704, + "line": 939, "col": 9, "tokLen": 1 }, "end": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 } @@ -39419,16 +38555,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba8ce0", + "id": "0x7feb10e1e090", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29204, + "offset": 28706, "col": 11, "tokLen": 2 }, "end": { - "offset": 29204, + "offset": 28706, "col": 11, "tokLen": 2 } @@ -39440,16 +38576,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba8cc0", + "id": "0x7feb10e1e070", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29204, + "offset": 28706, "col": 11, "tokLen": 2 }, "end": { - "offset": 29204, + "offset": 28706, "col": 11, "tokLen": 2 } @@ -39459,7 +38595,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39470,16 +38606,16 @@ ] }, { - "id": "0x7f0da6ba7a98", + "id": "0x7feb10e1ce48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29202, + "offset": 28704, "col": 9, "tokLen": 1 }, "end": { - "offset": 29202, + "offset": 28704, "col": 9, "tokLen": 1 } @@ -39487,11 +38623,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39500,16 +38636,16 @@ } }, { - "id": "0x7f0da6ba8ca8", + "id": "0x7feb10e1e058", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 }, "end": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 } @@ -39521,16 +38657,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba7ab8", + "id": "0x7feb10e1ce68", "kind": "StringLiteral", "range": { "begin": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 }, "end": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 } @@ -39546,33 +38682,33 @@ ] }, { - "id": "0x7f0da6ba8d98", + "id": "0x7feb10e1e148", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29230, - "line": 956, + "offset": 28732, + "line": 940, "col": 9, "tokLen": 6 }, "end": { - "offset": 29243, + "offset": 28745, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6ba8d68", + "id": "0x7feb10e1e118", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29237, + "offset": 28739, "col": 16, "tokLen": 4 }, "end": { - "offset": 29243, + "offset": 28745, "col": 22, "tokLen": 11 } @@ -39582,7 +38718,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeb40", + "id": "0x37fef6f0", "kind": "EnumConstantDecl", "name": "VREF_RSTORE", "type": { @@ -39595,35 +38731,35 @@ ] }, { - "id": "0x7f0da6baa0d8", + "id": "0x7feb10e1f488", "kind": "IfStmt", "range": { "begin": { - "offset": 29260, - "line": 957, + "offset": 28762, + "line": 941, "col": 5, "tokLen": 2 }, "end": { - "offset": 29304, - "line": 958, + "offset": 28806, + "line": 942, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6baa028", + "id": "0x7feb10e1f3d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29264, - "line": 957, + "offset": 28766, + "line": 941, "col": 9, "tokLen": 1 }, "end": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 } @@ -39635,16 +38771,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6baa010", + "id": "0x7feb10e1f3c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29266, + "offset": 28768, "col": 11, "tokLen": 2 }, "end": { - "offset": 29266, + "offset": 28768, "col": 11, "tokLen": 2 } @@ -39656,16 +38792,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba9ff0", + "id": "0x7feb10e1f3a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29266, + "offset": 28768, "col": 11, "tokLen": 2 }, "end": { - "offset": 29266, + "offset": 28768, "col": 11, "tokLen": 2 } @@ -39675,7 +38811,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39686,16 +38822,16 @@ ] }, { - "id": "0x7f0da6ba8dc8", + "id": "0x7feb10e1e178", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29264, + "offset": 28766, "col": 9, "tokLen": 1 }, "end": { - "offset": 29264, + "offset": 28766, "col": 9, "tokLen": 1 } @@ -39703,11 +38839,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39716,16 +38852,16 @@ } }, { - "id": "0x7f0da6ba9fd8", + "id": "0x7feb10e1f388", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 }, "end": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 } @@ -39737,16 +38873,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba8de8", + "id": "0x7feb10e1e198", "kind": "StringLiteral", "range": { "begin": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 }, "end": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 } @@ -39762,33 +38898,33 @@ ] }, { - "id": "0x7f0da6baa0c8", + "id": "0x7feb10e1f478", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29291, - "line": 958, + "offset": 28793, + "line": 942, "col": 9, "tokLen": 6 }, "end": { - "offset": 29304, + "offset": 28806, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6baa098", + "id": "0x7feb10e1f448", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29298, + "offset": 28800, "col": 16, "tokLen": 4 }, "end": { - "offset": 29304, + "offset": 28806, "col": 22, "tokLen": 10 } @@ -39798,7 +38934,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeb90", + "id": "0x37fef740", "kind": "EnumConstantDecl", "name": "VB_OPA_1ST", "type": { @@ -39811,35 +38947,35 @@ ] }, { - "id": "0x7f0da6bab408", + "id": "0x7feb10e207b8", "kind": "IfStmt", "range": { "begin": { - "offset": 29320, - "line": 959, + "offset": 28822, + "line": 943, "col": 5, "tokLen": 2 }, "end": { - "offset": 29366, - "line": 960, + "offset": 28868, + "line": 944, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6bab358", + "id": "0x7feb10e20708", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29324, - "line": 959, + "offset": 28826, + "line": 943, "col": 9, "tokLen": 1 }, "end": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 } @@ -39851,16 +38987,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bab340", + "id": "0x7feb10e206f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29326, + "offset": 28828, "col": 11, "tokLen": 2 }, "end": { - "offset": 29326, + "offset": 28828, "col": 11, "tokLen": 2 } @@ -39872,16 +39008,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bab320", + "id": "0x7feb10e206d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29326, + "offset": 28828, "col": 11, "tokLen": 2 }, "end": { - "offset": 29326, + "offset": 28828, "col": 11, "tokLen": 2 } @@ -39891,7 +39027,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39902,16 +39038,16 @@ ] }, { - "id": "0x7f0da6baa0f8", + "id": "0x7feb10e1f4a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29324, + "offset": 28826, "col": 9, "tokLen": 1 }, "end": { - "offset": 29324, + "offset": 28826, "col": 9, "tokLen": 1 } @@ -39919,11 +39055,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39932,16 +39068,16 @@ } }, { - "id": "0x7f0da6bab308", + "id": "0x7feb10e206b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 }, "end": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 } @@ -39953,16 +39089,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6baa118", + "id": "0x7feb10e1f4c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 }, "end": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 } @@ -39978,33 +39114,33 @@ ] }, { - "id": "0x7f0da6bab3f8", + "id": "0x7feb10e207a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29353, - "line": 960, + "offset": 28855, + "line": 944, "col": 9, "tokLen": 6 }, "end": { - "offset": 29366, + "offset": 28868, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6bab3c8", + "id": "0x7feb10e20778", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29360, + "offset": 28862, "col": 16, "tokLen": 4 }, "end": { - "offset": 29366, + "offset": 28868, "col": 22, "tokLen": 12 } @@ -40014,7 +39150,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbebe0", + "id": "0x37fef790", "kind": "EnumConstantDecl", "name": "VREF_COMP_FE", "type": { @@ -40027,35 +39163,35 @@ ] }, { - "id": "0x7f0da6bac738", + "id": "0x7feb10e21ae8", "kind": "IfStmt", "range": { "begin": { - "offset": 29384, - "line": 961, + "offset": 28886, + "line": 945, "col": 5, "tokLen": 2 }, "end": { - "offset": 29427, - "line": 962, + "offset": 28929, + "line": 946, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bac688", + "id": "0x7feb10e21a38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29388, - "line": 961, + "offset": 28890, + "line": 945, "col": 9, "tokLen": 1 }, "end": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 } @@ -40067,16 +39203,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bac670", + "id": "0x7feb10e21a20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29390, + "offset": 28892, "col": 11, "tokLen": 2 }, "end": { - "offset": 29390, + "offset": 28892, "col": 11, "tokLen": 2 } @@ -40088,16 +39224,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bac650", + "id": "0x7feb10e21a00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29390, + "offset": 28892, "col": 11, "tokLen": 2 }, "end": { - "offset": 29390, + "offset": 28892, "col": 11, "tokLen": 2 } @@ -40107,7 +39243,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40118,16 +39254,16 @@ ] }, { - "id": "0x7f0da6bab428", + "id": "0x7feb10e207d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29388, + "offset": 28890, "col": 9, "tokLen": 1 }, "end": { - "offset": 29388, + "offset": 28890, "col": 9, "tokLen": 1 } @@ -40135,11 +39271,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -40148,16 +39284,16 @@ } }, { - "id": "0x7f0da6bac638", + "id": "0x7feb10e219e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 }, "end": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 } @@ -40169,16 +39305,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bab448", + "id": "0x7feb10e207f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 }, "end": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 } @@ -40194,33 +39330,33 @@ ] }, { - "id": "0x7f0da6bac728", + "id": "0x7feb10e21ad8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29414, - "line": 962, + "offset": 28916, + "line": 946, "col": 9, "tokLen": 6 }, "end": { - "offset": 29427, + "offset": 28929, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bac6f8", + "id": "0x7feb10e21aa8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29421, + "offset": 28923, "col": 16, "tokLen": 4 }, "end": { - "offset": 29427, + "offset": 28929, "col": 22, "tokLen": 9 } @@ -40230,7 +39366,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbec30", + "id": "0x37fef7e0", "kind": "EnumConstantDecl", "name": "VCOM_ADC1", "type": { @@ -40243,35 +39379,35 @@ ] }, { - "id": "0x7f0da6bada68", + "id": "0x7feb10e22e18", "kind": "IfStmt", "range": { "begin": { - "offset": 29442, - "line": 963, + "offset": 28944, + "line": 947, "col": 5, "tokLen": 2 }, "end": { - "offset": 29486, - "line": 964, + "offset": 28988, + "line": 948, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bad9b8", + "id": "0x7feb10e22d68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29446, - "line": 963, + "offset": 28948, + "line": 947, "col": 9, "tokLen": 1 }, "end": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 } @@ -40283,16 +39419,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bad9a0", + "id": "0x7feb10e22d50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29448, + "offset": 28950, "col": 11, "tokLen": 2 }, "end": { - "offset": 29448, + "offset": 28950, "col": 11, "tokLen": 2 } @@ -40304,16 +39440,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bad980", + "id": "0x7feb10e22d30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29448, + "offset": 28950, "col": 11, "tokLen": 2 }, "end": { - "offset": 29448, + "offset": 28950, "col": 11, "tokLen": 2 } @@ -40323,7 +39459,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40334,16 +39470,16 @@ ] }, { - "id": "0x7f0da6bac758", + "id": "0x7feb10e21b08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29446, + "offset": 28948, "col": 9, "tokLen": 1 }, "end": { - "offset": 29446, + "offset": 28948, "col": 9, "tokLen": 1 } @@ -40351,11 +39487,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -40364,16 +39500,16 @@ } }, { - "id": "0x7f0da6bad968", + "id": "0x7feb10e22d18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 }, "end": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 } @@ -40385,16 +39521,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bac778", + "id": "0x7feb10e21b28", "kind": "StringLiteral", "range": { "begin": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 }, "end": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 } @@ -40410,33 +39546,33 @@ ] }, { - "id": "0x7f0da6bada58", + "id": "0x7feb10e22e08", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29473, - "line": 964, + "offset": 28975, + "line": 948, "col": 9, "tokLen": 6 }, "end": { - "offset": 29486, + "offset": 28988, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bada28", + "id": "0x7feb10e22dd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29480, + "offset": 28982, "col": 16, "tokLen": 4 }, "end": { - "offset": 29486, + "offset": 28988, "col": 22, "tokLen": 10 } @@ -40446,7 +39582,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbec80", + "id": "0x37fef830", "kind": "EnumConstantDecl", "name": "VREF_L_ADC", "type": { @@ -40459,35 +39595,35 @@ ] }, { - "id": "0x7f0da6baed98", + "id": "0x7feb10e24148", "kind": "IfStmt", "range": { "begin": { - "offset": 29502, - "line": 965, + "offset": 29004, + "line": 949, "col": 5, "tokLen": 2 }, "end": { - "offset": 29544, - "line": 966, + "offset": 29046, + "line": 950, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6baece8", + "id": "0x7feb10e24098", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29506, - "line": 965, + "offset": 29008, + "line": 949, "col": 9, "tokLen": 1 }, "end": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 } @@ -40499,16 +39635,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6baecd0", + "id": "0x7feb10e24080", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29508, + "offset": 29010, "col": 11, "tokLen": 2 }, "end": { - "offset": 29508, + "offset": 29010, "col": 11, "tokLen": 2 } @@ -40520,16 +39656,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6baecb0", + "id": "0x7feb10e24060", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29508, + "offset": 29010, "col": 11, "tokLen": 2 }, "end": { - "offset": 29508, + "offset": 29010, "col": 11, "tokLen": 2 } @@ -40539,7 +39675,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40550,16 +39686,16 @@ ] }, { - "id": "0x7f0da6bada88", + "id": "0x7feb10e22e38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29506, + "offset": 29008, "col": 9, "tokLen": 1 }, "end": { - "offset": 29506, + "offset": 29008, "col": 9, "tokLen": 1 } @@ -40567,11 +39703,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -40580,16 +39716,16 @@ } }, { - "id": "0x7f0da6baec98", + "id": "0x7feb10e24048", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 }, "end": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 } @@ -40601,16 +39737,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6badaa8", + "id": "0x7feb10e22e58", "kind": "StringLiteral", "range": { "begin": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 }, "end": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 } @@ -40626,33 +39762,33 @@ ] }, { - "id": "0x7f0da6baed88", + "id": "0x7feb10e24138", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29531, - "line": 966, + "offset": 29033, + "line": 950, "col": 9, "tokLen": 6 }, "end": { - "offset": 29544, + "offset": 29046, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6baed58", + "id": "0x7feb10e24108", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29538, + "offset": 29040, "col": 16, "tokLen": 4 }, "end": { - "offset": 29544, + "offset": 29046, "col": 22, "tokLen": 8 } @@ -40662,7 +39798,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbecd0", + "id": "0x37fef880", "kind": "EnumConstantDecl", "name": "VREF_CDS", "type": { @@ -40675,35 +39811,35 @@ ] }, { - "id": "0x7f0da6bb00c8", + "id": "0x7feb10e25478", "kind": "IfStmt", "range": { "begin": { - "offset": 29558, - "line": 967, + "offset": 29060, + "line": 951, "col": 5, "tokLen": 2 }, "end": { - "offset": 29597, - "line": 968, + "offset": 29099, + "line": 952, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bb0018", + "id": "0x7feb10e253c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29562, - "line": 967, + "offset": 29064, + "line": 951, "col": 9, "tokLen": 1 }, "end": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 } @@ -40715,16 +39851,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb0000", + "id": "0x7feb10e253b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29564, + "offset": 29066, "col": 11, "tokLen": 2 }, "end": { - "offset": 29564, + "offset": 29066, "col": 11, "tokLen": 2 } @@ -40736,16 +39872,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6baffe0", + "id": "0x7feb10e25390", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29564, + "offset": 29066, "col": 11, "tokLen": 2 }, "end": { - "offset": 29564, + "offset": 29066, "col": 11, "tokLen": 2 } @@ -40755,7 +39891,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40766,16 +39902,16 @@ ] }, { - "id": "0x7f0da6baedb8", + "id": "0x7feb10e24168", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29562, + "offset": 29064, "col": 9, "tokLen": 1 }, "end": { - "offset": 29562, + "offset": 29064, "col": 9, "tokLen": 1 } @@ -40783,11 +39919,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -40796,16 +39932,16 @@ } }, { - "id": "0x7f0da6baffc8", + "id": "0x7feb10e25378", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 }, "end": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 } @@ -40817,16 +39953,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6baedd8", + "id": "0x7feb10e24188", "kind": "StringLiteral", "range": { "begin": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 }, "end": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 } @@ -40842,33 +39978,33 @@ ] }, { - "id": "0x7f0da6bb00b8", + "id": "0x7feb10e25468", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29584, - "line": 968, + "offset": 29086, + "line": 952, "col": 9, "tokLen": 6 }, "end": { - "offset": 29597, + "offset": 29099, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bb0088", + "id": "0x7feb10e25438", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29591, + "offset": 29093, "col": 16, "tokLen": 4 }, "end": { - "offset": 29597, + "offset": 29099, "col": 22, "tokLen": 5 } @@ -40878,7 +40014,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbed20", + "id": "0x37fef8d0", "kind": "EnumConstantDecl", "name": "VB_CS", "type": { @@ -40891,35 +40027,35 @@ ] }, { - "id": "0x7f0da6bb13f8", + "id": "0x7feb10e267a8", "kind": "IfStmt", "range": { "begin": { - "offset": 29608, - "line": 969, + "offset": 29110, + "line": 953, "col": 5, "tokLen": 2 }, "end": { - "offset": 29651, - "line": 970, + "offset": 29153, + "line": 954, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb1348", + "id": "0x7feb10e266f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29612, - "line": 969, + "offset": 29114, + "line": 953, "col": 9, "tokLen": 1 }, "end": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 } @@ -40931,16 +40067,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb1330", + "id": "0x7feb10e266e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29614, + "offset": 29116, "col": 11, "tokLen": 2 }, "end": { - "offset": 29614, + "offset": 29116, "col": 11, "tokLen": 2 } @@ -40952,16 +40088,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb1310", + "id": "0x7feb10e266c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29614, + "offset": 29116, "col": 11, "tokLen": 2 }, "end": { - "offset": 29614, + "offset": 29116, "col": 11, "tokLen": 2 } @@ -40971,7 +40107,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40982,16 +40118,16 @@ ] }, { - "id": "0x7f0da6bb00e8", + "id": "0x7feb10e25498", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29612, + "offset": 29114, "col": 9, "tokLen": 1 }, "end": { - "offset": 29612, + "offset": 29114, "col": 9, "tokLen": 1 } @@ -40999,11 +40135,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41012,16 +40148,16 @@ } }, { - "id": "0x7f0da6bb12f8", + "id": "0x7feb10e266a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 }, "end": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 } @@ -41033,16 +40169,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb0108", + "id": "0x7feb10e254b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 }, "end": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 } @@ -41058,33 +40194,33 @@ ] }, { - "id": "0x7f0da6bb13e8", + "id": "0x7feb10e26798", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29638, - "line": 970, + "offset": 29140, + "line": 954, "col": 9, "tokLen": 6 }, "end": { - "offset": 29651, + "offset": 29153, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb13b8", + "id": "0x7feb10e26768", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29645, + "offset": 29147, "col": 16, "tokLen": 4 }, "end": { - "offset": 29651, + "offset": 29153, "col": 22, "tokLen": 9 } @@ -41094,7 +40230,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbed70", + "id": "0x37fef920", "kind": "EnumConstantDecl", "name": "VB_OPA_FD", "type": { @@ -41107,35 +40243,35 @@ ] }, { - "id": "0x7f0da6bb2728", + "id": "0x7feb10e27ad8", "kind": "IfStmt", "range": { "begin": { - "offset": 29666, - "line": 971, + "offset": 29168, + "line": 955, "col": 5, "tokLen": 2 }, "end": { - "offset": 29709, - "line": 972, + "offset": 29211, + "line": 956, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb2678", + "id": "0x7feb10e27a28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29670, - "line": 971, + "offset": 29172, + "line": 955, "col": 9, "tokLen": 1 }, "end": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 } @@ -41147,16 +40283,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb2660", + "id": "0x7feb10e27a10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29672, + "offset": 29174, "col": 11, "tokLen": 2 }, "end": { - "offset": 29672, + "offset": 29174, "col": 11, "tokLen": 2 } @@ -41168,16 +40304,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb2640", + "id": "0x7feb10e279f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29672, + "offset": 29174, "col": 11, "tokLen": 2 }, "end": { - "offset": 29672, + "offset": 29174, "col": 11, "tokLen": 2 } @@ -41187,7 +40323,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -41198,16 +40334,16 @@ ] }, { - "id": "0x7f0da6bb1418", + "id": "0x7feb10e267c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29670, + "offset": 29172, "col": 9, "tokLen": 1 }, "end": { - "offset": 29670, + "offset": 29172, "col": 9, "tokLen": 1 } @@ -41215,11 +40351,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41228,16 +40364,16 @@ } }, { - "id": "0x7f0da6bb2628", + "id": "0x7feb10e279d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 }, "end": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 } @@ -41249,16 +40385,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb1438", + "id": "0x7feb10e267e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 }, "end": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 } @@ -41274,33 +40410,33 @@ ] }, { - "id": "0x7f0da6bb2718", + "id": "0x7feb10e27ac8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29696, - "line": 972, + "offset": 29198, + "line": 956, "col": 9, "tokLen": 6 }, "end": { - "offset": 29709, + "offset": 29211, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb26e8", + "id": "0x7feb10e27a98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29703, + "offset": 29205, "col": 16, "tokLen": 4 }, "end": { - "offset": 29709, + "offset": 29211, "col": 22, "tokLen": 9 } @@ -41310,7 +40446,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbedc0", + "id": "0x37fef970", "kind": "EnumConstantDecl", "name": "VCOM_ADC2", "type": { @@ -41323,35 +40459,35 @@ ] }, { - "id": "0x7f0da6bb3a58", + "id": "0x7feb10e28e08", "kind": "IfStmt", "range": { "begin": { - "offset": 29724, - "line": 973, + "offset": 29226, + "line": 957, "col": 5, "tokLen": 2 }, "end": { - "offset": 29764, - "line": 974, + "offset": 29266, + "line": 958, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bb39a8", + "id": "0x7feb10e28d58", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29728, - "line": 973, + "offset": 29230, + "line": 957, "col": 9, "tokLen": 1 }, "end": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 } @@ -41363,16 +40499,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb3990", + "id": "0x7feb10e28d40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29730, + "offset": 29232, "col": 11, "tokLen": 2 }, "end": { - "offset": 29730, + "offset": 29232, "col": 11, "tokLen": 2 } @@ -41384,16 +40520,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb3970", + "id": "0x7feb10e28d20", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29730, + "offset": 29232, "col": 11, "tokLen": 2 }, "end": { - "offset": 29730, + "offset": 29232, "col": 11, "tokLen": 2 } @@ -41403,7 +40539,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -41414,16 +40550,16 @@ ] }, { - "id": "0x7f0da6bb2748", + "id": "0x7feb10e27af8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29728, + "offset": 29230, "col": 9, "tokLen": 1 }, "end": { - "offset": 29728, + "offset": 29230, "col": 9, "tokLen": 1 } @@ -41431,11 +40567,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41444,16 +40580,16 @@ } }, { - "id": "0x7f0da6bb3958", + "id": "0x7feb10e28d08", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 }, "end": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 } @@ -41465,16 +40601,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb2768", + "id": "0x7feb10e27b18", "kind": "StringLiteral", "range": { "begin": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 }, "end": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 } @@ -41490,33 +40626,33 @@ ] }, { - "id": "0x7f0da6bb3a48", + "id": "0x7feb10e28df8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29751, - "line": 974, + "offset": 29253, + "line": 958, "col": 9, "tokLen": 6 }, "end": { - "offset": 29764, + "offset": 29266, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bb3a18", + "id": "0x7feb10e28dc8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29758, + "offset": 29260, "col": 16, "tokLen": 4 }, "end": { - "offset": 29764, + "offset": 29266, "col": 22, "tokLen": 6 } @@ -41526,7 +40662,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbee10", + "id": "0x37fef9c0", "kind": "EnumConstantDecl", "name": "VCASSH", "type": { @@ -41539,35 +40675,35 @@ ] }, { - "id": "0x7f0da6bb4d88", + "id": "0x7feb10e2a138", "kind": "IfStmt", "range": { "begin": { - "offset": 29776, - "line": 975, + "offset": 29278, + "line": 959, "col": 5, "tokLen": 2 }, "end": { - "offset": 29814, - "line": 976, + "offset": 29316, + "line": 960, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb4cd8", + "id": "0x7feb10e2a088", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29780, - "line": 975, + "offset": 29282, + "line": 959, "col": 9, "tokLen": 1 }, "end": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 } @@ -41579,16 +40715,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb4cc0", + "id": "0x7feb10e2a070", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29782, + "offset": 29284, "col": 11, "tokLen": 2 }, "end": { - "offset": 29782, + "offset": 29284, "col": 11, "tokLen": 2 } @@ -41600,16 +40736,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb4ca0", + "id": "0x7feb10e2a050", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29782, + "offset": 29284, "col": 11, "tokLen": 2 }, "end": { - "offset": 29782, + "offset": 29284, "col": 11, "tokLen": 2 } @@ -41619,7 +40755,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -41630,16 +40766,16 @@ ] }, { - "id": "0x7f0da6bb3a78", + "id": "0x7feb10e28e28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29780, + "offset": 29282, "col": 9, "tokLen": 1 }, "end": { - "offset": 29780, + "offset": 29282, "col": 9, "tokLen": 1 } @@ -41647,11 +40783,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41660,16 +40796,16 @@ } }, { - "id": "0x7f0da6bb4c88", + "id": "0x7feb10e2a038", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 }, "end": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 } @@ -41681,16 +40817,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb3a98", + "id": "0x7feb10e28e48", "kind": "StringLiteral", "range": { "begin": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 }, "end": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 } @@ -41706,33 +40842,33 @@ ] }, { - "id": "0x7f0da6bb4d78", + "id": "0x7feb10e2a128", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29801, - "line": 976, + "offset": 29303, + "line": 960, "col": 9, "tokLen": 6 }, "end": { - "offset": 29814, + "offset": 29316, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb4d48", + "id": "0x7feb10e2a0f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29808, + "offset": 29310, "col": 16, "tokLen": 4 }, "end": { - "offset": 29814, + "offset": 29316, "col": 22, "tokLen": 4 } @@ -41742,7 +40878,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbee60", + "id": "0x37fefa10", "kind": "EnumConstantDecl", "name": "VTH2", "type": { @@ -41755,35 +40891,35 @@ ] }, { - "id": "0x7f0da6bb60b8", + "id": "0x7feb10e2b468", "kind": "IfStmt", "range": { "begin": { - "offset": 29824, - "line": 977, + "offset": 29326, + "line": 961, "col": 5, "tokLen": 2 }, "end": { - "offset": 29868, - "line": 978, + "offset": 29370, + "line": 962, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bb6008", + "id": "0x7feb10e2b3b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29828, - "line": 977, + "offset": 29330, + "line": 961, "col": 9, "tokLen": 1 }, "end": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 } @@ -41795,16 +40931,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb5ff0", + "id": "0x7feb10e2b3a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29830, + "offset": 29332, "col": 11, "tokLen": 2 }, "end": { - "offset": 29830, + "offset": 29332, "col": 11, "tokLen": 2 } @@ -41816,16 +40952,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb5fd0", + "id": "0x7feb10e2b380", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29830, + "offset": 29332, "col": 11, "tokLen": 2 }, "end": { - "offset": 29830, + "offset": 29332, "col": 11, "tokLen": 2 } @@ -41835,7 +40971,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -41846,16 +40982,16 @@ ] }, { - "id": "0x7f0da6bb4da8", + "id": "0x7feb10e2a158", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29828, + "offset": 29330, "col": 9, "tokLen": 1 }, "end": { - "offset": 29828, + "offset": 29330, "col": 9, "tokLen": 1 } @@ -41863,11 +40999,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41876,16 +41012,16 @@ } }, { - "id": "0x7f0da6bb5fb8", + "id": "0x7feb10e2b368", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 }, "end": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 } @@ -41897,16 +41033,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb4dc8", + "id": "0x7feb10e2a178", "kind": "StringLiteral", "range": { "begin": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 }, "end": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 } @@ -41922,33 +41058,33 @@ ] }, { - "id": "0x7f0da6bb60a8", + "id": "0x7feb10e2b458", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29855, - "line": 978, + "offset": 29357, + "line": 962, "col": 9, "tokLen": 6 }, "end": { - "offset": 29868, + "offset": 29370, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bb6078", + "id": "0x7feb10e2b428", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29862, + "offset": 29364, "col": 16, "tokLen": 4 }, "end": { - "offset": 29868, + "offset": 29370, "col": 22, "tokLen": 10 } @@ -41958,7 +41094,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeeb0", + "id": "0x37fefa60", "kind": "EnumConstantDecl", "name": "VRSHAPER_N", "type": { @@ -41971,35 +41107,35 @@ ] }, { - "id": "0x7f0da6bb73e8", + "id": "0x7feb10e2c798", "kind": "IfStmt", "range": { "begin": { - "offset": 29884, - "line": 979, + "offset": 29386, + "line": 963, "col": 5, "tokLen": 2 }, "end": { - "offset": 29927, - "line": 980, + "offset": 29429, + "line": 964, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb7338", + "id": "0x7feb10e2c6e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29888, - "line": 979, + "offset": 29390, + "line": 963, "col": 9, "tokLen": 1 }, "end": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 } @@ -42011,16 +41147,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb7320", + "id": "0x7feb10e2c6d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29890, + "offset": 29392, "col": 11, "tokLen": 2 }, "end": { - "offset": 29890, + "offset": 29392, "col": 11, "tokLen": 2 } @@ -42032,16 +41168,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb7300", + "id": "0x7feb10e2c6b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29890, + "offset": 29392, "col": 11, "tokLen": 2 }, "end": { - "offset": 29890, + "offset": 29392, "col": 11, "tokLen": 2 } @@ -42051,7 +41187,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42062,16 +41198,16 @@ ] }, { - "id": "0x7f0da6bb60d8", + "id": "0x7feb10e2b488", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29888, + "offset": 29390, "col": 9, "tokLen": 1 }, "end": { - "offset": 29888, + "offset": 29390, "col": 9, "tokLen": 1 } @@ -42079,11 +41215,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42092,16 +41228,16 @@ } }, { - "id": "0x7f0da6bb72e8", + "id": "0x7feb10e2c698", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 }, "end": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 } @@ -42113,16 +41249,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb60f8", + "id": "0x7feb10e2b4a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 }, "end": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 } @@ -42138,33 +41274,33 @@ ] }, { - "id": "0x7f0da6bb73d8", + "id": "0x7feb10e2c788", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29914, - "line": 980, + "offset": 29416, + "line": 964, "col": 9, "tokLen": 6 }, "end": { - "offset": 29927, + "offset": 29429, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb73a8", + "id": "0x7feb10e2c758", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29921, + "offset": 29423, "col": 16, "tokLen": 4 }, "end": { - "offset": 29927, + "offset": 29429, "col": 22, "tokLen": 9 } @@ -42174,7 +41310,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbef00", + "id": "0x37fefab0", "kind": "EnumConstantDecl", "name": "VIPRE_OUT", "type": { @@ -42187,35 +41323,35 @@ ] }, { - "id": "0x7f0da6bb8718", + "id": "0x7feb10e2dac8", "kind": "IfStmt", "range": { "begin": { - "offset": 29942, - "line": 981, + "offset": 29444, + "line": 965, "col": 5, "tokLen": 2 }, "end": { - "offset": 29980, - "line": 982, + "offset": 29482, + "line": 966, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb8668", + "id": "0x7feb10e2da18", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29946, - "line": 981, + "offset": 29448, + "line": 965, "col": 9, "tokLen": 1 }, "end": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 } @@ -42227,16 +41363,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb8650", + "id": "0x7feb10e2da00", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29948, + "offset": 29450, "col": 11, "tokLen": 2 }, "end": { - "offset": 29948, + "offset": 29450, "col": 11, "tokLen": 2 } @@ -42248,16 +41384,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb8630", + "id": "0x7feb10e2d9e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29948, + "offset": 29450, "col": 11, "tokLen": 2 }, "end": { - "offset": 29948, + "offset": 29450, "col": 11, "tokLen": 2 } @@ -42267,7 +41403,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42278,16 +41414,16 @@ ] }, { - "id": "0x7f0da6bb7408", + "id": "0x7feb10e2c7b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29946, + "offset": 29448, "col": 9, "tokLen": 1 }, "end": { - "offset": 29946, + "offset": 29448, "col": 9, "tokLen": 1 } @@ -42295,11 +41431,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42308,16 +41444,16 @@ } }, { - "id": "0x7f0da6bb8618", + "id": "0x7feb10e2d9c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 }, "end": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 } @@ -42329,16 +41465,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb7428", + "id": "0x7feb10e2c7d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 }, "end": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 } @@ -42354,33 +41490,33 @@ ] }, { - "id": "0x7f0da6bb8708", + "id": "0x7feb10e2dab8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29967, - "line": 982, + "offset": 29469, + "line": 966, "col": 9, "tokLen": 6 }, "end": { - "offset": 29980, + "offset": 29482, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb86d8", + "id": "0x7feb10e2da88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29974, + "offset": 29476, "col": 16, "tokLen": 4 }, "end": { - "offset": 29980, + "offset": 29482, "col": 22, "tokLen": 4 } @@ -42390,7 +41526,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbef50", + "id": "0x37fefb00", "kind": "EnumConstantDecl", "name": "VTH3", "type": { @@ -42403,35 +41539,35 @@ ] }, { - "id": "0x7f0da6bb9a48", + "id": "0x7feb10e2edf8", "kind": "IfStmt", "range": { "begin": { - "offset": 29990, - "line": 983, + "offset": 29492, + "line": 967, "col": 5, "tokLen": 2 }, "end": { - "offset": 30028, - "line": 984, + "offset": 29530, + "line": 968, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb9998", + "id": "0x7feb10e2ed48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29994, - "line": 983, + "offset": 29496, + "line": 967, "col": 9, "tokLen": 1 }, "end": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 } @@ -42443,16 +41579,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb9980", + "id": "0x7feb10e2ed30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29996, + "offset": 29498, "col": 11, "tokLen": 2 }, "end": { - "offset": 29996, + "offset": 29498, "col": 11, "tokLen": 2 } @@ -42464,16 +41600,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb9960", + "id": "0x7feb10e2ed10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29996, + "offset": 29498, "col": 11, "tokLen": 2 }, "end": { - "offset": 29996, + "offset": 29498, "col": 11, "tokLen": 2 } @@ -42483,7 +41619,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42494,16 +41630,16 @@ ] }, { - "id": "0x7f0da6bb8738", + "id": "0x7feb10e2dae8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29994, + "offset": 29496, "col": 9, "tokLen": 1 }, "end": { - "offset": 29994, + "offset": 29496, "col": 9, "tokLen": 1 } @@ -42511,11 +41647,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42524,16 +41660,16 @@ } }, { - "id": "0x7f0da6bb9948", + "id": "0x7feb10e2ecf8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 }, "end": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 } @@ -42545,16 +41681,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb8758", + "id": "0x7feb10e2db08", "kind": "StringLiteral", "range": { "begin": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 }, "end": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 } @@ -42570,33 +41706,33 @@ ] }, { - "id": "0x7f0da6bb9a38", + "id": "0x7feb10e2ede8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30015, - "line": 984, + "offset": 29517, + "line": 968, "col": 9, "tokLen": 6 }, "end": { - "offset": 30028, + "offset": 29530, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb9a08", + "id": "0x7feb10e2edb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30022, + "offset": 29524, "col": 16, "tokLen": 4 }, "end": { - "offset": 30028, + "offset": 29530, "col": 22, "tokLen": 4 } @@ -42606,7 +41742,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbefa0", + "id": "0x37fefb50", "kind": "EnumConstantDecl", "name": "VTH1", "type": { @@ -42619,35 +41755,35 @@ ] }, { - "id": "0x7f0da6bbad78", + "id": "0x7feb10e30128", "kind": "IfStmt", "range": { "begin": { - "offset": 30038, - "line": 985, + "offset": 29540, + "line": 969, "col": 5, "tokLen": 2 }, "end": { - "offset": 30077, - "line": 986, + "offset": 29579, + "line": 970, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bbacc8", + "id": "0x7feb10e30078", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30042, - "line": 985, + "offset": 29544, + "line": 969, "col": 9, "tokLen": 1 }, "end": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 } @@ -42659,16 +41795,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bbacb0", + "id": "0x7feb10e30060", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30044, + "offset": 29546, "col": 11, "tokLen": 2 }, "end": { - "offset": 30044, + "offset": 29546, "col": 11, "tokLen": 2 } @@ -42680,16 +41816,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bbac90", + "id": "0x7feb10e30040", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30044, + "offset": 29546, "col": 11, "tokLen": 2 }, "end": { - "offset": 30044, + "offset": 29546, "col": 11, "tokLen": 2 } @@ -42699,7 +41835,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42710,16 +41846,16 @@ ] }, { - "id": "0x7f0da6bb9a68", + "id": "0x7feb10e2ee18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30042, + "offset": 29544, "col": 9, "tokLen": 1 }, "end": { - "offset": 30042, + "offset": 29544, "col": 9, "tokLen": 1 } @@ -42727,11 +41863,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42740,16 +41876,16 @@ } }, { - "id": "0x7f0da6bbac78", + "id": "0x7feb10e30028", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 }, "end": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 } @@ -42761,16 +41897,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb9a88", + "id": "0x7feb10e2ee38", "kind": "StringLiteral", "range": { "begin": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 }, "end": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 } @@ -42786,33 +41922,33 @@ ] }, { - "id": "0x7f0da6bbad68", + "id": "0x7feb10e30118", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30064, - "line": 986, + "offset": 29566, + "line": 970, "col": 9, "tokLen": 6 }, "end": { - "offset": 30077, + "offset": 29579, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bbad38", + "id": "0x7feb10e300e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30071, + "offset": 29573, "col": 16, "tokLen": 4 }, "end": { - "offset": 30077, + "offset": 29579, "col": 22, "tokLen": 5 } @@ -42822,7 +41958,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeff0", + "id": "0x37fefba0", "kind": "EnumConstantDecl", "name": "VICIN", "type": { @@ -42835,35 +41971,35 @@ ] }, { - "id": "0x7f0da6bbc0a8", + "id": "0x7feb10e31458", "kind": "IfStmt", "range": { "begin": { - "offset": 30088, - "line": 987, + "offset": 29590, + "line": 971, "col": 5, "tokLen": 2 }, "end": { - "offset": 30126, - "line": 988, + "offset": 29628, + "line": 972, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bbbff8", + "id": "0x7feb10e313a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30092, - "line": 987, + "offset": 29594, + "line": 971, "col": 9, "tokLen": 1 }, "end": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 } @@ -42875,16 +42011,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bbbfe0", + "id": "0x7feb10e31390", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30094, + "offset": 29596, "col": 11, "tokLen": 2 }, "end": { - "offset": 30094, + "offset": 29596, "col": 11, "tokLen": 2 } @@ -42896,16 +42032,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bbbfc0", + "id": "0x7feb10e31370", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30094, + "offset": 29596, "col": 11, "tokLen": 2 }, "end": { - "offset": 30094, + "offset": 29596, "col": 11, "tokLen": 2 } @@ -42915,7 +42051,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42926,16 +42062,16 @@ ] }, { - "id": "0x7f0da6bbad98", + "id": "0x7feb10e30148", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30092, + "offset": 29594, "col": 9, "tokLen": 1 }, "end": { - "offset": 30092, + "offset": 29594, "col": 9, "tokLen": 1 } @@ -42943,11 +42079,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42956,16 +42092,16 @@ } }, { - "id": "0x7f0da6bbbfa8", + "id": "0x7feb10e31358", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 }, "end": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 } @@ -42977,16 +42113,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bbadb8", + "id": "0x7feb10e30168", "kind": "StringLiteral", "range": { "begin": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 }, "end": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 } @@ -43002,33 +42138,33 @@ ] }, { - "id": "0x7f0da6bbc098", + "id": "0x7feb10e31448", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30113, - "line": 988, + "offset": 29615, + "line": 972, "col": 9, "tokLen": 6 }, "end": { - "offset": 30126, + "offset": 29628, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bbc068", + "id": "0x7feb10e31418", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30120, + "offset": 29622, "col": 16, "tokLen": 4 }, "end": { - "offset": 30126, + "offset": 29628, "col": 22, "tokLen": 4 } @@ -43038,7 +42174,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf040", + "id": "0x37fefbf0", "kind": "EnumConstantDecl", "name": "VCAS", "type": { @@ -43051,35 +42187,35 @@ ] }, { - "id": "0x7f0da6b7c3e8", + "id": "0x7feb10e32788", "kind": "IfStmt", "range": { "begin": { - "offset": 30136, - "line": 989, + "offset": 29638, + "line": 973, "col": 5, "tokLen": 2 }, "end": { - "offset": 30176, - "line": 990, + "offset": 29678, + "line": 974, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b7c338", + "id": "0x7feb10e326d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30140, - "line": 989, + "offset": 29642, + "line": 973, "col": 9, "tokLen": 1 }, "end": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 } @@ -43091,16 +42227,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7c320", + "id": "0x7feb10e326c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30142, + "offset": 29644, "col": 11, "tokLen": 2 }, "end": { - "offset": 30142, + "offset": 29644, "col": 11, "tokLen": 2 } @@ -43112,16 +42248,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7c300", + "id": "0x7feb10e326a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30142, + "offset": 29644, "col": 11, "tokLen": 2 }, "end": { - "offset": 30142, + "offset": 29644, "col": 11, "tokLen": 2 } @@ -43131,7 +42267,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -43142,16 +42278,16 @@ ] }, { - "id": "0x7f0da6bbc0c8", + "id": "0x7feb10e31478", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30140, + "offset": 29642, "col": 9, "tokLen": 1 }, "end": { - "offset": 30140, + "offset": 29642, "col": 9, "tokLen": 1 } @@ -43159,11 +42295,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -43172,16 +42308,16 @@ } }, { - "id": "0x7f0da6b7c2e8", + "id": "0x7feb10e32688", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 }, "end": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 } @@ -43193,16 +42329,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bbc0e8", + "id": "0x7feb10e31498", "kind": "StringLiteral", "range": { "begin": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 }, "end": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 } @@ -43218,33 +42354,33 @@ ] }, { - "id": "0x7f0da6b7c3d8", + "id": "0x7feb10e32778", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30163, - "line": 990, + "offset": 29665, + "line": 974, "col": 9, "tokLen": 6 }, "end": { - "offset": 30176, + "offset": 29678, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b7c3a8", + "id": "0x7feb10e32748", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30170, + "offset": 29672, "col": 16, "tokLen": 4 }, "end": { - "offset": 30176, + "offset": 29678, "col": 22, "tokLen": 6 } @@ -43254,7 +42390,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf090", + "id": "0x37fefc40", "kind": "EnumConstantDecl", "name": "VCAL_N", "type": { @@ -43267,35 +42403,35 @@ ] }, { - "id": "0x7f0da6b7d718", + "id": "0x7feb10e33ab8", "kind": "IfStmt", "range": { "begin": { - "offset": 30188, - "line": 991, + "offset": 29690, + "line": 975, "col": 5, "tokLen": 2 }, "end": { - "offset": 30227, - "line": 992, + "offset": 29729, + "line": 976, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b7d668", + "id": "0x7feb10e33a08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30192, - "line": 991, + "offset": 29694, + "line": 975, "col": 9, "tokLen": 1 }, "end": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 } @@ -43307,16 +42443,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7d650", + "id": "0x7feb10e339f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30194, + "offset": 29696, "col": 11, "tokLen": 2 }, "end": { - "offset": 30194, + "offset": 29696, "col": 11, "tokLen": 2 } @@ -43328,16 +42464,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7d630", + "id": "0x7feb10e339d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30194, + "offset": 29696, "col": 11, "tokLen": 2 }, "end": { - "offset": 30194, + "offset": 29696, "col": 11, "tokLen": 2 } @@ -43347,7 +42483,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -43358,16 +42494,16 @@ ] }, { - "id": "0x7f0da6b7c408", + "id": "0x7feb10e327a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30192, + "offset": 29694, "col": 9, "tokLen": 1 }, "end": { - "offset": 30192, + "offset": 29694, "col": 9, "tokLen": 1 } @@ -43375,11 +42511,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -43388,16 +42524,16 @@ } }, { - "id": "0x7f0da6b7d618", + "id": "0x7feb10e339b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 }, "end": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 } @@ -43409,16 +42545,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7c428", + "id": "0x7feb10e327c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 }, "end": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 } @@ -43434,33 +42570,33 @@ ] }, { - "id": "0x7f0da6b7d708", + "id": "0x7feb10e33aa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30214, - "line": 992, + "offset": 29716, + "line": 976, "col": 9, "tokLen": 6 }, "end": { - "offset": 30227, + "offset": 29729, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b7d6d8", + "id": "0x7feb10e33a78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30221, + "offset": 29723, "col": 16, "tokLen": 4 }, "end": { - "offset": 30227, + "offset": 29729, "col": 22, "tokLen": 5 } @@ -43470,7 +42606,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf0e0", + "id": "0x37fefc90", "kind": "EnumConstantDecl", "name": "VIPRE", "type": { @@ -43483,35 +42619,35 @@ ] }, { - "id": "0x7f0da6b7ea48", + "id": "0x7feb10e34de8", "kind": "IfStmt", "range": { "begin": { - "offset": 30238, - "line": 993, + "offset": 29740, + "line": 977, "col": 5, "tokLen": 2 }, "end": { - "offset": 30278, - "line": 994, + "offset": 29780, + "line": 978, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b7e998", + "id": "0x7feb10e34d38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30242, - "line": 993, + "offset": 29744, + "line": 977, "col": 9, "tokLen": 1 }, "end": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 } @@ -43523,16 +42659,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7e980", + "id": "0x7feb10e34d20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30244, + "offset": 29746, "col": 11, "tokLen": 2 }, "end": { - "offset": 30244, + "offset": 29746, "col": 11, "tokLen": 2 } @@ -43544,16 +42680,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7e960", + "id": "0x7feb10e34d00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30244, + "offset": 29746, "col": 11, "tokLen": 2 }, "end": { - "offset": 30244, + "offset": 29746, "col": 11, "tokLen": 2 } @@ -43563,7 +42699,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -43574,16 +42710,16 @@ ] }, { - "id": "0x7f0da6b7d738", + "id": "0x7feb10e33ad8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30242, + "offset": 29744, "col": 9, "tokLen": 1 }, "end": { - "offset": 30242, + "offset": 29744, "col": 9, "tokLen": 1 } @@ -43591,11 +42727,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -43604,16 +42740,16 @@ } }, { - "id": "0x7f0da6b7e948", + "id": "0x7feb10e34ce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 }, "end": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 } @@ -43625,16 +42761,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7d758", + "id": "0x7feb10e33af8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 }, "end": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 } @@ -43650,33 +42786,33 @@ ] }, { - "id": "0x7f0da6b7ea38", + "id": "0x7feb10e34dd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30265, - "line": 994, + "offset": 29767, + "line": 978, "col": 9, "tokLen": 6 }, "end": { - "offset": 30278, + "offset": 29780, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b7ea08", + "id": "0x7feb10e34da8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30272, + "offset": 29774, "col": 16, "tokLen": 4 }, "end": { - "offset": 30278, + "offset": 29780, "col": 22, "tokLen": 6 } @@ -43686,7 +42822,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf130", + "id": "0x37fefce0", "kind": "EnumConstantDecl", "name": "VCAL_P", "type": { @@ -43699,35 +42835,35 @@ ] }, { - "id": "0x7f0da6b7fd78", + "id": "0x7feb10e36118", "kind": "IfStmt", "range": { "begin": { - "offset": 30290, - "line": 995, + "offset": 29792, + "line": 979, "col": 5, "tokLen": 2 }, "end": { - "offset": 30329, - "line": 996, + "offset": 29831, + "line": 980, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b7fcc8", + "id": "0x7feb10e36068", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30294, - "line": 995, + "offset": 29796, + "line": 979, "col": 9, "tokLen": 1 }, "end": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 } @@ -43739,16 +42875,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7fcb0", + "id": "0x7feb10e36050", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30296, + "offset": 29798, "col": 11, "tokLen": 2 }, "end": { - "offset": 30296, + "offset": 29798, "col": 11, "tokLen": 2 } @@ -43760,16 +42896,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7fc90", + "id": "0x7feb10e36030", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30296, + "offset": 29798, "col": 11, "tokLen": 2 }, "end": { - "offset": 30296, + "offset": 29798, "col": 11, "tokLen": 2 } @@ -43779,7 +42915,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -43790,16 +42926,16 @@ ] }, { - "id": "0x7f0da6b7ea68", + "id": "0x7feb10e34e08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30294, + "offset": 29796, "col": 9, "tokLen": 1 }, "end": { - "offset": 30294, + "offset": 29796, "col": 9, "tokLen": 1 } @@ -43807,11 +42943,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -43820,16 +42956,16 @@ } }, { - "id": "0x7f0da6b7fc78", + "id": "0x7feb10e36018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 }, "end": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 } @@ -43841,16 +42977,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7ea88", + "id": "0x7feb10e34e28", "kind": "StringLiteral", "range": { "begin": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 }, "end": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 } @@ -43866,33 +43002,33 @@ ] }, { - "id": "0x7f0da6b7fd68", + "id": "0x7feb10e36108", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30316, - "line": 996, + "offset": 29818, + "line": 980, "col": 9, "tokLen": 6 }, "end": { - "offset": 30329, + "offset": 29831, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b7fd38", + "id": "0x7feb10e360d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30323, + "offset": 29825, "col": 16, "tokLen": 4 }, "end": { - "offset": 30329, + "offset": 29831, "col": 22, "tokLen": 5 } @@ -43902,7 +43038,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf180", + "id": "0x37fefd30", "kind": "EnumConstantDecl", "name": "VDCSH", "type": { @@ -43915,35 +43051,35 @@ ] }, { - "id": "0x7f0da6b810a8", + "id": "0x7feb10e37448", "kind": "IfStmt", "range": { "begin": { - "offset": 30340, - "line": 997, + "offset": 29842, + "line": 981, "col": 5, "tokLen": 2 }, "end": { - "offset": 30384, - "line": 998, + "offset": 29886, + "line": 982, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6b80ff8", + "id": "0x7feb10e37398", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30344, - "line": 997, + "offset": 29846, + "line": 981, "col": 9, "tokLen": 1 }, "end": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 } @@ -43955,16 +43091,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b80fe0", + "id": "0x7feb10e37380", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30346, + "offset": 29848, "col": 11, "tokLen": 2 }, "end": { - "offset": 30346, + "offset": 29848, "col": 11, "tokLen": 2 } @@ -43976,16 +43112,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b80fc0", + "id": "0x7feb10e37360", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30346, + "offset": 29848, "col": 11, "tokLen": 2 }, "end": { - "offset": 30346, + "offset": 29848, "col": 11, "tokLen": 2 } @@ -43995,7 +43131,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44006,16 +43142,16 @@ ] }, { - "id": "0x7f0da6b7fd98", + "id": "0x7feb10e36138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30344, + "offset": 29846, "col": 9, "tokLen": 1 }, "end": { - "offset": 30344, + "offset": 29846, "col": 9, "tokLen": 1 } @@ -44023,11 +43159,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44036,16 +43172,16 @@ } }, { - "id": "0x7f0da6b80fa8", + "id": "0x7feb10e37348", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 }, "end": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 } @@ -44057,16 +43193,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7fdb8", + "id": "0x7feb10e36158", "kind": "StringLiteral", "range": { "begin": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 }, "end": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 } @@ -44082,33 +43218,33 @@ ] }, { - "id": "0x7f0da6b81098", + "id": "0x7feb10e37438", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30371, - "line": 998, + "offset": 29873, + "line": 982, "col": 9, "tokLen": 6 }, "end": { - "offset": 30384, + "offset": 29886, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6b81068", + "id": "0x7feb10e37408", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30378, + "offset": 29880, "col": 16, "tokLen": 4 }, "end": { - "offset": 30384, + "offset": 29886, "col": 22, "tokLen": 10 } @@ -44118,7 +43254,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf1d0", + "id": "0x37fefd80", "kind": "EnumConstantDecl", "name": "VBP_COLBUF", "type": { @@ -44131,35 +43267,35 @@ ] }, { - "id": "0x7f0da6b823d8", + "id": "0x7feb10df7798", "kind": "IfStmt", "range": { "begin": { - "offset": 30400, - "line": 999, + "offset": 29902, + "line": 983, "col": 5, "tokLen": 2 }, "end": { - "offset": 30440, - "line": 1000, + "offset": 29942, + "line": 984, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b82328", + "id": "0x7feb10df76e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30404, - "line": 999, + "offset": 29906, + "line": 983, "col": 9, "tokLen": 1 }, "end": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 } @@ -44171,16 +43307,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b82310", + "id": "0x7feb10df76d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30406, + "offset": 29908, "col": 11, "tokLen": 2 }, "end": { - "offset": 30406, + "offset": 29908, "col": 11, "tokLen": 2 } @@ -44192,16 +43328,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b822f0", + "id": "0x7feb10df76b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30406, + "offset": 29908, "col": 11, "tokLen": 2 }, "end": { - "offset": 30406, + "offset": 29908, "col": 11, "tokLen": 2 } @@ -44211,7 +43347,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44222,16 +43358,16 @@ ] }, { - "id": "0x7f0da6b810c8", + "id": "0x7feb10e37468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30404, + "offset": 29906, "col": 9, "tokLen": 1 }, "end": { - "offset": 30404, + "offset": 29906, "col": 9, "tokLen": 1 } @@ -44239,11 +43375,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44252,16 +43388,16 @@ } }, { - "id": "0x7f0da6b822d8", + "id": "0x7feb10df7698", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 }, "end": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 } @@ -44273,16 +43409,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b810e8", + "id": "0x7feb10e37488", "kind": "StringLiteral", "range": { "begin": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 }, "end": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 } @@ -44298,33 +43434,33 @@ ] }, { - "id": "0x7f0da6b823c8", + "id": "0x7feb10df7788", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30427, - "line": 1000, + "offset": 29929, + "line": 984, "col": 9, "tokLen": 6 }, "end": { - "offset": 30440, + "offset": 29942, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b82398", + "id": "0x7feb10df7758", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30434, + "offset": 29936, "col": 16, "tokLen": 4 }, "end": { - "offset": 30440, + "offset": 29942, "col": 22, "tokLen": 6 } @@ -44334,7 +43470,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf220", + "id": "0x37fefdd0", "kind": "EnumConstantDecl", "name": "VB_SDA", "type": { @@ -44347,35 +43483,35 @@ ] }, { - "id": "0x7f0da6b83708", + "id": "0x7feb10df8ac8", "kind": "IfStmt", "range": { "begin": { - "offset": 30452, - "line": 1001, + "offset": 29954, + "line": 985, "col": 5, "tokLen": 2 }, "end": { - "offset": 30495, - "line": 1002, + "offset": 29997, + "line": 986, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b83658", + "id": "0x7feb10df8a18", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30456, - "line": 1001, + "offset": 29958, + "line": 985, "col": 9, "tokLen": 1 }, "end": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 } @@ -44387,16 +43523,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b83640", + "id": "0x7feb10df8a00", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30458, + "offset": 29960, "col": 11, "tokLen": 2 }, "end": { - "offset": 30458, + "offset": 29960, "col": 11, "tokLen": 2 } @@ -44408,16 +43544,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b83620", + "id": "0x7feb10df89e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30458, + "offset": 29960, "col": 11, "tokLen": 2 }, "end": { - "offset": 30458, + "offset": 29960, "col": 11, "tokLen": 2 } @@ -44427,7 +43563,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44438,16 +43574,16 @@ ] }, { - "id": "0x7f0da6b823f8", + "id": "0x7feb10df77b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30456, + "offset": 29958, "col": 9, "tokLen": 1 }, "end": { - "offset": 30456, + "offset": 29958, "col": 9, "tokLen": 1 } @@ -44455,11 +43591,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44468,16 +43604,16 @@ } }, { - "id": "0x7f0da6b83608", + "id": "0x7feb10df89c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 }, "end": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 } @@ -44489,16 +43625,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b82418", + "id": "0x7feb10df77d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 }, "end": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 } @@ -44514,33 +43650,33 @@ ] }, { - "id": "0x7f0da6b836f8", + "id": "0x7feb10df8ab8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30482, - "line": 1002, + "offset": 29984, + "line": 986, "col": 9, "tokLen": 6 }, "end": { - "offset": 30495, + "offset": 29997, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b836c8", + "id": "0x7feb10df8a88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30489, + "offset": 29991, "col": 16, "tokLen": 4 }, "end": { - "offset": 30495, + "offset": 29997, "col": 22, "tokLen": 9 } @@ -44550,7 +43686,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf270", + "id": "0x37fefe20", "kind": "EnumConstantDecl", "name": "VCASC_SFP", "type": { @@ -44563,35 +43699,35 @@ ] }, { - "id": "0x7f0da6b84a38", + "id": "0x7feb10df9df8", "kind": "IfStmt", "range": { "begin": { - "offset": 30510, - "line": 1003, + "offset": 30012, + "line": 987, "col": 5, "tokLen": 2 }, "end": { - "offset": 30553, - "line": 1004, + "offset": 30055, + "line": 988, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b84988", + "id": "0x7feb10df9d48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30514, - "line": 1003, + "offset": 30016, + "line": 987, "col": 9, "tokLen": 1 }, "end": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 } @@ -44603,16 +43739,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b84970", + "id": "0x7feb10df9d30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30516, + "offset": 30018, "col": 11, "tokLen": 2 }, "end": { - "offset": 30516, + "offset": 30018, "col": 11, "tokLen": 2 } @@ -44624,16 +43760,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b84950", + "id": "0x7feb10df9d10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30516, + "offset": 30018, "col": 11, "tokLen": 2 }, "end": { - "offset": 30516, + "offset": 30018, "col": 11, "tokLen": 2 } @@ -44643,7 +43779,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44654,16 +43790,16 @@ ] }, { - "id": "0x7f0da6b83728", + "id": "0x7feb10df8ae8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30514, + "offset": 30016, "col": 9, "tokLen": 1 }, "end": { - "offset": 30514, + "offset": 30016, "col": 9, "tokLen": 1 } @@ -44671,11 +43807,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44684,16 +43820,16 @@ } }, { - "id": "0x7f0da6b84938", + "id": "0x7feb10df9cf8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 }, "end": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 } @@ -44705,16 +43841,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b83748", + "id": "0x7feb10df8b08", "kind": "StringLiteral", "range": { "begin": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 }, "end": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 } @@ -44730,33 +43866,33 @@ ] }, { - "id": "0x7f0da6b84a28", + "id": "0x7feb10df9de8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30540, - "line": 1004, + "offset": 30042, + "line": 988, "col": 9, "tokLen": 6 }, "end": { - "offset": 30553, + "offset": 30055, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b849f8", + "id": "0x7feb10df9db8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30547, + "offset": 30049, "col": 16, "tokLen": 4 }, "end": { - "offset": 30553, + "offset": 30055, "col": 22, "tokLen": 9 } @@ -44766,7 +43902,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf2c0", + "id": "0x37fefe70", "kind": "EnumConstantDecl", "name": "VIPRE_CDS", "type": { @@ -44779,35 +43915,35 @@ ] }, { - "id": "0x7f0da6b85d68", + "id": "0x7feb10dfb128", "kind": "IfStmt", "range": { "begin": { - "offset": 30568, - "line": 1005, + "offset": 30070, + "line": 989, "col": 5, "tokLen": 2 }, "end": { - "offset": 30611, - "line": 1006, + "offset": 30113, + "line": 990, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b85cb8", + "id": "0x7feb10dfb078", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30572, - "line": 1005, + "offset": 30074, + "line": 989, "col": 9, "tokLen": 1 }, "end": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 } @@ -44819,16 +43955,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b85ca0", + "id": "0x7feb10dfb060", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30574, + "offset": 30076, "col": 11, "tokLen": 2 }, "end": { - "offset": 30574, + "offset": 30076, "col": 11, "tokLen": 2 } @@ -44840,16 +43976,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b85c80", + "id": "0x7feb10dfb040", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30574, + "offset": 30076, "col": 11, "tokLen": 2 }, "end": { - "offset": 30574, + "offset": 30076, "col": 11, "tokLen": 2 } @@ -44859,7 +43995,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44870,16 +44006,16 @@ ] }, { - "id": "0x7f0da6b84a58", + "id": "0x7feb10df9e18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30572, + "offset": 30074, "col": 9, "tokLen": 1 }, "end": { - "offset": 30572, + "offset": 30074, "col": 9, "tokLen": 1 } @@ -44887,11 +44023,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44900,16 +44036,16 @@ } }, { - "id": "0x7f0da6b85c68", + "id": "0x7feb10dfb028", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 }, "end": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 } @@ -44921,16 +44057,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b84a78", + "id": "0x7feb10df9e38", "kind": "StringLiteral", "range": { "begin": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 }, "end": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 } @@ -44946,33 +44082,33 @@ ] }, { - "id": "0x7f0da6b85d58", + "id": "0x7feb10dfb118", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30598, - "line": 1006, + "offset": 30100, + "line": 990, "col": 9, "tokLen": 6 }, "end": { - "offset": 30611, + "offset": 30113, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b85d28", + "id": "0x7feb10dfb0e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30605, + "offset": 30107, "col": 16, "tokLen": 4 }, "end": { - "offset": 30611, + "offset": 30113, "col": 22, "tokLen": 9 } @@ -44982,7 +44118,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf310", + "id": "0x37fefec0", "kind": "EnumConstantDecl", "name": "IBIAS_SFP", "type": { @@ -44995,35 +44131,35 @@ ] }, { - "id": "0x7f0da6b87098", + "id": "0x7feb10dfc458", "kind": "IfStmt", "range": { "begin": { - "offset": 30626, - "line": 1007, + "offset": 30128, + "line": 991, "col": 5, "tokLen": 2 }, "end": { - "offset": 30668, - "line": 1008, + "offset": 30170, + "line": 992, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6b86fe8", + "id": "0x7feb10dfc3a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30630, - "line": 1007, + "offset": 30132, + "line": 991, "col": 9, "tokLen": 1 }, "end": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 } @@ -45035,16 +44171,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b86fd0", + "id": "0x7feb10dfc390", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30632, + "offset": 30134, "col": 11, "tokLen": 2 }, "end": { - "offset": 30632, + "offset": 30134, "col": 11, "tokLen": 2 } @@ -45056,16 +44192,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b86fb0", + "id": "0x7feb10dfc370", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30632, + "offset": 30134, "col": 11, "tokLen": 2 }, "end": { - "offset": 30632, + "offset": 30134, "col": 11, "tokLen": 2 } @@ -45075,7 +44211,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45086,16 +44222,16 @@ ] }, { - "id": "0x7f0da6b85d88", + "id": "0x7feb10dfb148", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30630, + "offset": 30132, "col": 9, "tokLen": 1 }, "end": { - "offset": 30630, + "offset": 30132, "col": 9, "tokLen": 1 } @@ -45103,11 +44239,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45116,16 +44252,16 @@ } }, { - "id": "0x7f0da6b86f98", + "id": "0x7feb10dfc358", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 }, "end": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 } @@ -45137,16 +44273,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b85da8", + "id": "0x7feb10dfb168", "kind": "StringLiteral", "range": { "begin": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 }, "end": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 } @@ -45162,33 +44298,33 @@ ] }, { - "id": "0x7f0da6b87088", + "id": "0x7feb10dfc448", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30655, - "line": 1008, + "offset": 30157, + "line": 992, "col": 9, "tokLen": 6 }, "end": { - "offset": 30668, + "offset": 30170, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6b87058", + "id": "0x7feb10dfc418", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30662, + "offset": 30164, "col": 16, "tokLen": 4 }, "end": { - "offset": 30668, + "offset": 30170, "col": 22, "tokLen": 12 } @@ -45198,7 +44334,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf6d0", + "id": "0x37ff0280", "kind": "EnumConstantDecl", "name": "TRIMBIT_SCAN", "type": { @@ -45211,35 +44347,35 @@ ] }, { - "id": "0x7f0da6b883c8", + "id": "0x7feb10dfd788", "kind": "IfStmt", "range": { "begin": { - "offset": 30686, - "line": 1009, + "offset": 30188, + "line": 993, "col": 5, "tokLen": 2 }, "end": { - "offset": 30731, - "line": 1010, + "offset": 30233, + "line": 994, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6b88318", + "id": "0x7feb10dfd6d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30690, - "line": 1009, + "offset": 30192, + "line": 993, "col": 9, "tokLen": 1 }, "end": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 } @@ -45251,16 +44387,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b88300", + "id": "0x7feb10dfd6c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30692, + "offset": 30194, "col": 11, "tokLen": 2 }, "end": { - "offset": 30692, + "offset": 30194, "col": 11, "tokLen": 2 } @@ -45272,16 +44408,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b882e0", + "id": "0x7feb10dfd6a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30692, + "offset": 30194, "col": 11, "tokLen": 2 }, "end": { - "offset": 30692, + "offset": 30194, "col": 11, "tokLen": 2 } @@ -45291,7 +44427,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45302,16 +44438,16 @@ ] }, { - "id": "0x7f0da6b870b8", + "id": "0x7feb10dfc478", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30690, + "offset": 30192, "col": 9, "tokLen": 1 }, "end": { - "offset": 30690, + "offset": 30192, "col": 9, "tokLen": 1 } @@ -45319,11 +44455,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45332,16 +44468,16 @@ } }, { - "id": "0x7f0da6b882c8", + "id": "0x7feb10dfd688", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 }, "end": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 } @@ -45353,16 +44489,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b870d8", + "id": "0x7feb10dfc498", "kind": "StringLiteral", "range": { "begin": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 }, "end": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 } @@ -45378,33 +44514,33 @@ ] }, { - "id": "0x7f0da6b883b8", + "id": "0x7feb10dfd778", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30718, - "line": 1010, + "offset": 30220, + "line": 994, "col": 9, "tokLen": 6 }, "end": { - "offset": 30731, + "offset": 30233, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6b88388", + "id": "0x7feb10dfd748", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30725, + "offset": 30227, "col": 16, "tokLen": 4 }, "end": { - "offset": 30731, + "offset": 30233, "col": 22, "tokLen": 12 } @@ -45414,7 +44550,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf3b0", + "id": "0x37feff60", "kind": "EnumConstantDecl", "name": "HIGH_VOLTAGE", "type": { @@ -45427,35 +44563,35 @@ ] }, { - "id": "0x7f0da6b896f8", + "id": "0x7feb10dfeab8", "kind": "IfStmt", "range": { "begin": { - "offset": 30749, - "line": 1011, + "offset": 30251, + "line": 995, "col": 5, "tokLen": 2 }, "end": { - "offset": 30790, - "line": 1012, + "offset": 30292, + "line": 996, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b89648", + "id": "0x7feb10dfea08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30753, - "line": 1011, + "offset": 30255, + "line": 995, "col": 9, "tokLen": 1 }, "end": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 } @@ -45467,16 +44603,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b89630", + "id": "0x7feb10dfe9f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30755, + "offset": 30257, "col": 11, "tokLen": 2 }, "end": { - "offset": 30755, + "offset": 30257, "col": 11, "tokLen": 2 } @@ -45488,16 +44624,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b89610", + "id": "0x7feb10dfe9d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30755, + "offset": 30257, "col": 11, "tokLen": 2 }, "end": { - "offset": 30755, + "offset": 30257, "col": 11, "tokLen": 2 } @@ -45507,7 +44643,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45518,16 +44654,16 @@ ] }, { - "id": "0x7f0da6b883e8", + "id": "0x7feb10dfd7a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30753, + "offset": 30255, "col": 9, "tokLen": 1 }, "end": { - "offset": 30753, + "offset": 30255, "col": 9, "tokLen": 1 } @@ -45535,11 +44671,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45548,16 +44684,16 @@ } }, { - "id": "0x7f0da6b895f8", + "id": "0x7feb10dfe9b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 }, "end": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 } @@ -45569,16 +44705,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b88408", + "id": "0x7feb10dfd7c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 }, "end": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 } @@ -45594,33 +44730,33 @@ ] }, { - "id": "0x7f0da6b896e8", + "id": "0x7feb10dfeaa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30777, - "line": 1012, + "offset": 30279, + "line": 996, "col": 9, "tokLen": 6 }, "end": { - "offset": 30790, + "offset": 30292, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b896b8", + "id": "0x7feb10dfea78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30784, + "offset": 30286, "col": 16, "tokLen": 4 }, "end": { - "offset": 30790, + "offset": 30292, "col": 22, "tokLen": 8 } @@ -45630,7 +44766,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe550", + "id": "0x37fef240", "kind": "EnumConstantDecl", "name": "IO_DELAY", "type": { @@ -45643,35 +44779,35 @@ ] }, { - "id": "0x7f0da6b8aa28", + "id": "0x7feb10dffde8", "kind": "IfStmt", "range": { "begin": { - "offset": 30804, - "line": 1013, + "offset": 30306, + "line": 997, "col": 5, "tokLen": 2 }, "end": { - "offset": 30846, - "line": 1014, + "offset": 30348, + "line": 998, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b8a978", + "id": "0x7feb10dffd38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30808, - "line": 1013, + "offset": 30310, + "line": 997, "col": 9, "tokLen": 1 }, "end": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 } @@ -45683,16 +44819,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8a960", + "id": "0x7feb10dffd20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30810, + "offset": 30312, "col": 11, "tokLen": 2 }, "end": { - "offset": 30810, + "offset": 30312, "col": 11, "tokLen": 2 } @@ -45704,16 +44840,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8a940", + "id": "0x7feb10dffd00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30810, + "offset": 30312, "col": 11, "tokLen": 2 }, "end": { - "offset": 30810, + "offset": 30312, "col": 11, "tokLen": 2 } @@ -45723,7 +44859,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45734,16 +44870,16 @@ ] }, { - "id": "0x7f0da6b89718", + "id": "0x7feb10dfead8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30808, + "offset": 30310, "col": 9, "tokLen": 1 }, "end": { - "offset": 30808, + "offset": 30310, "col": 9, "tokLen": 1 } @@ -45751,11 +44887,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45764,16 +44900,16 @@ } }, { - "id": "0x7f0da6b8a928", + "id": "0x7feb10dffce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 }, "end": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 } @@ -45785,16 +44921,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b89738", + "id": "0x7feb10dfeaf8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 }, "end": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 } @@ -45810,33 +44946,33 @@ ] }, { - "id": "0x7f0da6b8aa18", + "id": "0x7feb10dffdd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30833, - "line": 1014, + "offset": 30335, + "line": 998, "col": 9, "tokLen": 6 }, "end": { - "offset": 30846, + "offset": 30348, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b8a9e8", + "id": "0x7feb10dffda8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30840, + "offset": 30342, "col": 16, "tokLen": 4 }, "end": { - "offset": 30846, + "offset": 30348, "col": 22, "tokLen": 15 } @@ -45846,7 +44982,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf400", + "id": "0x37feffb0", "kind": "EnumConstantDecl", "name": "TEMPERATURE_ADC", "type": { @@ -45859,35 +44995,35 @@ ] }, { - "id": "0x7f0da6b8bd58", + "id": "0x7feb10e01118", "kind": "IfStmt", "range": { "begin": { - "offset": 30867, - "line": 1015, + "offset": 30369, + "line": 999, "col": 5, "tokLen": 2 }, "end": { - "offset": 30910, - "line": 1016, + "offset": 30412, + "line": 1000, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8bca8", + "id": "0x7feb10e01068", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30871, - "line": 1015, + "offset": 30373, + "line": 999, "col": 9, "tokLen": 1 }, "end": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 } @@ -45899,16 +45035,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8bc90", + "id": "0x7feb10e01050", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30873, + "offset": 30375, "col": 11, "tokLen": 2 }, "end": { - "offset": 30873, + "offset": 30375, "col": 11, "tokLen": 2 } @@ -45920,16 +45056,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8bc70", + "id": "0x7feb10e01030", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30873, + "offset": 30375, "col": 11, "tokLen": 2 }, "end": { - "offset": 30873, + "offset": 30375, "col": 11, "tokLen": 2 } @@ -45939,7 +45075,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45950,16 +45086,16 @@ ] }, { - "id": "0x7f0da6b8aa48", + "id": "0x7feb10dffe08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30871, + "offset": 30373, "col": 9, "tokLen": 1 }, "end": { - "offset": 30871, + "offset": 30373, "col": 9, "tokLen": 1 } @@ -45967,11 +45103,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45980,16 +45116,16 @@ } }, { - "id": "0x7f0da6b8bc58", + "id": "0x7feb10e01018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 }, "end": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 } @@ -46001,16 +45137,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8aa68", + "id": "0x7feb10dffe28", "kind": "StringLiteral", "range": { "begin": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 }, "end": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 } @@ -46026,33 +45162,33 @@ ] }, { - "id": "0x7f0da6b8bd48", + "id": "0x7feb10e01108", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30897, - "line": 1016, + "offset": 30399, + "line": 1000, "col": 9, "tokLen": 6 }, "end": { - "offset": 30910, + "offset": 30412, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8bd18", + "id": "0x7feb10e010d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30904, + "offset": 30406, "col": 16, "tokLen": 4 }, "end": { - "offset": 30910, + "offset": 30412, "col": 22, "tokLen": 16 } @@ -46062,7 +45198,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf450", + "id": "0x37ff0000", "kind": "EnumConstantDecl", "name": "TEMPERATURE_FPGA", "type": { @@ -46075,35 +45211,35 @@ ] }, { - "id": "0x7f0da6b8d088", + "id": "0x7feb10e02448", "kind": "IfStmt", "range": { "begin": { - "offset": 30932, - "line": 1017, + "offset": 30434, + "line": 1001, "col": 5, "tokLen": 2 }, "end": { - "offset": 30978, - "line": 1018, + "offset": 30480, + "line": 1002, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b8cfd8", + "id": "0x7feb10e02398", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30936, - "line": 1017, + "offset": 30438, + "line": 1001, "col": 9, "tokLen": 1 }, "end": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 } @@ -46115,16 +45251,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8cfc0", + "id": "0x7feb10e02380", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30938, + "offset": 30440, "col": 11, "tokLen": 2 }, "end": { - "offset": 30938, + "offset": 30440, "col": 11, "tokLen": 2 } @@ -46136,16 +45272,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8cfa0", + "id": "0x7feb10e02360", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30938, + "offset": 30440, "col": 11, "tokLen": 2 }, "end": { - "offset": 30938, + "offset": 30440, "col": 11, "tokLen": 2 } @@ -46155,7 +45291,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -46166,16 +45302,16 @@ ] }, { - "id": "0x7f0da6b8bd78", + "id": "0x7feb10e01138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30936, + "offset": 30438, "col": 9, "tokLen": 1 }, "end": { - "offset": 30936, + "offset": 30438, "col": 9, "tokLen": 1 } @@ -46183,11 +45319,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -46196,16 +45332,16 @@ } }, { - "id": "0x7f0da6b8cf88", + "id": "0x7feb10e02348", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 }, "end": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 } @@ -46217,16 +45353,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8bd98", + "id": "0x7feb10e01158", "kind": "StringLiteral", "range": { "begin": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 }, "end": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 } @@ -46242,33 +45378,33 @@ ] }, { - "id": "0x7f0da6b8d078", + "id": "0x7feb10e02438", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30965, - "line": 1018, + "offset": 30467, + "line": 1002, "col": 9, "tokLen": 6 }, "end": { - "offset": 30978, + "offset": 30480, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b8d048", + "id": "0x7feb10e02408", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30972, + "offset": 30474, "col": 16, "tokLen": 4 }, "end": { - "offset": 30978, + "offset": 30480, "col": 22, "tokLen": 19 } @@ -46278,7 +45414,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf4a0", + "id": "0x37ff0050", "kind": "EnumConstantDecl", "name": "TEMPERATURE_FPGAEXT", "type": { @@ -46291,35 +45427,35 @@ ] }, { - "id": "0x7f0da6b8e3b8", + "id": "0x7feb10e03778", "kind": "IfStmt", "range": { "begin": { - "offset": 31003, - "line": 1019, + "offset": 30505, + "line": 1003, "col": 5, "tokLen": 2 }, "end": { - "offset": 31046, - "line": 1020, + "offset": 30548, + "line": 1004, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8e308", + "id": "0x7feb10e036c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31007, - "line": 1019, + "offset": 30509, + "line": 1003, "col": 9, "tokLen": 1 }, "end": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 } @@ -46331,16 +45467,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8e2f0", + "id": "0x7feb10e036b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31009, + "offset": 30511, "col": 11, "tokLen": 2 }, "end": { - "offset": 31009, + "offset": 30511, "col": 11, "tokLen": 2 } @@ -46352,16 +45488,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8e2d0", + "id": "0x7feb10e03690", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31009, + "offset": 30511, "col": 11, "tokLen": 2 }, "end": { - "offset": 31009, + "offset": 30511, "col": 11, "tokLen": 2 } @@ -46371,7 +45507,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -46382,16 +45518,16 @@ ] }, { - "id": "0x7f0da6b8d0a8", + "id": "0x7feb10e02468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31007, + "offset": 30509, "col": 9, "tokLen": 1 }, "end": { - "offset": 31007, + "offset": 30509, "col": 9, "tokLen": 1 } @@ -46399,11 +45535,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -46412,16 +45548,16 @@ } }, { - "id": "0x7f0da6b8e2b8", + "id": "0x7feb10e03678", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 }, "end": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 } @@ -46433,16 +45569,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8d0c8", + "id": "0x7feb10e02488", "kind": "StringLiteral", "range": { "begin": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 }, "end": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 } @@ -46458,33 +45594,33 @@ ] }, { - "id": "0x7f0da6b8e3a8", + "id": "0x7feb10e03768", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31033, - "line": 1020, + "offset": 30535, + "line": 1004, "col": 9, "tokLen": 6 }, "end": { - "offset": 31046, + "offset": 30548, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8e378", + "id": "0x7feb10e03738", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31040, + "offset": 30542, "col": 16, "tokLen": 4 }, "end": { - "offset": 31046, + "offset": 30548, "col": 22, "tokLen": 16 } @@ -46494,7 +45630,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf4f0", + "id": "0x37ff00a0", "kind": "EnumConstantDecl", "name": "TEMPERATURE_10GE", "type": { @@ -46507,35 +45643,35 @@ ] }, { - "id": "0x7f0da6b8f6e8", + "id": "0x7feb10e04aa8", "kind": "IfStmt", "range": { "begin": { - "offset": 31068, - "line": 1021, + "offset": 30570, + "line": 1005, "col": 5, "tokLen": 2 }, "end": { - "offset": 31111, - "line": 1022, + "offset": 30613, + "line": 1006, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8f638", + "id": "0x7feb10e049f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31072, - "line": 1021, + "offset": 30574, + "line": 1005, "col": 9, "tokLen": 1 }, "end": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 } @@ -46547,16 +45683,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8f620", + "id": "0x7feb10e049e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31074, + "offset": 30576, "col": 11, "tokLen": 2 }, "end": { - "offset": 31074, + "offset": 30576, "col": 11, "tokLen": 2 } @@ -46568,16 +45704,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8f600", + "id": "0x7feb10e049c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31074, + "offset": 30576, "col": 11, "tokLen": 2 }, "end": { - "offset": 31074, + "offset": 30576, "col": 11, "tokLen": 2 } @@ -46587,7 +45723,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -46598,16 +45734,16 @@ ] }, { - "id": "0x7f0da6b8e3d8", + "id": "0x7feb10e03798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31072, + "offset": 30574, "col": 9, "tokLen": 1 }, "end": { - "offset": 31072, + "offset": 30574, "col": 9, "tokLen": 1 } @@ -46615,11 +45751,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -46628,16 +45764,16 @@ } }, { - "id": "0x7f0da6b8f5e8", + "id": "0x7feb10e049a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 }, "end": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 } @@ -46649,16 +45785,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8e3f8", + "id": "0x7feb10e037b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 }, "end": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 } @@ -46674,33 +45810,33 @@ ] }, { - "id": "0x7f0da6b8f6d8", + "id": "0x7feb10e04a98", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31098, - "line": 1022, + "offset": 30600, + "line": 1006, "col": 9, "tokLen": 6 }, "end": { - "offset": 31111, + "offset": 30613, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8f6a8", + "id": "0x7feb10e04a68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31105, + "offset": 30607, "col": 16, "tokLen": 4 }, "end": { - "offset": 31111, + "offset": 30613, "col": 22, "tokLen": 16 } @@ -46710,7 +45846,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf540", + "id": "0x37ff00f0", "kind": "EnumConstantDecl", "name": "TEMPERATURE_DCDC", "type": { @@ -46723,35 +45859,35 @@ ] }, { - "id": "0x7f0da6b90a18", + "id": "0x7feb10e05dd8", "kind": "IfStmt", "range": { "begin": { - "offset": 31133, - "line": 1023, + "offset": 30635, + "line": 1007, "col": 5, "tokLen": 2 }, "end": { - "offset": 31176, - "line": 1024, + "offset": 30678, + "line": 1008, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b90968", + "id": "0x7feb10e05d28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31137, - "line": 1023, + "offset": 30639, + "line": 1007, "col": 9, "tokLen": 1 }, "end": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 } @@ -46763,16 +45899,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b90950", + "id": "0x7feb10e05d10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31139, + "offset": 30641, "col": 11, "tokLen": 2 }, "end": { - "offset": 31139, + "offset": 30641, "col": 11, "tokLen": 2 } @@ -46784,16 +45920,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b90930", + "id": "0x7feb10e05cf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31139, + "offset": 30641, "col": 11, "tokLen": 2 }, "end": { - "offset": 31139, + "offset": 30641, "col": 11, "tokLen": 2 } @@ -46803,7 +45939,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -46814,16 +45950,16 @@ ] }, { - "id": "0x7f0da6b8f708", + "id": "0x7feb10e04ac8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31137, + "offset": 30639, "col": 9, "tokLen": 1 }, "end": { - "offset": 31137, + "offset": 30639, "col": 9, "tokLen": 1 } @@ -46831,11 +45967,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -46844,16 +45980,16 @@ } }, { - "id": "0x7f0da6b90918", + "id": "0x7feb10e05cd8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 }, "end": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 } @@ -46865,16 +46001,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8f728", + "id": "0x7feb10e04ae8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 }, "end": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 } @@ -46890,33 +46026,33 @@ ] }, { - "id": "0x7f0da6b90a08", + "id": "0x7feb10e05dc8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31163, - "line": 1024, + "offset": 30665, + "line": 1008, "col": 9, "tokLen": 6 }, "end": { - "offset": 31176, + "offset": 30678, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b909d8", + "id": "0x7feb10e05d98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31170, + "offset": 30672, "col": 16, "tokLen": 4 }, "end": { - "offset": 31176, + "offset": 30678, "col": 22, "tokLen": 16 } @@ -46926,7 +46062,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf590", + "id": "0x37ff0140", "kind": "EnumConstantDecl", "name": "TEMPERATURE_SODL", "type": { @@ -46939,35 +46075,35 @@ ] }, { - "id": "0x7f0da6b91d48", + "id": "0x7feb10e07108", "kind": "IfStmt", "range": { "begin": { - "offset": 31198, - "line": 1025, + "offset": 30700, + "line": 1009, "col": 5, "tokLen": 2 }, "end": { - "offset": 31241, - "line": 1026, + "offset": 30743, + "line": 1010, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b91c98", + "id": "0x7feb10e07058", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31202, - "line": 1025, + "offset": 30704, + "line": 1009, "col": 9, "tokLen": 1 }, "end": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 } @@ -46979,16 +46115,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b91c80", + "id": "0x7feb10e07040", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31204, + "offset": 30706, "col": 11, "tokLen": 2 }, "end": { - "offset": 31204, + "offset": 30706, "col": 11, "tokLen": 2 } @@ -47000,16 +46136,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b91c60", + "id": "0x7feb10e07020", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31204, + "offset": 30706, "col": 11, "tokLen": 2 }, "end": { - "offset": 31204, + "offset": 30706, "col": 11, "tokLen": 2 } @@ -47019,7 +46155,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -47030,16 +46166,16 @@ ] }, { - "id": "0x7f0da6b90a38", + "id": "0x7feb10e05df8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31202, + "offset": 30704, "col": 9, "tokLen": 1 }, "end": { - "offset": 31202, + "offset": 30704, "col": 9, "tokLen": 1 } @@ -47047,11 +46183,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -47060,16 +46196,16 @@ } }, { - "id": "0x7f0da6b91c48", + "id": "0x7feb10e07008", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 }, "end": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 } @@ -47081,16 +46217,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b90a58", + "id": "0x7feb10e05e18", "kind": "StringLiteral", "range": { "begin": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 }, "end": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 } @@ -47106,33 +46242,33 @@ ] }, { - "id": "0x7f0da6b91d38", + "id": "0x7feb10e070f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31228, - "line": 1026, + "offset": 30730, + "line": 1010, "col": 9, "tokLen": 6 }, "end": { - "offset": 31241, + "offset": 30743, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b91d08", + "id": "0x7feb10e070c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31235, + "offset": 30737, "col": 16, "tokLen": 4 }, "end": { - "offset": 31241, + "offset": 30743, "col": 22, "tokLen": 16 } @@ -47142,7 +46278,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf5e0", + "id": "0x37ff0190", "kind": "EnumConstantDecl", "name": "TEMPERATURE_SODR", "type": { @@ -47155,35 +46291,35 @@ ] }, { - "id": "0x7f0da6b93078", + "id": "0x7feb10e08438", "kind": "IfStmt", "range": { "begin": { - "offset": 31263, - "line": 1027, + "offset": 30765, + "line": 1011, "col": 5, "tokLen": 2 }, "end": { - "offset": 31308, - "line": 1028, + "offset": 30810, + "line": 1012, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6b92fc8", + "id": "0x7feb10e08388", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31267, - "line": 1027, + "offset": 30769, + "line": 1011, "col": 9, "tokLen": 1 }, "end": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 } @@ -47195,16 +46331,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b92fb0", + "id": "0x7feb10e08370", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31269, + "offset": 30771, "col": 11, "tokLen": 2 }, "end": { - "offset": 31269, + "offset": 30771, "col": 11, "tokLen": 2 } @@ -47216,16 +46352,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b92f90", + "id": "0x7feb10e08350", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31269, + "offset": 30771, "col": 11, "tokLen": 2 }, "end": { - "offset": 31269, + "offset": 30771, "col": 11, "tokLen": 2 } @@ -47235,7 +46371,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -47246,16 +46382,16 @@ ] }, { - "id": "0x7f0da6b91d68", + "id": "0x7feb10e07128", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31267, + "offset": 30769, "col": 9, "tokLen": 1 }, "end": { - "offset": 31267, + "offset": 30769, "col": 9, "tokLen": 1 } @@ -47263,11 +46399,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -47276,16 +46412,16 @@ } }, { - "id": "0x7f0da6b92f78", + "id": "0x7feb10e08338", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 }, "end": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 } @@ -47297,16 +46433,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b91d88", + "id": "0x7feb10e07148", "kind": "StringLiteral", "range": { "begin": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 }, "end": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 } @@ -47322,33 +46458,33 @@ ] }, { - "id": "0x7f0da6b93068", + "id": "0x7feb10e08428", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31295, - "line": 1028, + "offset": 30797, + "line": 1012, "col": 9, "tokLen": 6 }, "end": { - "offset": 31308, + "offset": 30810, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6b93038", + "id": "0x7feb10e083f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31302, + "offset": 30804, "col": 16, "tokLen": 4 }, "end": { - "offset": 31308, + "offset": 30810, "col": 22, "tokLen": 17 } @@ -47358,7 +46494,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf630", + "id": "0x37ff01e0", "kind": "EnumConstantDecl", "name": "TEMPERATURE_FPGA2", "type": { @@ -47371,35 +46507,35 @@ ] }, { - "id": "0x7f0da6b943a8", + "id": "0x7feb10e09768", "kind": "IfStmt", "range": { "begin": { - "offset": 31331, - "line": 1029, + "offset": 30833, + "line": 1013, "col": 5, "tokLen": 2 }, "end": { - "offset": 31376, - "line": 1030, + "offset": 30878, + "line": 1014, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6b942f8", + "id": "0x7feb10e096b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31335, - "line": 1029, + "offset": 30837, + "line": 1013, "col": 9, "tokLen": 1 }, "end": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 } @@ -47411,16 +46547,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b942e0", + "id": "0x7feb10e096a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31337, + "offset": 30839, "col": 11, "tokLen": 2 }, "end": { - "offset": 31337, + "offset": 30839, "col": 11, "tokLen": 2 } @@ -47432,16 +46568,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b942c0", + "id": "0x7feb10e09680", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31337, + "offset": 30839, "col": 11, "tokLen": 2 }, "end": { - "offset": 31337, + "offset": 30839, "col": 11, "tokLen": 2 } @@ -47451,7 +46587,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -47462,16 +46598,16 @@ ] }, { - "id": "0x7f0da6b93098", + "id": "0x7feb10e08458", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31335, + "offset": 30837, "col": 9, "tokLen": 1 }, "end": { - "offset": 31335, + "offset": 30837, "col": 9, "tokLen": 1 } @@ -47479,11 +46615,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -47492,16 +46628,16 @@ } }, { - "id": "0x7f0da6b942a8", + "id": "0x7feb10e09668", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 }, "end": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 } @@ -47513,16 +46649,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b930b8", + "id": "0x7feb10e08478", "kind": "StringLiteral", "range": { "begin": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 }, "end": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 } @@ -47538,33 +46674,33 @@ ] }, { - "id": "0x7f0da6b94398", + "id": "0x7feb10e09758", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31363, - "line": 1030, + "offset": 30865, + "line": 1014, "col": 9, "tokLen": 6 }, "end": { - "offset": 31376, + "offset": 30878, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6b94368", + "id": "0x7feb10e09728", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31370, + "offset": 30872, "col": 16, "tokLen": 4 }, "end": { - "offset": 31376, + "offset": 30878, "col": 22, "tokLen": 17 } @@ -47574,7 +46710,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf680", + "id": "0x37ff0230", "kind": "EnumConstantDecl", "name": "TEMPERATURE_FPGA3", "type": { @@ -47587,35 +46723,35 @@ ] }, { - "id": "0x7f0da6b956d8", + "id": "0x7feb10e0aa98", "kind": "IfStmt", "range": { "begin": { - "offset": 31399, - "line": 1031, + "offset": 30901, + "line": 1015, "col": 5, "tokLen": 2 }, "end": { - "offset": 31445, - "line": 1032, + "offset": 30947, + "line": 1016, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6b95628", + "id": "0x7feb10e0a9e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31403, - "line": 1031, + "offset": 30905, + "line": 1015, "col": 9, "tokLen": 1 }, "end": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 } @@ -47627,16 +46763,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b95610", + "id": "0x7feb10e0a9d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31405, + "offset": 30907, "col": 11, "tokLen": 2 }, "end": { - "offset": 31405, + "offset": 30907, "col": 11, "tokLen": 2 } @@ -47648,16 +46784,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b955f0", + "id": "0x7feb10e0a9b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31405, + "offset": 30907, "col": 11, "tokLen": 2 }, "end": { - "offset": 31405, + "offset": 30907, "col": 11, "tokLen": 2 } @@ -47667,7 +46803,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -47678,16 +46814,16 @@ ] }, { - "id": "0x7f0da6b943c8", + "id": "0x7feb10e09788", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31403, + "offset": 30905, "col": 9, "tokLen": 1 }, "end": { - "offset": 31403, + "offset": 30905, "col": 9, "tokLen": 1 } @@ -47695,11 +46831,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -47708,16 +46844,16 @@ } }, { - "id": "0x7f0da6b955d8", + "id": "0x7feb10e0a998", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 }, "end": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 } @@ -47729,16 +46865,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b943e8", + "id": "0x7feb10e097a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 }, "end": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 } @@ -47754,33 +46890,33 @@ ] }, { - "id": "0x7f0da6b956c8", + "id": "0x7feb10e0aa88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31432, - "line": 1032, + "offset": 30934, + "line": 1016, "col": 9, "tokLen": 6 }, "end": { - "offset": 31445, + "offset": 30947, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6b95698", + "id": "0x7feb10e0aa58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31439, + "offset": 30941, "col": 16, "tokLen": 4 }, "end": { - "offset": 31445, + "offset": 30947, "col": 22, "tokLen": 13 } @@ -47790,7 +46926,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc00a0", + "id": "0x37ff0c50", "kind": "EnumConstantDecl", "name": "SLOW_ADC_TEMP", "type": { @@ -47803,17 +46939,17 @@ ] }, { - "id": "0x7f0da6b95d68", + "id": "0x7feb10e0b128", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 31464, - "line": 1033, + "offset": 30966, + "line": 1017, "col": 5, "tokLen": 5 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47825,16 +46961,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b95d50", + "id": "0x7feb10e0b110", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 31464, + "offset": 30966, "col": 5, "tokLen": 5 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47845,16 +46981,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b95d20", + "id": "0x7feb10e0b0e0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47872,16 +47008,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b95d08", + "id": "0x7feb10e0b0c8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47894,16 +47030,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b95ce0", + "id": "0x7feb10e0b0a0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47915,7 +47051,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -47924,16 +47060,16 @@ }, "inner": [ { - "id": "0x7f0da6b95cc0", + "id": "0x7feb10e0b080", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47943,9 +47079,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b95cb8", + "temp": "0x7feb10e0b078", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -47954,16 +47090,16 @@ }, "inner": [ { - "id": "0x7f0da6b95c88", + "id": "0x7feb10e0b048", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47980,16 +47116,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b95c70", + "id": "0x7feb10e0b030", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48003,16 +47139,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b95c58", + "id": "0x7feb10e0b018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48025,16 +47161,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b95c38", + "id": "0x7feb10e0aff8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48044,9 +47180,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b95c30", + "temp": "0x7feb10e0aff0", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -48055,16 +47191,16 @@ }, "inner": [ { - "id": "0x7f0da6b95bf8", + "id": "0x7feb10e0afb8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48077,16 +47213,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b95be0", + "id": "0x7feb10e0afa0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31504, + "offset": 31006, "col": 45, "tokLen": 1 }, "end": { - "offset": 31504, + "offset": 31006, "col": 45, "tokLen": 1 } @@ -48098,16 +47234,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b95bc0", + "id": "0x7feb10e0af80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31504, + "offset": 31006, "col": 45, "tokLen": 1 }, "end": { - "offset": 31504, + "offset": 31006, "col": 45, "tokLen": 1 } @@ -48117,7 +47253,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -48128,16 +47264,16 @@ ] }, { - "id": "0x7f0da6b95ba8", + "id": "0x7feb10e0af68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 } @@ -48149,16 +47285,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b95708", + "id": "0x7feb10e0aac8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 } @@ -48172,16 +47308,16 @@ ] }, { - "id": "0x7f0da6b95738", + "id": "0x7feb10e0aaf8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48189,11 +47325,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -48228,29 +47364,29 @@ ] } { - "id": "0x7f0da6b961f8", + "id": "0x7feb10e0b598", "kind": "FunctionDecl", "loc": { - "offset": 31541, + "offset": 31043, "file": "ToString.cpp", - "line": 1036, + "line": 1020, "col": 29, "tokLen": 8 }, "range": { "begin": { - "offset": 31513, + "offset": 31015, "col": 1, "tokLen": 8 }, "end": { - "offset": 31901, - "line": 1046, + "offset": 31403, + "line": 1030, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3789b8", + "previousDecl": "0x385a8fa8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -48264,13 +47400,13 @@ }, "inner": [ { - "id": "0x2cdc1230", + "id": "0x37ff1de0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::burstMode" }, "decl": { - "id": "0x2cdc1188", + "id": "0x37ff1d38", "kind": "EnumDecl", "name": "burstMode" } @@ -48278,22 +47414,22 @@ ] }, { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "loc": { - "offset": 31569, - "line": 1036, + "offset": 31071, + "line": 1020, "col": 57, "tokLen": 1 }, "range": { "begin": { - "offset": 31550, + "offset": 31052, "col": 38, "tokLen": 5 }, "end": { - "offset": 31569, + "offset": 31071, "col": 57, "tokLen": 1 } @@ -48305,52 +47441,52 @@ } }, { - "id": "0x7f0da6b9b730", + "id": "0x7feb10e10ad0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 31572, + "offset": 31074, "col": 60, "tokLen": 1 }, "end": { - "offset": 31901, - "line": 1046, + "offset": 31403, + "line": 1030, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b976f8", + "id": "0x7feb10e0ca98", "kind": "IfStmt", "range": { "begin": { - "offset": 31578, - "line": 1037, + "offset": 31080, + "line": 1021, "col": 5, "tokLen": 2 }, "end": { - "offset": 31626, - "line": 1038, + "offset": 31128, + "line": 1022, "col": 22, "tokLen": 14 } }, "inner": [ { - "id": "0x7f0da6b97648", + "id": "0x7feb10e0c9e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31582, - "line": 1037, + "offset": 31084, + "line": 1021, "col": 9, "tokLen": 1 }, "end": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 } @@ -48362,16 +47498,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b97630", + "id": "0x7feb10e0c9d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31584, + "offset": 31086, "col": 11, "tokLen": 2 }, "end": { - "offset": 31584, + "offset": 31086, "col": 11, "tokLen": 2 } @@ -48383,16 +47519,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b97610", + "id": "0x7feb10e0c9b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31584, + "offset": 31086, "col": 11, "tokLen": 2 }, "end": { - "offset": 31584, + "offset": 31086, "col": 11, "tokLen": 2 } @@ -48402,7 +47538,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -48413,16 +47549,16 @@ ] }, { - "id": "0x7f0da6b963e0", + "id": "0x7feb10e0b780", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31582, + "offset": 31084, "col": 9, "tokLen": 1 }, "end": { - "offset": 31582, + "offset": 31084, "col": 9, "tokLen": 1 } @@ -48430,11 +47566,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -48443,16 +47579,16 @@ } }, { - "id": "0x7f0da6b975f8", + "id": "0x7feb10e0c998", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 }, "end": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 } @@ -48464,16 +47600,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b96400", + "id": "0x7feb10e0b7a0", "kind": "StringLiteral", "range": { "begin": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 }, "end": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 } @@ -48489,33 +47625,33 @@ ] }, { - "id": "0x7f0da6b976e8", + "id": "0x7feb10e0ca88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31613, - "line": 1038, + "offset": 31115, + "line": 1022, "col": 9, "tokLen": 6 }, "end": { - "offset": 31626, + "offset": 31128, "col": 22, "tokLen": 14 } }, "inner": [ { - "id": "0x7f0da6b976b8", + "id": "0x7feb10e0ca58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31620, + "offset": 31122, "col": 16, "tokLen": 4 }, "end": { - "offset": 31626, + "offset": 31128, "col": 22, "tokLen": 14 } @@ -48525,7 +47661,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1250", + "id": "0x37ff1e00", "kind": "EnumConstantDecl", "name": "BURST_INTERNAL", "type": { @@ -48538,35 +47674,35 @@ ] }, { - "id": "0x7f0da6b98a28", + "id": "0x7feb10e0ddc8", "kind": "IfStmt", "range": { "begin": { - "offset": 31646, - "line": 1039, + "offset": 31148, + "line": 1023, "col": 5, "tokLen": 2 }, "end": { - "offset": 31694, - "line": 1040, + "offset": 31196, + "line": 1024, "col": 22, "tokLen": 14 } }, "inner": [ { - "id": "0x7f0da6b98978", + "id": "0x7feb10e0dd18", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31650, - "line": 1039, + "offset": 31152, + "line": 1023, "col": 9, "tokLen": 1 }, "end": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 } @@ -48578,16 +47714,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b98960", + "id": "0x7feb10e0dd00", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31652, + "offset": 31154, "col": 11, "tokLen": 2 }, "end": { - "offset": 31652, + "offset": 31154, "col": 11, "tokLen": 2 } @@ -48599,16 +47735,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b98940", + "id": "0x7feb10e0dce0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31652, + "offset": 31154, "col": 11, "tokLen": 2 }, "end": { - "offset": 31652, + "offset": 31154, "col": 11, "tokLen": 2 } @@ -48618,7 +47754,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -48629,16 +47765,16 @@ ] }, { - "id": "0x7f0da6b97718", + "id": "0x7feb10e0cab8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31650, + "offset": 31152, "col": 9, "tokLen": 1 }, "end": { - "offset": 31650, + "offset": 31152, "col": 9, "tokLen": 1 } @@ -48646,11 +47782,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -48659,16 +47795,16 @@ } }, { - "id": "0x7f0da6b98928", + "id": "0x7feb10e0dcc8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 }, "end": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 } @@ -48680,16 +47816,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b97738", + "id": "0x7feb10e0cad8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 }, "end": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 } @@ -48705,33 +47841,33 @@ ] }, { - "id": "0x7f0da6b98a18", + "id": "0x7feb10e0ddb8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31681, - "line": 1040, + "offset": 31183, + "line": 1024, "col": 9, "tokLen": 6 }, "end": { - "offset": 31694, + "offset": 31196, "col": 22, "tokLen": 14 } }, "inner": [ { - "id": "0x7f0da6b989e8", + "id": "0x7feb10e0dd88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31688, + "offset": 31190, "col": 16, "tokLen": 4 }, "end": { - "offset": 31694, + "offset": 31196, "col": 22, "tokLen": 14 } @@ -48741,7 +47877,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc12a0", + "id": "0x37ff1e50", "kind": "EnumConstantDecl", "name": "BURST_EXTERNAL", "type": { @@ -48754,35 +47890,35 @@ ] }, { - "id": "0x7f0da6b99d58", + "id": "0x7feb10e0f0f8", "kind": "IfStmt", "range": { "begin": { - "offset": 31714, - "line": 1041, + "offset": 31216, + "line": 1025, "col": 5, "tokLen": 2 }, "end": { - "offset": 31759, - "line": 1042, + "offset": 31261, + "line": 1026, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b99ca8", + "id": "0x7feb10e0f048", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31718, - "line": 1041, + "offset": 31220, + "line": 1025, "col": 9, "tokLen": 1 }, "end": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 } @@ -48794,16 +47930,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b99c90", + "id": "0x7feb10e0f030", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31720, + "offset": 31222, "col": 11, "tokLen": 2 }, "end": { - "offset": 31720, + "offset": 31222, "col": 11, "tokLen": 2 } @@ -48815,16 +47951,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b99c70", + "id": "0x7feb10e0f010", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31720, + "offset": 31222, "col": 11, "tokLen": 2 }, "end": { - "offset": 31720, + "offset": 31222, "col": 11, "tokLen": 2 } @@ -48834,7 +47970,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -48845,16 +47981,16 @@ ] }, { - "id": "0x7f0da6b98a48", + "id": "0x7feb10e0dde8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31718, + "offset": 31220, "col": 9, "tokLen": 1 }, "end": { - "offset": 31718, + "offset": 31220, "col": 9, "tokLen": 1 } @@ -48862,11 +47998,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -48875,16 +48011,16 @@ } }, { - "id": "0x7f0da6b99c58", + "id": "0x7feb10e0eff8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 }, "end": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 } @@ -48896,16 +48032,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b98a68", + "id": "0x7feb10e0de08", "kind": "StringLiteral", "range": { "begin": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 }, "end": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 } @@ -48921,33 +48057,33 @@ ] }, { - "id": "0x7f0da6b99d48", + "id": "0x7feb10e0f0e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31746, - "line": 1042, + "offset": 31248, + "line": 1026, "col": 9, "tokLen": 6 }, "end": { - "offset": 31759, + "offset": 31261, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b99d18", + "id": "0x7feb10e0f0b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31753, + "offset": 31255, "col": 16, "tokLen": 4 }, "end": { - "offset": 31759, + "offset": 31261, "col": 22, "tokLen": 19 } @@ -48957,7 +48093,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc12f0", + "id": "0x37ff1ea0", "kind": "EnumConstantDecl", "name": "CONTINUOUS_INTERNAL", "type": { @@ -48970,35 +48106,35 @@ ] }, { - "id": "0x7f0da6b9b088", + "id": "0x7feb10e10428", "kind": "IfStmt", "range": { "begin": { - "offset": 31784, - "line": 1043, + "offset": 31286, + "line": 1027, "col": 5, "tokLen": 2 }, "end": { - "offset": 31829, - "line": 1044, + "offset": 31331, + "line": 1028, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b9afd8", + "id": "0x7feb10e10378", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31788, - "line": 1043, + "offset": 31290, + "line": 1027, "col": 9, "tokLen": 1 }, "end": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 } @@ -49010,16 +48146,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b9afc0", + "id": "0x7feb10e10360", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31790, + "offset": 31292, "col": 11, "tokLen": 2 }, "end": { - "offset": 31790, + "offset": 31292, "col": 11, "tokLen": 2 } @@ -49031,16 +48167,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b9afa0", + "id": "0x7feb10e10340", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31790, + "offset": 31292, "col": 11, "tokLen": 2 }, "end": { - "offset": 31790, + "offset": 31292, "col": 11, "tokLen": 2 } @@ -49050,7 +48186,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -49061,16 +48197,16 @@ ] }, { - "id": "0x7f0da6b99d78", + "id": "0x7feb10e0f118", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31788, + "offset": 31290, "col": 9, "tokLen": 1 }, "end": { - "offset": 31788, + "offset": 31290, "col": 9, "tokLen": 1 } @@ -49078,11 +48214,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -49091,16 +48227,16 @@ } }, { - "id": "0x7f0da6b9af88", + "id": "0x7feb10e10328", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 }, "end": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 } @@ -49112,16 +48248,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b99d98", + "id": "0x7feb10e0f138", "kind": "StringLiteral", "range": { "begin": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 }, "end": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 } @@ -49137,33 +48273,33 @@ ] }, { - "id": "0x7f0da6b9b078", + "id": "0x7feb10e10418", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31816, - "line": 1044, + "offset": 31318, + "line": 1028, "col": 9, "tokLen": 6 }, "end": { - "offset": 31829, + "offset": 31331, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b9b048", + "id": "0x7feb10e103e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31823, + "offset": 31325, "col": 16, "tokLen": 4 }, "end": { - "offset": 31829, + "offset": 31331, "col": 22, "tokLen": 19 } @@ -49173,7 +48309,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1340", + "id": "0x37ff1ef0", "kind": "EnumConstantDecl", "name": "CONTINUOUS_EXTERNAL", "type": { @@ -49186,17 +48322,17 @@ ] }, { - "id": "0x7f0da6b9b718", + "id": "0x7feb10e10ab8", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 31854, - "line": 1045, + "offset": 31356, + "line": 1029, "col": 5, "tokLen": 5 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49208,16 +48344,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b9b700", + "id": "0x7feb10e10aa0", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 31854, + "offset": 31356, "col": 5, "tokLen": 5 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49228,16 +48364,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b9b6d0", + "id": "0x7feb10e10a70", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49255,16 +48391,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b9b6b8", + "id": "0x7feb10e10a58", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49277,16 +48413,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b9b690", + "id": "0x7feb10e10a30", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49298,7 +48434,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -49307,16 +48443,16 @@ }, "inner": [ { - "id": "0x7f0da6b9b670", + "id": "0x7feb10e10a10", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49326,9 +48462,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b9b668", + "temp": "0x7feb10e10a08", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -49337,16 +48473,16 @@ }, "inner": [ { - "id": "0x7f0da6b9b638", + "id": "0x7feb10e109d8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49363,16 +48499,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b9b620", + "id": "0x7feb10e109c0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49386,16 +48522,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b9b608", + "id": "0x7feb10e109a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49408,16 +48544,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b9b5e8", + "id": "0x7feb10e10988", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49427,9 +48563,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b9b5e0", + "temp": "0x7feb10e10980", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -49438,16 +48574,16 @@ }, "inner": [ { - "id": "0x7f0da6b9b5a8", + "id": "0x7feb10e10948", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49460,16 +48596,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b9b590", + "id": "0x7feb10e10930", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31895, + "offset": 31397, "col": 46, "tokLen": 1 }, "end": { - "offset": 31895, + "offset": 31397, "col": 46, "tokLen": 1 } @@ -49481,16 +48617,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b9b570", + "id": "0x7feb10e10910", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31895, + "offset": 31397, "col": 46, "tokLen": 1 }, "end": { - "offset": 31895, + "offset": 31397, "col": 46, "tokLen": 1 } @@ -49500,7 +48636,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -49511,16 +48647,16 @@ ] }, { - "id": "0x7f0da6b9b558", + "id": "0x7feb10e108f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 } @@ -49532,16 +48668,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b9b0b8", + "id": "0x7feb10e10458", "kind": "StringLiteral", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 } @@ -49555,16 +48691,16 @@ ] }, { - "id": "0x7f0da6b9b0e8", + "id": "0x7feb10e10488", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49572,11 +48708,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -49611,29 +48747,29 @@ ] } { - "id": "0x7f0da6b9b8e8", + "id": "0x7feb10e10c88", "kind": "FunctionDecl", "loc": { - "offset": 31939, + "offset": 31441, "file": "ToString.cpp", - "line": 1048, + "line": 1032, "col": 36, "tokLen": 8 }, "range": { "begin": { - "offset": 31904, + "offset": 31406, "col": 1, "tokLen": 8 }, "end": { - "offset": 32157, - "line": 1054, + "offset": 31659, + "line": 1038, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d378f08", + "previousDecl": "0x385a94f8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -49647,13 +48783,13 @@ }, "inner": [ { - "id": "0x2cdc14b0", + "id": "0x37ff2060", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingSourceType" }, "decl": { - "id": "0x2cdc1408", + "id": "0x37ff1fb8", "kind": "EnumDecl", "name": "timingSourceType" } @@ -49661,22 +48797,22 @@ ] }, { - "id": "0x7f0da6b9b810", + "id": "0x7feb10e10bb0", "kind": "ParmVarDecl", "loc": { - "offset": 31967, - "line": 1048, + "offset": 31469, + "line": 1032, "col": 64, "tokLen": 1 }, "range": { "begin": { - "offset": 31948, + "offset": 31450, "col": 45, "tokLen": 5 }, "end": { - "offset": 31967, + "offset": 31469, "col": 64, "tokLen": 1 } @@ -49688,52 +48824,52 @@ } }, { - "id": "0x7f0da6b5d808", + "id": "0x7feb10e13b88", "kind": "CompoundStmt", "range": { "begin": { - "offset": 31970, + "offset": 31472, "col": 67, "tokLen": 1 }, "end": { - "offset": 32157, - "line": 1054, + "offset": 31659, + "line": 1038, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b5bdf8", + "id": "0x7feb10e12178", "kind": "IfStmt", "range": { "begin": { - "offset": 31976, - "line": 1049, + "offset": 31478, + "line": 1033, "col": 5, "tokLen": 2 }, "end": { - "offset": 32018, - "line": 1050, + "offset": 31520, + "line": 1034, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b5bd48", + "id": "0x7feb10e120c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31980, - "line": 1049, + "offset": 31482, + "line": 1033, "col": 9, "tokLen": 1 }, "end": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 } @@ -49745,16 +48881,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b5bd30", + "id": "0x7feb10e120b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31982, + "offset": 31484, "col": 11, "tokLen": 2 }, "end": { - "offset": 31982, + "offset": 31484, "col": 11, "tokLen": 2 } @@ -49766,16 +48902,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b5bd10", + "id": "0x7feb10e12090", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31982, + "offset": 31484, "col": 11, "tokLen": 2 }, "end": { - "offset": 31982, + "offset": 31484, "col": 11, "tokLen": 2 } @@ -49785,7 +48921,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -49796,16 +48932,16 @@ ] }, { - "id": "0x7f0da6b9bad0", + "id": "0x7feb10e10e70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31980, + "offset": 31482, "col": 9, "tokLen": 1 }, "end": { - "offset": 31980, + "offset": 31482, "col": 9, "tokLen": 1 } @@ -49813,11 +48949,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b9b810", + "id": "0x7feb10e10bb0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -49826,16 +48962,16 @@ } }, { - "id": "0x7f0da6b5bcf8", + "id": "0x7feb10e12078", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 }, "end": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 } @@ -49847,16 +48983,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b9baf0", + "id": "0x7feb10e10e90", "kind": "StringLiteral", "range": { "begin": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 }, "end": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 } @@ -49872,33 +49008,33 @@ ] }, { - "id": "0x7f0da6b5bde8", + "id": "0x7feb10e12168", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32005, - "line": 1050, + "offset": 31507, + "line": 1034, "col": 9, "tokLen": 6 }, "end": { - "offset": 32018, + "offset": 31520, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b5bdb8", + "id": "0x7feb10e12138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32012, + "offset": 31514, "col": 16, "tokLen": 4 }, "end": { - "offset": 32018, + "offset": 31520, "col": 22, "tokLen": 15 } @@ -49908,7 +49044,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc14d0", + "id": "0x37ff2080", "kind": "EnumConstantDecl", "name": "TIMING_INTERNAL", "type": { @@ -49921,35 +49057,35 @@ ] }, { - "id": "0x7f0da6b5d128", + "id": "0x7feb10e134a8", "kind": "IfStmt", "range": { "begin": { - "offset": 32039, - "line": 1051, + "offset": 31541, + "line": 1035, "col": 5, "tokLen": 2 }, "end": { - "offset": 32081, - "line": 1052, + "offset": 31583, + "line": 1036, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b5d078", + "id": "0x7feb10e133f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32043, - "line": 1051, + "offset": 31545, + "line": 1035, "col": 9, "tokLen": 1 }, "end": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 } @@ -49961,16 +49097,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b5d060", + "id": "0x7feb10e133e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32045, + "offset": 31547, "col": 11, "tokLen": 2 }, "end": { - "offset": 32045, + "offset": 31547, "col": 11, "tokLen": 2 } @@ -49982,16 +49118,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b5d040", + "id": "0x7feb10e133c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32045, + "offset": 31547, "col": 11, "tokLen": 2 }, "end": { - "offset": 32045, + "offset": 31547, "col": 11, "tokLen": 2 } @@ -50001,7 +49137,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -50012,16 +49148,16 @@ ] }, { - "id": "0x7f0da6b5be18", + "id": "0x7feb10e12198", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32043, + "offset": 31545, "col": 9, "tokLen": 1 }, "end": { - "offset": 32043, + "offset": 31545, "col": 9, "tokLen": 1 } @@ -50029,11 +49165,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b9b810", + "id": "0x7feb10e10bb0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -50042,16 +49178,16 @@ } }, { - "id": "0x7f0da6b5d028", + "id": "0x7feb10e133a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 }, "end": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 } @@ -50063,16 +49199,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b5be38", + "id": "0x7feb10e121b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 }, "end": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 } @@ -50088,33 +49224,33 @@ ] }, { - "id": "0x7f0da6b5d118", + "id": "0x7feb10e13498", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32068, - "line": 1052, + "offset": 31570, + "line": 1036, "col": 9, "tokLen": 6 }, "end": { - "offset": 32081, + "offset": 31583, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b5d0e8", + "id": "0x7feb10e13468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32075, + "offset": 31577, "col": 16, "tokLen": 4 }, "end": { - "offset": 32081, + "offset": 31583, "col": 22, "tokLen": 15 } @@ -50124,7 +49260,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1520", + "id": "0x37ff20d0", "kind": "EnumConstantDecl", "name": "TIMING_EXTERNAL", "type": { @@ -50137,17 +49273,17 @@ ] }, { - "id": "0x7f0da6b5d7f0", + "id": "0x7feb10e13b70", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 32102, - "line": 1053, + "offset": 31604, + "line": 1037, "col": 5, "tokLen": 5 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50159,16 +49295,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b5d7d8", + "id": "0x7feb10e13b58", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 32102, + "offset": 31604, "col": 5, "tokLen": 5 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50179,16 +49315,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b5d7a8", + "id": "0x7feb10e13b28", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50206,16 +49342,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b5d790", + "id": "0x7feb10e13b10", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50228,16 +49364,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b5d768", + "id": "0x7feb10e13ae8", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50249,7 +49385,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -50258,16 +49394,16 @@ }, "inner": [ { - "id": "0x7f0da6b5d748", + "id": "0x7feb10e13ac8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50277,9 +49413,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b5d740", + "temp": "0x7feb10e13ac0", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -50288,16 +49424,16 @@ }, "inner": [ { - "id": "0x7f0da6b5d710", + "id": "0x7feb10e13a90", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50314,16 +49450,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b5d6f8", + "id": "0x7feb10e13a78", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50337,16 +49473,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b5d6e0", + "id": "0x7feb10e13a60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50359,16 +49495,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b5d6c0", + "id": "0x7feb10e13a40", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50378,9 +49514,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b5d6b8", + "temp": "0x7feb10e13a38", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -50389,16 +49525,16 @@ }, "inner": [ { - "id": "0x7f0da6b5d680", + "id": "0x7feb10e13a00", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50411,16 +49547,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b5d668", + "id": "0x7feb10e139e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32151, + "offset": 31653, "col": 54, "tokLen": 1 }, "end": { - "offset": 32151, + "offset": 31653, "col": 54, "tokLen": 1 } @@ -50432,16 +49568,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b5d648", + "id": "0x7feb10e139c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32151, + "offset": 31653, "col": 54, "tokLen": 1 }, "end": { - "offset": 32151, + "offset": 31653, "col": 54, "tokLen": 1 } @@ -50451,7 +49587,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -50462,16 +49598,16 @@ ] }, { - "id": "0x7f0da6b5d630", + "id": "0x7feb10e139b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 } @@ -50483,16 +49619,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b5d158", + "id": "0x7feb10e134d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 } @@ -50506,16 +49642,16 @@ ] }, { - "id": "0x7f0da6b5d190", + "id": "0x7feb10e13510", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50523,11 +49659,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b9b810", + "id": "0x7feb10e10bb0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -50562,29 +49698,29 @@ ] } { - "id": "0x7f0da6b5d9a8", + "id": "0x7feb10e13d28", "kind": "FunctionDecl", "loc": { - "offset": 32190, + "offset": 31692, "file": "ToString.cpp", - "line": 1056, + "line": 1040, "col": 31, "tokLen": 8 }, "range": { "begin": { - "offset": 32160, + "offset": 31662, "col": 1, "tokLen": 8 }, "end": { - "offset": 32600, - "line": 1070, + "offset": 32102, + "line": 1054, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d379458", + "previousDecl": "0x385a9a48", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -50598,13 +49734,13 @@ }, "inner": [ { - "id": "0x2cdc1610", + "id": "0x37ff21c0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::M3_GainCaps" }, "decl": { - "id": "0x2cdc1570", + "id": "0x37ff2120", "kind": "EnumDecl", "name": "M3_GainCaps" } @@ -50612,22 +49748,22 @@ ] }, { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "loc": { - "offset": 32218, - "line": 1056, + "offset": 31720, + "line": 1040, "col": 59, "tokLen": 1 }, "range": { "begin": { - "offset": 32199, + "offset": 31701, "col": 40, "tokLen": 5 }, "end": { - "offset": 32218, + "offset": 31720, "col": 59, "tokLen": 1 } @@ -50639,52 +49775,52 @@ } }, { - "id": "0x7f0da6b65530", + "id": "0x3873b730", "kind": "CompoundStmt", "range": { "begin": { - "offset": 32221, + "offset": 31723, "col": 62, "tokLen": 1 }, "end": { - "offset": 32600, - "line": 1070, + "offset": 32102, + "line": 1054, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b5ee98", + "id": "0x7feb10e15218", "kind": "IfStmt", "range": { "begin": { - "offset": 32227, - "line": 1057, + "offset": 31729, + "line": 1041, "col": 5, "tokLen": 2 }, "end": { - "offset": 32267, - "line": 1058, + "offset": 31769, + "line": 1042, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b5ede8", + "id": "0x7feb10e15168", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32231, - "line": 1057, + "offset": 31733, + "line": 1041, "col": 9, "tokLen": 1 }, "end": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 } @@ -50696,16 +49832,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b5edd0", + "id": "0x7feb10e15150", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32233, + "offset": 31735, "col": 11, "tokLen": 2 }, "end": { - "offset": 32233, + "offset": 31735, "col": 11, "tokLen": 2 } @@ -50717,16 +49853,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b5edb0", + "id": "0x7feb10e15130", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32233, + "offset": 31735, "col": 11, "tokLen": 2 }, "end": { - "offset": 32233, + "offset": 31735, "col": 11, "tokLen": 2 } @@ -50736,7 +49872,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -50747,16 +49883,16 @@ ] }, { - "id": "0x7f0da6b5db90", + "id": "0x7feb10e13f10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32231, + "offset": 31733, "col": 9, "tokLen": 1 }, "end": { - "offset": 32231, + "offset": 31733, "col": 9, "tokLen": 1 } @@ -50764,11 +49900,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -50777,16 +49913,16 @@ } }, { - "id": "0x7f0da6b5ed98", + "id": "0x7feb10e15118", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 }, "end": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 } @@ -50798,16 +49934,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b5dbb0", + "id": "0x7feb10e13f30", "kind": "StringLiteral", "range": { "begin": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 }, "end": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 } @@ -50823,33 +49959,33 @@ ] }, { - "id": "0x7f0da6b5ee88", + "id": "0x7feb10e15208", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32254, - "line": 1058, + "offset": 31756, + "line": 1042, "col": 9, "tokLen": 6 }, "end": { - "offset": 32267, + "offset": 31769, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b5ee58", + "id": "0x7feb10e151d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32261, + "offset": 31763, "col": 16, "tokLen": 4 }, "end": { - "offset": 32267, + "offset": 31769, "col": 22, "tokLen": 9 } @@ -50859,7 +49995,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc16b0", + "id": "0x37ff2260", "kind": "EnumConstantDecl", "name": "M3_C10pre", "type": { @@ -50872,35 +50008,35 @@ ] }, { - "id": "0x7f0da6b601c8", + "id": "0x7feb10e16548", "kind": "IfStmt", "range": { "begin": { - "offset": 32282, - "line": 1059, + "offset": 31784, + "line": 1043, "col": 5, "tokLen": 2 }, "end": { - "offset": 32321, - "line": 1060, + "offset": 31823, + "line": 1044, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b60118", + "id": "0x7feb10e16498", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32286, - "line": 1059, + "offset": 31788, + "line": 1043, "col": 9, "tokLen": 1 }, "end": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 } @@ -50912,16 +50048,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b60100", + "id": "0x7feb10e16480", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32288, + "offset": 31790, "col": 11, "tokLen": 2 }, "end": { - "offset": 32288, + "offset": 31790, "col": 11, "tokLen": 2 } @@ -50933,16 +50069,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b600e0", + "id": "0x7feb10e16460", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32288, + "offset": 31790, "col": 11, "tokLen": 2 }, "end": { - "offset": 32288, + "offset": 31790, "col": 11, "tokLen": 2 } @@ -50952,7 +50088,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -50963,16 +50099,16 @@ ] }, { - "id": "0x7f0da6b5eeb8", + "id": "0x7feb10e15238", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32286, + "offset": 31788, "col": 9, "tokLen": 1 }, "end": { - "offset": 32286, + "offset": 31788, "col": 9, "tokLen": 1 } @@ -50980,11 +50116,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -50993,16 +50129,16 @@ } }, { - "id": "0x7f0da6b600c8", + "id": "0x7feb10e16448", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 }, "end": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 } @@ -51014,16 +50150,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b5eed8", + "id": "0x7feb10e15258", "kind": "StringLiteral", "range": { "begin": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 }, "end": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 } @@ -51039,33 +50175,33 @@ ] }, { - "id": "0x7f0da6b601b8", + "id": "0x7feb10e16538", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32308, - "line": 1060, + "offset": 31810, + "line": 1044, "col": 9, "tokLen": 6 }, "end": { - "offset": 32321, + "offset": 31823, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b60188", + "id": "0x7feb10e16508", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32315, + "offset": 31817, "col": 16, "tokLen": 4 }, "end": { - "offset": 32321, + "offset": 31823, "col": 22, "tokLen": 8 } @@ -51075,7 +50211,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1780", + "id": "0x37ff2330", "kind": "EnumConstantDecl", "name": "M3_C15sh", "type": { @@ -51088,35 +50224,35 @@ ] }, { - "id": "0x7f0da6b614f8", + "id": "0x387376f8", "kind": "IfStmt", "range": { "begin": { - "offset": 32335, - "line": 1061, + "offset": 31837, + "line": 1045, "col": 5, "tokLen": 2 }, "end": { - "offset": 32374, - "line": 1062, + "offset": 31876, + "line": 1046, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b61448", + "id": "0x38737648", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32339, - "line": 1061, + "offset": 31841, + "line": 1045, "col": 9, "tokLen": 1 }, "end": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 } @@ -51128,16 +50264,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b61430", + "id": "0x38737630", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32341, + "offset": 31843, "col": 11, "tokLen": 2 }, "end": { - "offset": 32341, + "offset": 31843, "col": 11, "tokLen": 2 } @@ -51149,16 +50285,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b61410", + "id": "0x38737610", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32341, + "offset": 31843, "col": 11, "tokLen": 2 }, "end": { - "offset": 32341, + "offset": 31843, "col": 11, "tokLen": 2 } @@ -51168,7 +50304,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -51179,16 +50315,16 @@ ] }, { - "id": "0x7f0da6b601e8", + "id": "0x7feb10e16568", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32339, + "offset": 31841, "col": 9, "tokLen": 1 }, "end": { - "offset": 32339, + "offset": 31841, "col": 9, "tokLen": 1 } @@ -51196,11 +50332,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -51209,16 +50345,16 @@ } }, { - "id": "0x7f0da6b613f8", + "id": "0x387375f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 }, "end": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 } @@ -51230,16 +50366,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b60208", + "id": "0x7feb10e16588", "kind": "StringLiteral", "range": { "begin": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 }, "end": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 } @@ -51255,33 +50391,33 @@ ] }, { - "id": "0x7f0da6b614e8", + "id": "0x387376e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32361, - "line": 1062, + "offset": 31863, + "line": 1046, "col": 9, "tokLen": 6 }, "end": { - "offset": 32374, + "offset": 31876, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b614b8", + "id": "0x387376b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32368, + "offset": 31870, "col": 16, "tokLen": 4 }, "end": { - "offset": 32374, + "offset": 31876, "col": 22, "tokLen": 8 } @@ -51291,7 +50427,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1850", + "id": "0x37ff2400", "kind": "EnumConstantDecl", "name": "M3_C30sh", "type": { @@ -51304,35 +50440,35 @@ ] }, { - "id": "0x7f0da6b62828", + "id": "0x38738a28", "kind": "IfStmt", "range": { "begin": { - "offset": 32388, - "line": 1063, + "offset": 31890, + "line": 1047, "col": 5, "tokLen": 2 }, "end": { - "offset": 32427, - "line": 1064, + "offset": 31929, + "line": 1048, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b62778", + "id": "0x38738978", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32392, - "line": 1063, + "offset": 31894, + "line": 1047, "col": 9, "tokLen": 1 }, "end": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 } @@ -51344,16 +50480,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b62760", + "id": "0x38738960", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32394, + "offset": 31896, "col": 11, "tokLen": 2 }, "end": { - "offset": 32394, + "offset": 31896, "col": 11, "tokLen": 2 } @@ -51365,16 +50501,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b62740", + "id": "0x38738940", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32394, + "offset": 31896, "col": 11, "tokLen": 2 }, "end": { - "offset": 32394, + "offset": 31896, "col": 11, "tokLen": 2 } @@ -51384,7 +50520,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -51395,16 +50531,16 @@ ] }, { - "id": "0x7f0da6b61518", + "id": "0x38737718", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32392, + "offset": 31894, "col": 9, "tokLen": 1 }, "end": { - "offset": 32392, + "offset": 31894, "col": 9, "tokLen": 1 } @@ -51412,11 +50548,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -51425,16 +50561,16 @@ } }, { - "id": "0x7f0da6b62728", + "id": "0x38738928", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 }, "end": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 } @@ -51446,16 +50582,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b61538", + "id": "0x38737738", "kind": "StringLiteral", "range": { "begin": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 }, "end": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 } @@ -51471,33 +50607,33 @@ ] }, { - "id": "0x7f0da6b62818", + "id": "0x38738a18", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32414, - "line": 1064, + "offset": 31916, + "line": 1048, "col": 9, "tokLen": 6 }, "end": { - "offset": 32427, + "offset": 31929, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b627e8", + "id": "0x387389e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32421, + "offset": 31923, "col": 16, "tokLen": 4 }, "end": { - "offset": 32427, + "offset": 31929, "col": 22, "tokLen": 8 } @@ -51507,7 +50643,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1920", + "id": "0x37ff24d0", "kind": "EnumConstantDecl", "name": "M3_C50sh", "type": { @@ -51520,35 +50656,35 @@ ] }, { - "id": "0x7f0da6b63b58", + "id": "0x38739d58", "kind": "IfStmt", "range": { "begin": { - "offset": 32441, - "line": 1065, + "offset": 31943, + "line": 1049, "col": 5, "tokLen": 2 }, "end": { - "offset": 32483, - "line": 1066, + "offset": 31985, + "line": 1050, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6b63aa8", + "id": "0x38739ca8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32445, - "line": 1065, + "offset": 31947, + "line": 1049, "col": 9, "tokLen": 1 }, "end": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 } @@ -51560,16 +50696,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b63a90", + "id": "0x38739c90", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32447, + "offset": 31949, "col": 11, "tokLen": 2 }, "end": { - "offset": 32447, + "offset": 31949, "col": 11, "tokLen": 2 } @@ -51581,16 +50717,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b63a70", + "id": "0x38739c70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32447, + "offset": 31949, "col": 11, "tokLen": 2 }, "end": { - "offset": 32447, + "offset": 31949, "col": 11, "tokLen": 2 } @@ -51600,7 +50736,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -51611,16 +50747,16 @@ ] }, { - "id": "0x7f0da6b62848", + "id": "0x38738a48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32445, + "offset": 31947, "col": 9, "tokLen": 1 }, "end": { - "offset": 32445, + "offset": 31947, "col": 9, "tokLen": 1 } @@ -51628,11 +50764,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -51641,16 +50777,16 @@ } }, { - "id": "0x7f0da6b63a58", + "id": "0x38739c58", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 }, "end": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 } @@ -51662,16 +50798,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b62868", + "id": "0x38738a68", "kind": "StringLiteral", "range": { "begin": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 }, "end": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 } @@ -51687,33 +50823,33 @@ ] }, { - "id": "0x7f0da6b63b48", + "id": "0x38739d48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32470, - "line": 1066, + "offset": 31972, + "line": 1050, "col": 9, "tokLen": 6 }, "end": { - "offset": 32483, + "offset": 31985, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6b63b18", + "id": "0x38739d18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32477, + "offset": 31979, "col": 16, "tokLen": 4 }, "end": { - "offset": 32483, + "offset": 31985, "col": 22, "tokLen": 11 } @@ -51723,7 +50859,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc19f0", + "id": "0x37ff25a0", "kind": "EnumConstantDecl", "name": "M3_C225ACsh", "type": { @@ -51736,35 +50872,35 @@ ] }, { - "id": "0x7f0da6b64e88", + "id": "0x3873b088", "kind": "IfStmt", "range": { "begin": { - "offset": 32500, - "line": 1067, + "offset": 32002, + "line": 1051, "col": 5, "tokLen": 2 }, "end": { - "offset": 32540, - "line": 1068, + "offset": 32042, + "line": 1052, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b64dd8", + "id": "0x3873afd8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32504, - "line": 1067, + "offset": 32006, + "line": 1051, "col": 9, "tokLen": 1 }, "end": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 } @@ -51776,16 +50912,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b64dc0", + "id": "0x3873afc0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32506, + "offset": 32008, "col": 11, "tokLen": 2 }, "end": { - "offset": 32506, + "offset": 32008, "col": 11, "tokLen": 2 } @@ -51797,16 +50933,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b64da0", + "id": "0x3873afa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32506, + "offset": 32008, "col": 11, "tokLen": 2 }, "end": { - "offset": 32506, + "offset": 32008, "col": 11, "tokLen": 2 } @@ -51816,7 +50952,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -51827,16 +50963,16 @@ ] }, { - "id": "0x7f0da6b63b78", + "id": "0x38739d78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32504, + "offset": 32006, "col": 9, "tokLen": 1 }, "end": { - "offset": 32504, + "offset": 32006, "col": 9, "tokLen": 1 } @@ -51844,11 +50980,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -51857,16 +50993,16 @@ } }, { - "id": "0x7f0da6b64d88", + "id": "0x3873af88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 }, "end": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 } @@ -51878,16 +51014,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b63b98", + "id": "0x38739d98", "kind": "StringLiteral", "range": { "begin": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 }, "end": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 } @@ -51903,33 +51039,33 @@ ] }, { - "id": "0x7f0da6b64e78", + "id": "0x3873b078", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32527, - "line": 1068, + "offset": 32029, + "line": 1052, "col": 9, "tokLen": 6 }, "end": { - "offset": 32540, + "offset": 32042, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b64e48", + "id": "0x3873b048", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32534, + "offset": 32036, "col": 16, "tokLen": 4 }, "end": { - "offset": 32540, + "offset": 32042, "col": 22, "tokLen": 9 } @@ -51939,7 +51075,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1ac0", + "id": "0x37ff2670", "kind": "EnumConstantDecl", "name": "M3_C15pre", "type": { @@ -51952,17 +51088,17 @@ ] }, { - "id": "0x7f0da6b65518", + "id": "0x3873b718", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 32555, - "line": 1069, + "offset": 32057, + "line": 1053, "col": 5, "tokLen": 5 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -51974,16 +51110,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b65500", + "id": "0x3873b700", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 32555, + "offset": 32057, "col": 5, "tokLen": 5 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -51994,16 +51130,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b654d0", + "id": "0x3873b6d0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52021,16 +51157,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b654b8", + "id": "0x3873b6b8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52043,16 +51179,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b65490", + "id": "0x3873b690", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52064,7 +51200,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -52073,16 +51209,16 @@ }, "inner": [ { - "id": "0x7f0da6b65470", + "id": "0x3873b670", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52092,9 +51228,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b65468", + "temp": "0x3873b668", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -52103,16 +51239,16 @@ }, "inner": [ { - "id": "0x7f0da6b65438", + "id": "0x3873b638", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52129,16 +51265,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b65420", + "id": "0x3873b620", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52152,16 +51288,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b65408", + "id": "0x3873b608", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52174,16 +51310,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b653e8", + "id": "0x3873b5e8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52193,9 +51329,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b653e0", + "temp": "0x3873b5e0", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -52204,16 +51340,16 @@ }, "inner": [ { - "id": "0x7f0da6b653a8", + "id": "0x3873b5a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52226,16 +51362,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b65390", + "id": "0x3873b590", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32594, + "offset": 32096, "col": 44, "tokLen": 1 }, "end": { - "offset": 32594, + "offset": 32096, "col": 44, "tokLen": 1 } @@ -52247,16 +51383,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b65370", + "id": "0x3873b570", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32594, + "offset": 32096, "col": 44, "tokLen": 1 }, "end": { - "offset": 32594, + "offset": 32096, "col": 44, "tokLen": 1 } @@ -52266,7 +51402,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -52277,16 +51413,16 @@ ] }, { - "id": "0x7f0da6b65358", + "id": "0x3873b558", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 } @@ -52298,16 +51434,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b64eb8", + "id": "0x3873b0b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 } @@ -52321,16 +51457,16 @@ ] }, { - "id": "0x7f0da6b64ee8", + "id": "0x3873b0e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52338,11 +51474,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -52377,29 +51513,29 @@ ] } { - "id": "0x7f0da6b656f8", + "id": "0x3873b8f8", "kind": "FunctionDecl", "loc": { - "offset": 32634, + "offset": 32136, "file": "ToString.cpp", - "line": 1072, + "line": 1056, "col": 32, "tokLen": 8 }, "range": { "begin": { - "offset": 32603, + "offset": 32105, "col": 1, "tokLen": 8 }, "end": { - "offset": 32917, - "line": 1082, + "offset": 32419, + "line": 1066, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3799a8", + "previousDecl": "0x385a9f98", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -52413,13 +51549,13 @@ }, "inner": [ { - "id": "0x2cdc1c40", + "id": "0x37ff27f0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::portPosition" }, "decl": { - "id": "0x2cdc1ba0", + "id": "0x37ff2750", "kind": "EnumDecl", "name": "portPosition" } @@ -52427,22 +51563,22 @@ ] }, { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "loc": { - "offset": 32662, - "line": 1072, + "offset": 32164, + "line": 1056, "col": 60, "tokLen": 1 }, "range": { "begin": { - "offset": 32643, + "offset": 32145, "col": 41, "tokLen": 5 }, "end": { - "offset": 32662, + "offset": 32164, "col": 60, "tokLen": 1 } @@ -52454,52 +51590,52 @@ } }, { - "id": "0x7f0da6b6ac20", + "id": "0x38740e20", "kind": "CompoundStmt", "range": { "begin": { - "offset": 32665, + "offset": 32167, "col": 63, "tokLen": 1 }, "end": { - "offset": 32917, - "line": 1082, + "offset": 32419, + "line": 1066, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b66be8", + "id": "0x3873cde8", "kind": "IfStmt", "range": { "begin": { - "offset": 32671, - "line": 1073, + "offset": 32173, + "line": 1057, "col": 5, "tokLen": 2 }, "end": { - "offset": 32709, - "line": 1074, + "offset": 32211, + "line": 1058, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b66b38", + "id": "0x3873cd38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32675, - "line": 1073, + "offset": 32177, + "line": 1057, "col": 9, "tokLen": 1 }, "end": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 } @@ -52511,16 +51647,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b66b20", + "id": "0x3873cd20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32677, + "offset": 32179, "col": 11, "tokLen": 2 }, "end": { - "offset": 32677, + "offset": 32179, "col": 11, "tokLen": 2 } @@ -52532,16 +51668,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b66b00", + "id": "0x3873cd00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32677, + "offset": 32179, "col": 11, "tokLen": 2 }, "end": { - "offset": 32677, + "offset": 32179, "col": 11, "tokLen": 2 } @@ -52551,7 +51687,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -52562,16 +51698,16 @@ ] }, { - "id": "0x7f0da6b658e0", + "id": "0x3873bae0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32675, + "offset": 32177, "col": 9, "tokLen": 1 }, "end": { - "offset": 32675, + "offset": 32177, "col": 9, "tokLen": 1 } @@ -52579,11 +51715,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -52592,16 +51728,16 @@ } }, { - "id": "0x7f0da6b66ae8", + "id": "0x3873cce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 }, "end": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 } @@ -52613,16 +51749,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b65900", + "id": "0x3873bb00", "kind": "StringLiteral", "range": { "begin": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 }, "end": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 } @@ -52638,33 +51774,33 @@ ] }, { - "id": "0x7f0da6b66bd8", + "id": "0x3873cdd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32696, - "line": 1074, + "offset": 32198, + "line": 1058, "col": 9, "tokLen": 6 }, "end": { - "offset": 32709, + "offset": 32211, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b66ba8", + "id": "0x3873cda8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32703, + "offset": 32205, "col": 16, "tokLen": 4 }, "end": { - "offset": 32709, + "offset": 32211, "col": 22, "tokLen": 4 } @@ -52674,7 +51810,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1c60", + "id": "0x37ff2810", "kind": "EnumConstantDecl", "name": "LEFT", "type": { @@ -52687,35 +51823,35 @@ ] }, { - "id": "0x7f0da6b67f18", + "id": "0x3873e118", "kind": "IfStmt", "range": { "begin": { - "offset": 32719, - "line": 1075, + "offset": 32221, + "line": 1059, "col": 5, "tokLen": 2 }, "end": { - "offset": 32758, - "line": 1076, + "offset": 32260, + "line": 1060, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b67e68", + "id": "0x3873e068", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32723, - "line": 1075, + "offset": 32225, + "line": 1059, "col": 9, "tokLen": 1 }, "end": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 } @@ -52727,16 +51863,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b67e50", + "id": "0x3873e050", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32725, + "offset": 32227, "col": 11, "tokLen": 2 }, "end": { - "offset": 32725, + "offset": 32227, "col": 11, "tokLen": 2 } @@ -52748,16 +51884,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b67e30", + "id": "0x3873e030", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32725, + "offset": 32227, "col": 11, "tokLen": 2 }, "end": { - "offset": 32725, + "offset": 32227, "col": 11, "tokLen": 2 } @@ -52767,7 +51903,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -52778,16 +51914,16 @@ ] }, { - "id": "0x7f0da6b66c08", + "id": "0x3873ce08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32723, + "offset": 32225, "col": 9, "tokLen": 1 }, "end": { - "offset": 32723, + "offset": 32225, "col": 9, "tokLen": 1 } @@ -52795,11 +51931,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -52808,16 +51944,16 @@ } }, { - "id": "0x7f0da6b67e18", + "id": "0x3873e018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 }, "end": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 } @@ -52829,16 +51965,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b66c28", + "id": "0x3873ce28", "kind": "StringLiteral", "range": { "begin": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 }, "end": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 } @@ -52854,33 +51990,33 @@ ] }, { - "id": "0x7f0da6b67f08", + "id": "0x3873e108", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32745, - "line": 1076, + "offset": 32247, + "line": 1060, "col": 9, "tokLen": 6 }, "end": { - "offset": 32758, + "offset": 32260, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b67ed8", + "id": "0x3873e0d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32752, + "offset": 32254, "col": 16, "tokLen": 4 }, "end": { - "offset": 32758, + "offset": 32260, "col": 22, "tokLen": 5 } @@ -52890,7 +52026,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1cb0", + "id": "0x37ff2860", "kind": "EnumConstantDecl", "name": "RIGHT", "type": { @@ -52903,35 +52039,35 @@ ] }, { - "id": "0x7f0da6b69248", + "id": "0x3873f448", "kind": "IfStmt", "range": { "begin": { - "offset": 32769, - "line": 1077, + "offset": 32271, + "line": 1061, "col": 5, "tokLen": 2 }, "end": { - "offset": 32806, - "line": 1078, + "offset": 32308, + "line": 1062, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6b69198", + "id": "0x3873f398", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32773, - "line": 1077, + "offset": 32275, + "line": 1061, "col": 9, "tokLen": 1 }, "end": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 } @@ -52943,16 +52079,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b69180", + "id": "0x3873f380", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32775, + "offset": 32277, "col": 11, "tokLen": 2 }, "end": { - "offset": 32775, + "offset": 32277, "col": 11, "tokLen": 2 } @@ -52964,16 +52100,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b69160", + "id": "0x3873f360", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32775, + "offset": 32277, "col": 11, "tokLen": 2 }, "end": { - "offset": 32775, + "offset": 32277, "col": 11, "tokLen": 2 } @@ -52983,7 +52119,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -52994,16 +52130,16 @@ ] }, { - "id": "0x7f0da6b67f38", + "id": "0x3873e138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32773, + "offset": 32275, "col": 9, "tokLen": 1 }, "end": { - "offset": 32773, + "offset": 32275, "col": 9, "tokLen": 1 } @@ -53011,11 +52147,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -53024,16 +52160,16 @@ } }, { - "id": "0x7f0da6b69148", + "id": "0x3873f348", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 }, "end": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 } @@ -53045,16 +52181,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b67f58", + "id": "0x3873e158", "kind": "StringLiteral", "range": { "begin": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 }, "end": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 } @@ -53070,33 +52206,33 @@ ] }, { - "id": "0x7f0da6b69238", + "id": "0x3873f438", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32793, - "line": 1078, + "offset": 32295, + "line": 1062, "col": 9, "tokLen": 6 }, "end": { - "offset": 32806, + "offset": 32308, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6b69208", + "id": "0x3873f408", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32800, + "offset": 32302, "col": 16, "tokLen": 4 }, "end": { - "offset": 32806, + "offset": 32308, "col": 22, "tokLen": 3 } @@ -53106,7 +52242,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1d00", + "id": "0x37ff28b0", "kind": "EnumConstantDecl", "name": "TOP", "type": { @@ -53119,35 +52255,35 @@ ] }, { - "id": "0x7f0da6b6a578", + "id": "0x38740778", "kind": "IfStmt", "range": { "begin": { - "offset": 32815, - "line": 1079, + "offset": 32317, + "line": 1063, "col": 5, "tokLen": 2 }, "end": { - "offset": 32855, - "line": 1080, + "offset": 32357, + "line": 1064, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b6a4c8", + "id": "0x387406c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32819, - "line": 1079, + "offset": 32321, + "line": 1063, "col": 9, "tokLen": 1 }, "end": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 } @@ -53159,16 +52295,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6a4b0", + "id": "0x387406b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32821, + "offset": 32323, "col": 11, "tokLen": 2 }, "end": { - "offset": 32821, + "offset": 32323, "col": 11, "tokLen": 2 } @@ -53180,16 +52316,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6a490", + "id": "0x38740690", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32821, + "offset": 32323, "col": 11, "tokLen": 2 }, "end": { - "offset": 32821, + "offset": 32323, "col": 11, "tokLen": 2 } @@ -53199,7 +52335,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -53210,16 +52346,16 @@ ] }, { - "id": "0x7f0da6b69268", + "id": "0x3873f468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32819, + "offset": 32321, "col": 9, "tokLen": 1 }, "end": { - "offset": 32819, + "offset": 32321, "col": 9, "tokLen": 1 } @@ -53227,11 +52363,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -53240,16 +52376,16 @@ } }, { - "id": "0x7f0da6b6a478", + "id": "0x38740678", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 }, "end": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 } @@ -53261,16 +52397,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b69288", + "id": "0x3873f488", "kind": "StringLiteral", "range": { "begin": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 }, "end": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 } @@ -53286,33 +52422,33 @@ ] }, { - "id": "0x7f0da6b6a568", + "id": "0x38740768", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32842, - "line": 1080, + "offset": 32344, + "line": 1064, "col": 9, "tokLen": 6 }, "end": { - "offset": 32855, + "offset": 32357, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b6a538", + "id": "0x38740738", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32849, + "offset": 32351, "col": 16, "tokLen": 4 }, "end": { - "offset": 32855, + "offset": 32357, "col": 22, "tokLen": 6 } @@ -53322,7 +52458,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1d50", + "id": "0x37ff2900", "kind": "EnumConstantDecl", "name": "BOTTOM", "type": { @@ -53335,17 +52471,17 @@ ] }, { - "id": "0x7f0da6b6ac08", + "id": "0x38740e08", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 32867, - "line": 1081, + "offset": 32369, + "line": 1065, "col": 5, "tokLen": 5 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53357,16 +52493,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b6abf0", + "id": "0x38740df0", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 32867, + "offset": 32369, "col": 5, "tokLen": 5 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53377,16 +52513,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b6abc0", + "id": "0x38740dc0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53404,16 +52540,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6aba8", + "id": "0x38740da8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53426,16 +52562,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b6ab80", + "id": "0x38740d80", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53447,7 +52583,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -53456,16 +52592,16 @@ }, "inner": [ { - "id": "0x7f0da6b6ab60", + "id": "0x38740d60", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53475,9 +52611,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b6ab58", + "temp": "0x38740d58", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -53486,16 +52622,16 @@ }, "inner": [ { - "id": "0x7f0da6b6ab28", + "id": "0x38740d28", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53512,16 +52648,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6ab10", + "id": "0x38740d10", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53535,16 +52671,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b6aaf8", + "id": "0x38740cf8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53557,16 +52693,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6aad8", + "id": "0x38740cd8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53576,9 +52712,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b6aad0", + "temp": "0x38740cd0", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -53587,16 +52723,16 @@ }, "inner": [ { - "id": "0x7f0da6b6aa98", + "id": "0x38740c98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53609,16 +52745,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6aa80", + "id": "0x38740c80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32911, + "offset": 32413, "col": 49, "tokLen": 1 }, "end": { - "offset": 32911, + "offset": 32413, "col": 49, "tokLen": 1 } @@ -53630,16 +52766,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6aa60", + "id": "0x38740c60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32911, + "offset": 32413, "col": 49, "tokLen": 1 }, "end": { - "offset": 32911, + "offset": 32413, "col": 49, "tokLen": 1 } @@ -53649,7 +52785,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -53660,16 +52796,16 @@ ] }, { - "id": "0x7f0da6b6aa48", + "id": "0x38740c48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 } @@ -53681,16 +52817,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6a5a8", + "id": "0x387407a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 } @@ -53704,16 +52840,16 @@ ] }, { - "id": "0x7f0da6b6a5d8", + "id": "0x387407d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53721,11 +52857,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -53760,29 +52896,29 @@ ] } { - "id": "0x7f0da6b6add8", + "id": "0x38740fd8", "kind": "FunctionDecl", "loc": { - "offset": 32957, + "offset": 32459, "file": "ToString.cpp", - "line": 1084, + "line": 1068, "col": 38, "tokLen": 8 }, "range": { "begin": { - "offset": 32920, + "offset": 32422, "col": 1, "tokLen": 8 }, "end": { - "offset": 33380, - "line": 1095, + "offset": 32882, + "line": 1079, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d379ef8", + "previousDecl": "0x385aa4e8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -53796,13 +52932,13 @@ }, "inner": [ { - "id": "0x2cdc1fd0", + "id": "0x37ff2b80", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::streamingInterface" }, "decl": { - "id": "0x2cdc1f30", + "id": "0x37ff2ae0", "kind": "EnumDecl", "name": "streamingInterface" } @@ -53810,22 +52946,22 @@ ] }, { - "id": "0x7f0da6b6ad00", + "id": "0x38740f00", "kind": "ParmVarDecl", "loc": { - "offset": 32985, - "line": 1084, + "offset": 32487, + "line": 1068, "col": 66, "tokLen": 1 }, "range": { "begin": { - "offset": 32966, + "offset": 32468, "col": 47, "tokLen": 5 }, "end": { - "offset": 32985, + "offset": 32487, "col": 66, "tokLen": 1 } @@ -53837,55 +52973,55 @@ } }, { - "id": "0x7f0da6b6f708", + "id": "0x38745908", "kind": "CompoundStmt", "range": { "begin": { - "offset": 32988, + "offset": 32490, "col": 69, "tokLen": 1 }, "end": { - "offset": 33380, - "line": 1095, + "offset": 32882, + "line": 1079, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b6b0c0", + "id": "0x387412c0", "kind": "DeclStmt", "range": { "begin": { - "offset": 32994, - "line": 1085, + "offset": 32496, + "line": 1069, "col": 5, "tokLen": 3 }, "end": { - "offset": 33012, + "offset": 32514, "col": 23, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "loc": { - "offset": 33006, + "offset": 32508, "col": 17, "tokLen": 2 }, "range": { "begin": { - "offset": 32994, + "offset": 32496, "col": 5, "tokLen": 3 }, "end": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 } @@ -53895,21 +53031,21 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "init": "c", "inner": [ { - "id": "0x7f0da6b6b090", + "id": "0x38741290", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 }, "end": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 } @@ -53917,7 +53053,7 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "ctorType": { @@ -53927,16 +53063,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6b070", + "id": "0x38741270", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 }, "end": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 } @@ -53944,11 +53080,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6ad00", + "id": "0x38740f00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -53963,35 +53099,35 @@ ] }, { - "id": "0x7f0da6b6b610", + "id": "0x38741810", "kind": "IfStmt", "range": { "begin": { - "offset": 33018, - "line": 1086, + "offset": 32520, + "line": 1070, "col": 5, "tokLen": 2 }, "end": { - "offset": 33085, - "line": 1087, + "offset": 32587, + "line": 1071, "col": 30, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b6b320", + "id": "0x38741520", "kind": "BinaryOperator", "range": { "begin": { - "offset": 33022, - "line": 1086, + "offset": 32524, + "line": 1070, "col": 9, "tokLen": 1 }, "end": { - "offset": 33050, + "offset": 32552, "col": 37, "tokLen": 4 } @@ -54003,16 +53139,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b6b1b0", + "id": "0x387413b0", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 33022, + "offset": 32524, "col": 9, "tokLen": 1 }, "end": { - "offset": 33032, + "offset": 32534, "col": 19, "tokLen": 1 } @@ -54020,21 +53156,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b6b180", + "id": "0x38741380", "kind": "MemberExpr", "range": { "begin": { - "offset": 33022, + "offset": 32524, "col": 9, "tokLen": 1 }, "end": { - "offset": 33024, + "offset": 32526, "col": 11, "tokLen": 4 } @@ -54045,19 +53181,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8caab0", + "referencedMemberDecl": "0x37afc4e0", "inner": [ { - "id": "0x7f0da6b6b0d8", + "id": "0x387412d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33022, + "offset": 32524, "col": 9, "tokLen": 1 }, "end": { - "offset": 33022, + "offset": 32524, "col": 9, "tokLen": 1 } @@ -54065,11 +53201,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6ad00", + "id": "0x38740f00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -54080,16 +53216,16 @@ ] }, { - "id": "0x7f0da6b6b168", + "id": "0x38741368", "kind": "CharacterLiteral", "range": { "begin": { - "offset": 33029, + "offset": 32531, "col": 16, "tokLen": 3 }, "end": { - "offset": 33029, + "offset": 32531, "col": 16, "tokLen": 3 } @@ -54101,7 +53237,7 @@ "value": 44 }, { - "id": "0x7f0da6b6b1f8", + "id": "0x387413f8", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -54110,23 +53246,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b6b308", + "id": "0x38741508", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33037, + "offset": 32539, "col": 24, "tokLen": 3 }, "end": { - "offset": 33050, + "offset": 32552, "col": 37, "tokLen": 4 } @@ -54134,22 +53270,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b6b2d8", + "id": "0x387414d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33037, + "offset": 32539, "col": 24, "tokLen": 3 }, "end": { - "offset": 33050, + "offset": 32552, "col": 37, "tokLen": 4 } @@ -54157,17 +53293,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -54177,17 +53313,17 @@ ] }, { - "id": "0x7f0da6b6b568", + "id": "0x38741768", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 33064, - "line": 1087, + "offset": 32566, + "line": 1071, "col": 9, "tokLen": 2 }, "end": { - "offset": 33085, + "offset": 32587, "col": 30, "tokLen": 1 } @@ -54199,16 +53335,16 @@ "valueCategory": "lvalue", "inner": [ { - "id": "0x7f0da6b6b538", + "id": "0x38741738", "kind": "MemberExpr", "range": { "begin": { - "offset": 33064, + "offset": 32566, "col": 9, "tokLen": 2 }, "end": { - "offset": 33067, + "offset": 32569, "col": 12, "tokLen": 5 } @@ -54219,19 +53355,19 @@ "valueCategory": "prvalue", "name": "erase", "isArrow": false, - "referencedMemberDecl": "0x2c8c3390", + "referencedMemberDecl": "0x37af4dc0", "inner": [ { - "id": "0x7f0da6b6b340", + "id": "0x38741540", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33064, + "offset": 32566, "col": 9, "tokLen": 2 }, "end": { - "offset": 33064, + "offset": 32566, "col": 9, "tokLen": 2 } @@ -54239,33 +53375,33 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } ] }, { - "id": "0x7f0da6b6b4a0", + "id": "0x387416a0", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 }, "end": { - "offset": 33084, + "offset": 32586, "col": 29, "tokLen": 1 } @@ -54273,21 +53409,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b6b470", + "id": "0x38741670", "kind": "MemberExpr", "range": { "begin": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 }, "end": { - "offset": 33076, + "offset": 32578, "col": 21, "tokLen": 4 } @@ -54298,19 +53434,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8caab0", + "referencedMemberDecl": "0x37afc4e0", "inner": [ { - "id": "0x7f0da6b6b4d0", + "id": "0x387416d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 }, "end": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 } @@ -54322,16 +53458,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6b3c8", + "id": "0x387415c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 }, "end": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 } @@ -54339,17 +53475,17 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } @@ -54358,16 +53494,16 @@ ] }, { - "id": "0x7f0da6b6b458", + "id": "0x38741658", "kind": "CharacterLiteral", "range": { "begin": { - "offset": 33081, + "offset": 32583, "col": 26, "tokLen": 3 }, "end": { - "offset": 33081, + "offset": 32583, "col": 26, "tokLen": 3 } @@ -54379,7 +53515,7 @@ "value": 44 }, { - "id": "0x7f0da6b6b4e8", + "id": "0x387416e8", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -54388,14 +53524,14 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b6b5f0", + "id": "0x387417f0", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -54404,7 +53540,7 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } @@ -54413,35 +53549,35 @@ ] }, { - "id": "0x7f0da6b6c968", + "id": "0x38742b68", "kind": "IfStmt", "range": { "begin": { - "offset": 33092, - "line": 1088, + "offset": 32594, + "line": 1072, "col": 5, "tokLen": 2 }, "end": { - "offset": 33151, - "line": 1089, + "offset": 32653, + "line": 1073, "col": 42, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b6c8a0", + "id": "0x38742aa0", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33096, - "line": 1088, + "offset": 32598, + "line": 1072, "col": 9, "tokLen": 2 }, "end": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 } @@ -54453,16 +53589,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6c888", + "id": "0x38742a88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33099, + "offset": 32601, "col": 12, "tokLen": 2 }, "end": { - "offset": 33099, + "offset": 32601, "col": 12, "tokLen": 2 } @@ -54474,16 +53610,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6c868", + "id": "0x38742a68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33099, + "offset": 32601, "col": 12, "tokLen": 2 }, "end": { - "offset": 33099, + "offset": 32601, "col": 12, "tokLen": 2 } @@ -54493,7 +53629,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -54504,16 +53640,16 @@ ] }, { - "id": "0x7f0da6b6c838", + "id": "0x38742a38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33096, + "offset": 32598, "col": 9, "tokLen": 2 }, "end": { - "offset": 33096, + "offset": 32598, "col": 9, "tokLen": 2 } @@ -54526,16 +53662,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6b630", + "id": "0x38741830", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33096, + "offset": 32598, "col": 9, "tokLen": 2 }, "end": { - "offset": 33096, + "offset": 32598, "col": 9, "tokLen": 2 } @@ -54543,33 +53679,33 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } ] }, { - "id": "0x7f0da6b6c850", + "id": "0x38742a50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 }, "end": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 } @@ -54581,16 +53717,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6b650", + "id": "0x38741850", "kind": "StringLiteral", "range": { "begin": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 }, "end": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 } @@ -54606,33 +53742,33 @@ ] }, { - "id": "0x7f0da6b6c958", + "id": "0x38742b58", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33118, - "line": 1089, + "offset": 32620, + "line": 1073, "col": 9, "tokLen": 6 }, "end": { - "offset": 33151, + "offset": 32653, "col": 42, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b6c928", + "id": "0x38742b28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33125, + "offset": 32627, "col": 16, "tokLen": 4 }, "end": { - "offset": 33151, + "offset": 32653, "col": 42, "tokLen": 4 } @@ -54642,7 +53778,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2030", + "id": "0x37ff2be0", "kind": "EnumConstantDecl", "name": "NONE", "type": { @@ -54655,35 +53791,35 @@ ] }, { - "id": "0x7f0da6b6dcc8", + "id": "0x38743ec8", "kind": "IfStmt", "range": { "begin": { - "offset": 33161, - "line": 1090, + "offset": 32663, + "line": 1074, "col": 5, "tokLen": 2 }, "end": { - "offset": 33219, - "line": 1091, + "offset": 32721, + "line": 1075, "col": 42, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b6dc00", + "id": "0x38743e00", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33165, - "line": 1090, + "offset": 32667, + "line": 1074, "col": 9, "tokLen": 2 }, "end": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 } @@ -54695,16 +53831,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6dbe8", + "id": "0x38743de8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33168, + "offset": 32670, "col": 12, "tokLen": 2 }, "end": { - "offset": 33168, + "offset": 32670, "col": 12, "tokLen": 2 } @@ -54716,16 +53852,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6dbc8", + "id": "0x38743dc8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33168, + "offset": 32670, "col": 12, "tokLen": 2 }, "end": { - "offset": 33168, + "offset": 32670, "col": 12, "tokLen": 2 } @@ -54735,7 +53871,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -54746,16 +53882,16 @@ ] }, { - "id": "0x7f0da6b6db98", + "id": "0x38743d98", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33165, + "offset": 32667, "col": 9, "tokLen": 2 }, "end": { - "offset": 33165, + "offset": 32667, "col": 9, "tokLen": 2 } @@ -54768,16 +53904,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6c988", + "id": "0x38742b88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33165, + "offset": 32667, "col": 9, "tokLen": 2 }, "end": { - "offset": 33165, + "offset": 32667, "col": 9, "tokLen": 2 } @@ -54785,33 +53921,33 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } ] }, { - "id": "0x7f0da6b6dbb0", + "id": "0x38743db0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 }, "end": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 } @@ -54823,16 +53959,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6c9a8", + "id": "0x38742ba8", "kind": "StringLiteral", "range": { "begin": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 }, "end": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 } @@ -54848,33 +53984,33 @@ ] }, { - "id": "0x7f0da6b6dcb8", + "id": "0x38743eb8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33186, - "line": 1091, + "offset": 32688, + "line": 1075, "col": 9, "tokLen": 6 }, "end": { - "offset": 33219, + "offset": 32721, "col": 42, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b6dc88", + "id": "0x38743e88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33193, + "offset": 32695, "col": 16, "tokLen": 4 }, "end": { - "offset": 33219, + "offset": 32721, "col": 42, "tokLen": 16 } @@ -54884,7 +54020,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2100", + "id": "0x37ff2cb0", "kind": "EnumConstantDecl", "name": "LOW_LATENCY_LINK", "type": { @@ -54897,35 +54033,35 @@ ] }, { - "id": "0x7f0da6b6f028", + "id": "0x38745228", "kind": "IfStmt", "range": { "begin": { - "offset": 33241, - "line": 1092, + "offset": 32743, + "line": 1076, "col": 5, "tokLen": 2 }, "end": { - "offset": 33301, - "line": 1093, + "offset": 32803, + "line": 1077, "col": 42, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6b6ef60", + "id": "0x38745160", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33245, - "line": 1092, + "offset": 32747, + "line": 1076, "col": 9, "tokLen": 2 }, "end": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 } @@ -54937,16 +54073,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6ef48", + "id": "0x38745148", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33248, + "offset": 32750, "col": 12, "tokLen": 2 }, "end": { - "offset": 33248, + "offset": 32750, "col": 12, "tokLen": 2 } @@ -54958,16 +54094,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6ef28", + "id": "0x38745128", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33248, + "offset": 32750, "col": 12, "tokLen": 2 }, "end": { - "offset": 33248, + "offset": 32750, "col": 12, "tokLen": 2 } @@ -54977,7 +54113,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -54988,16 +54124,16 @@ ] }, { - "id": "0x7f0da6b6eef8", + "id": "0x387450f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33245, + "offset": 32747, "col": 9, "tokLen": 2 }, "end": { - "offset": 33245, + "offset": 32747, "col": 9, "tokLen": 2 } @@ -55010,16 +54146,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6dce8", + "id": "0x38743ee8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33245, + "offset": 32747, "col": 9, "tokLen": 2 }, "end": { - "offset": 33245, + "offset": 32747, "col": 9, "tokLen": 2 } @@ -55027,33 +54163,33 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } ] }, { - "id": "0x7f0da6b6ef10", + "id": "0x38745110", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 }, "end": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 } @@ -55065,16 +54201,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6dd08", + "id": "0x38743f08", "kind": "StringLiteral", "range": { "begin": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 }, "end": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 } @@ -55090,33 +54226,33 @@ ] }, { - "id": "0x7f0da6b6f018", + "id": "0x38745218", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33268, - "line": 1093, + "offset": 32770, + "line": 1077, "col": 9, "tokLen": 6 }, "end": { - "offset": 33301, + "offset": 32803, "col": 42, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6b6efe8", + "id": "0x387451e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33275, + "offset": 32777, "col": 16, "tokLen": 4 }, "end": { - "offset": 33301, + "offset": 32803, "col": 42, "tokLen": 13 } @@ -55126,7 +54262,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc21d0", + "id": "0x37ff2d80", "kind": "EnumConstantDecl", "name": "ETHERNET_10GB", "type": { @@ -55139,17 +54275,17 @@ ] }, { - "id": "0x7f0da6b6f6f0", + "id": "0x387458f0", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 33320, - "line": 1094, + "offset": 32822, + "line": 1078, "col": 5, "tokLen": 5 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55161,16 +54297,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b6f6d8", + "id": "0x387458d8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 33320, + "offset": 32822, "col": 5, "tokLen": 5 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55181,16 +54317,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b6f6a8", + "id": "0x387458a8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55208,16 +54344,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6f690", + "id": "0x38745890", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55230,16 +54366,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b6f668", + "id": "0x38745868", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55251,7 +54387,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -55260,16 +54396,16 @@ }, "inner": [ { - "id": "0x7f0da6b6f648", + "id": "0x38745848", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55279,9 +54415,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b6f640", + "temp": "0x38745840", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -55290,16 +54426,16 @@ }, "inner": [ { - "id": "0x7f0da6b6f610", + "id": "0x38745810", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55316,16 +54452,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6f5f8", + "id": "0x387457f8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55339,16 +54475,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b6f5e0", + "id": "0x387457e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55361,16 +54497,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6f5c0", + "id": "0x387457c0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55380,9 +54516,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b6f5b8", + "temp": "0x387457b8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -55391,16 +54527,16 @@ }, "inner": [ { - "id": "0x7f0da6b6f580", + "id": "0x38745780", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55413,16 +54549,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6f568", + "id": "0x38745768", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33374, + "offset": 32876, "col": 59, "tokLen": 1 }, "end": { - "offset": 33374, + "offset": 32876, "col": 59, "tokLen": 1 } @@ -55434,16 +54570,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6f548", + "id": "0x38745748", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33374, + "offset": 32876, "col": 59, "tokLen": 1 }, "end": { - "offset": 33374, + "offset": 32876, "col": 59, "tokLen": 1 } @@ -55453,7 +54589,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -55464,16 +54600,16 @@ ] }, { - "id": "0x7f0da6b6f530", + "id": "0x38745730", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 } @@ -55485,16 +54621,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6f058", + "id": "0x38745258", "kind": "StringLiteral", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 } @@ -55508,16 +54644,16 @@ ] }, { - "id": "0x7f0da6b6f090", + "id": "0x38745290", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55525,11 +54661,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6ad00", + "id": "0x38740f00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -55564,29 +54700,29 @@ ] } { - "id": "0x7f0da6b6f8c8", + "id": "0x38745ac8", "kind": "FunctionDecl", "loc": { - "offset": 33415, + "offset": 32917, "file": "ToString.cpp", - "line": 1097, + "line": 1081, "col": 33, "tokLen": 8 }, "range": { "begin": { - "offset": 33383, + "offset": 32885, "col": 1, "tokLen": 8 }, "end": { - "offset": 33605, - "line": 1103, + "offset": 33107, + "line": 1087, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37a448", + "previousDecl": "0x385aaa38", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -55600,13 +54736,13 @@ }, "inner": [ { - "id": "0x2cdc2390", + "id": "0x37ff2f40", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::vetoAlgorithm" }, "decl": { - "id": "0x2cdc22f0", + "id": "0x37ff2ea0", "kind": "EnumDecl", "name": "vetoAlgorithm" } @@ -55614,22 +54750,22 @@ ] }, { - "id": "0x7f0da6b6f7f0", + "id": "0x387459f0", "kind": "ParmVarDecl", "loc": { - "offset": 33443, - "line": 1097, + "offset": 32945, + "line": 1081, "col": 61, "tokLen": 1 }, "range": { "begin": { - "offset": 33424, + "offset": 32926, "col": 42, "tokLen": 5 }, "end": { - "offset": 33443, + "offset": 32945, "col": 61, "tokLen": 1 } @@ -55641,52 +54777,52 @@ } }, { - "id": "0x7f0da6b72790", + "id": "0x38748990", "kind": "CompoundStmt", "range": { "begin": { - "offset": 33446, + "offset": 32948, "col": 64, "tokLen": 1 }, "end": { - "offset": 33605, - "line": 1103, + "offset": 33107, + "line": 1087, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b70db8", + "id": "0x38746fb8", "kind": "IfStmt", "range": { "begin": { - "offset": 33452, - "line": 1098, + "offset": 32954, + "line": 1082, "col": 5, "tokLen": 2 }, "end": { - "offset": 33490, - "line": 1099, + "offset": 32992, + "line": 1083, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b70d08", + "id": "0x38746f08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33456, - "line": 1098, + "offset": 32958, + "line": 1082, "col": 9, "tokLen": 1 }, "end": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 } @@ -55698,16 +54834,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b70cf0", + "id": "0x38746ef0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33458, + "offset": 32960, "col": 11, "tokLen": 2 }, "end": { - "offset": 33458, + "offset": 32960, "col": 11, "tokLen": 2 } @@ -55719,16 +54855,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b70cd0", + "id": "0x38746ed0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33458, + "offset": 32960, "col": 11, "tokLen": 2 }, "end": { - "offset": 33458, + "offset": 32960, "col": 11, "tokLen": 2 } @@ -55738,7 +54874,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -55749,16 +54885,16 @@ ] }, { - "id": "0x7f0da6b6fab0", + "id": "0x38745cb0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33456, + "offset": 32958, "col": 9, "tokLen": 1 }, "end": { - "offset": 33456, + "offset": 32958, "col": 9, "tokLen": 1 } @@ -55766,11 +54902,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6f7f0", + "id": "0x387459f0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -55779,16 +54915,16 @@ } }, { - "id": "0x7f0da6b70cb8", + "id": "0x38746eb8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 }, "end": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 } @@ -55800,16 +54936,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6fad0", + "id": "0x38745cd0", "kind": "StringLiteral", "range": { "begin": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 }, "end": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 } @@ -55825,33 +54961,33 @@ ] }, { - "id": "0x7f0da6b70da8", + "id": "0x38746fa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33477, - "line": 1099, + "offset": 32979, + "line": 1083, "col": 9, "tokLen": 6 }, "end": { - "offset": 33490, + "offset": 32992, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b70d78", + "id": "0x38746f78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33484, + "offset": 32986, "col": 16, "tokLen": 4 }, "end": { - "offset": 33490, + "offset": 32992, "col": 22, "tokLen": 8 } @@ -55861,7 +54997,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc23b0", + "id": "0x37ff2f60", "kind": "EnumConstantDecl", "name": "ALG_HITS", "type": { @@ -55874,35 +55010,35 @@ ] }, { - "id": "0x7f0da6b720e8", + "id": "0x387482e8", "kind": "IfStmt", "range": { "begin": { - "offset": 33504, - "line": 1100, + "offset": 33006, + "line": 1084, "col": 5, "tokLen": 2 }, "end": { - "offset": 33541, - "line": 1101, + "offset": 33043, + "line": 1085, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b72038", + "id": "0x38748238", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33508, - "line": 1100, + "offset": 33010, + "line": 1084, "col": 9, "tokLen": 1 }, "end": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 } @@ -55914,16 +55050,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b72020", + "id": "0x38748220", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33510, + "offset": 33012, "col": 11, "tokLen": 2 }, "end": { - "offset": 33510, + "offset": 33012, "col": 11, "tokLen": 2 } @@ -55935,16 +55071,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b72000", + "id": "0x38748200", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33510, + "offset": 33012, "col": 11, "tokLen": 2 }, "end": { - "offset": 33510, + "offset": 33012, "col": 11, "tokLen": 2 } @@ -55954,7 +55090,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -55965,16 +55101,16 @@ ] }, { - "id": "0x7f0da6b70dd8", + "id": "0x38746fd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33508, + "offset": 33010, "col": 9, "tokLen": 1 }, "end": { - "offset": 33508, + "offset": 33010, "col": 9, "tokLen": 1 } @@ -55982,11 +55118,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6f7f0", + "id": "0x387459f0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -55995,16 +55131,16 @@ } }, { - "id": "0x7f0da6b71fe8", + "id": "0x387481e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 }, "end": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 } @@ -56016,16 +55152,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b70df8", + "id": "0x38746ff8", "kind": "StringLiteral", "range": { "begin": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 }, "end": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 } @@ -56041,33 +55177,33 @@ ] }, { - "id": "0x7f0da6b720d8", + "id": "0x387482d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33528, - "line": 1101, + "offset": 33030, + "line": 1085, "col": 9, "tokLen": 6 }, "end": { - "offset": 33541, + "offset": 33043, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b720a8", + "id": "0x387482a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33535, + "offset": 33037, "col": 16, "tokLen": 4 }, "end": { - "offset": 33541, + "offset": 33043, "col": 22, "tokLen": 7 } @@ -56077,7 +55213,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2400", + "id": "0x37ff2fb0", "kind": "EnumConstantDecl", "name": "ALG_RAW", "type": { @@ -56090,17 +55226,17 @@ ] }, { - "id": "0x7f0da6b72778", + "id": "0x38748978", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 33554, - "line": 1102, + "offset": 33056, + "line": 1086, "col": 5, "tokLen": 5 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56112,16 +55248,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b72760", + "id": "0x38748960", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 33554, + "offset": 33056, "col": 5, "tokLen": 5 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56132,16 +55268,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b72730", + "id": "0x38748930", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56159,16 +55295,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b72718", + "id": "0x38748918", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56181,16 +55317,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b726f0", + "id": "0x387488f0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56202,7 +55338,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -56211,16 +55347,16 @@ }, "inner": [ { - "id": "0x7f0da6b726d0", + "id": "0x387488d0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56230,9 +55366,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b726c8", + "temp": "0x387488c8", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -56241,16 +55377,16 @@ }, "inner": [ { - "id": "0x7f0da6b72698", + "id": "0x38748898", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56267,16 +55403,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b72680", + "id": "0x38748880", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56290,16 +55426,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b72668", + "id": "0x38748868", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56312,16 +55448,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b72648", + "id": "0x38748848", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56331,9 +55467,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b72640", + "temp": "0x38748840", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -56342,16 +55478,16 @@ }, "inner": [ { - "id": "0x7f0da6b72608", + "id": "0x38748808", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56364,16 +55500,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b725f0", + "id": "0x387487f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33599, + "offset": 33101, "col": 50, "tokLen": 1 }, "end": { - "offset": 33599, + "offset": 33101, "col": 50, "tokLen": 1 } @@ -56385,16 +55521,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b725d0", + "id": "0x387487d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33599, + "offset": 33101, "col": 50, "tokLen": 1 }, "end": { - "offset": 33599, + "offset": 33101, "col": 50, "tokLen": 1 } @@ -56404,7 +55540,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -56415,16 +55551,16 @@ ] }, { - "id": "0x7f0da6b725b8", + "id": "0x387487b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 } @@ -56436,16 +55572,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b72118", + "id": "0x38748318", "kind": "StringLiteral", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 } @@ -56459,16 +55595,16 @@ ] }, { - "id": "0x7f0da6b72148", + "id": "0x38748348", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56476,11 +55612,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6f7f0", + "id": "0x387459f0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -56515,29 +55651,29 @@ ] } { - "id": "0x7f0da6b72938", + "id": "0x38748b38", "kind": "FunctionDecl", "loc": { - "offset": 33635, + "offset": 33137, "file": "ToString.cpp", - "line": 1105, + "line": 1089, "col": 28, "tokLen": 8 }, "range": { "begin": { - "offset": 33608, + "offset": 33110, "col": 1, "tokLen": 8 }, "end": { - "offset": 34061, - "line": 1119, + "offset": 33563, + "line": 1103, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37a998", + "previousDecl": "0x385aaf88", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -56551,13 +55687,13 @@ }, "inner": [ { - "id": "0x2cdc24f0", + "id": "0x37ff30a0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::gainMode" }, "decl": { - "id": "0x2cdc2450", + "id": "0x37ff3000", "kind": "EnumDecl", "name": "gainMode" } @@ -56565,22 +55701,22 @@ ] }, { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "loc": { - "offset": 33663, - "line": 1105, + "offset": 33165, + "line": 1089, "col": 56, "tokLen": 1 }, "range": { "begin": { - "offset": 33644, + "offset": 33146, "col": 37, "tokLen": 5 }, "end": { - "offset": 33663, + "offset": 33165, "col": 56, "tokLen": 1 } @@ -56592,52 +55728,52 @@ } }, { - "id": "0x7f0da6b7a4c0", + "id": "0x387506c0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 33666, + "offset": 33168, "col": 59, "tokLen": 1 }, "end": { - "offset": 34061, - "line": 1119, + "offset": 33563, + "line": 1103, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b73e28", + "id": "0x3874a028", "kind": "IfStmt", "range": { "begin": { - "offset": 33672, - "line": 1106, + "offset": 33174, + "line": 1090, "col": 5, "tokLen": 2 }, "end": { - "offset": 33713, - "line": 1107, + "offset": 33215, + "line": 1091, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b73d78", + "id": "0x38749f78", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33676, - "line": 1106, + "offset": 33178, + "line": 1090, "col": 9, "tokLen": 1 }, "end": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 } @@ -56649,16 +55785,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b73d60", + "id": "0x38749f60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33678, + "offset": 33180, "col": 11, "tokLen": 2 }, "end": { - "offset": 33678, + "offset": 33180, "col": 11, "tokLen": 2 } @@ -56670,16 +55806,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b73d40", + "id": "0x38749f40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33678, + "offset": 33180, "col": 11, "tokLen": 2 }, "end": { - "offset": 33678, + "offset": 33180, "col": 11, "tokLen": 2 } @@ -56689,7 +55825,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -56700,16 +55836,16 @@ ] }, { - "id": "0x7f0da6b72b20", + "id": "0x38748d20", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33676, + "offset": 33178, "col": 9, "tokLen": 1 }, "end": { - "offset": 33676, + "offset": 33178, "col": 9, "tokLen": 1 } @@ -56717,11 +55853,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -56730,16 +55866,16 @@ } }, { - "id": "0x7f0da6b73d28", + "id": "0x38749f28", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 }, "end": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 } @@ -56751,16 +55887,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b72b40", + "id": "0x38748d40", "kind": "StringLiteral", "range": { "begin": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 }, "end": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 } @@ -56776,33 +55912,33 @@ ] }, { - "id": "0x7f0da6b73e18", + "id": "0x3874a018", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33700, - "line": 1107, + "offset": 33202, + "line": 1091, "col": 9, "tokLen": 6 }, "end": { - "offset": 33713, + "offset": 33215, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b73de8", + "id": "0x38749fe8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33707, + "offset": 33209, "col": 16, "tokLen": 4 }, "end": { - "offset": 33713, + "offset": 33215, "col": 22, "tokLen": 7 } @@ -56812,7 +55948,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2510", + "id": "0x37ff30c0", "kind": "EnumConstantDecl", "name": "DYNAMIC", "type": { @@ -56825,35 +55961,35 @@ ] }, { - "id": "0x7f0da6b75158", + "id": "0x3874b358", "kind": "IfStmt", "range": { "begin": { - "offset": 33726, - "line": 1108, + "offset": 33228, + "line": 1092, "col": 5, "tokLen": 2 }, "end": { - "offset": 33773, - "line": 1109, + "offset": 33275, + "line": 1093, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b750a8", + "id": "0x3874b2a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33730, - "line": 1108, + "offset": 33232, + "line": 1092, "col": 9, "tokLen": 1 }, "end": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 } @@ -56865,16 +56001,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b75090", + "id": "0x3874b290", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33732, + "offset": 33234, "col": 11, "tokLen": 2 }, "end": { - "offset": 33732, + "offset": 33234, "col": 11, "tokLen": 2 } @@ -56886,16 +56022,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b75070", + "id": "0x3874b270", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33732, + "offset": 33234, "col": 11, "tokLen": 2 }, "end": { - "offset": 33732, + "offset": 33234, "col": 11, "tokLen": 2 } @@ -56905,7 +56041,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -56916,16 +56052,16 @@ ] }, { - "id": "0x7f0da6b73e48", + "id": "0x3874a048", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33730, + "offset": 33232, "col": 9, "tokLen": 1 }, "end": { - "offset": 33730, + "offset": 33232, "col": 9, "tokLen": 1 } @@ -56933,11 +56069,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -56946,16 +56082,16 @@ } }, { - "id": "0x7f0da6b75058", + "id": "0x3874b258", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 }, "end": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 } @@ -56967,16 +56103,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b73e68", + "id": "0x3874a068", "kind": "StringLiteral", "range": { "begin": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 }, "end": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 } @@ -56992,33 +56128,33 @@ ] }, { - "id": "0x7f0da6b75148", + "id": "0x3874b348", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33760, - "line": 1109, + "offset": 33262, + "line": 1093, "col": 9, "tokLen": 6 }, "end": { - "offset": 33773, + "offset": 33275, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b75118", + "id": "0x3874b318", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33767, + "offset": 33269, "col": 16, "tokLen": 4 }, "end": { - "offset": 33773, + "offset": 33275, "col": 22, "tokLen": 15 } @@ -57028,7 +56164,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2560", + "id": "0x37ff3110", "kind": "EnumConstantDecl", "name": "FORCE_SWITCH_G1", "type": { @@ -57041,35 +56177,35 @@ ] }, { - "id": "0x7f0da6b76488", + "id": "0x3874c688", "kind": "IfStmt", "range": { "begin": { - "offset": 33794, - "line": 1110, + "offset": 33296, + "line": 1094, "col": 5, "tokLen": 2 }, "end": { - "offset": 33841, - "line": 1111, + "offset": 33343, + "line": 1095, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b763d8", + "id": "0x3874c5d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33798, - "line": 1110, + "offset": 33300, + "line": 1094, "col": 9, "tokLen": 1 }, "end": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 } @@ -57081,16 +56217,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b763c0", + "id": "0x3874c5c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33800, + "offset": 33302, "col": 11, "tokLen": 2 }, "end": { - "offset": 33800, + "offset": 33302, "col": 11, "tokLen": 2 } @@ -57102,16 +56238,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b763a0", + "id": "0x3874c5a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33800, + "offset": 33302, "col": 11, "tokLen": 2 }, "end": { - "offset": 33800, + "offset": 33302, "col": 11, "tokLen": 2 } @@ -57121,7 +56257,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -57132,16 +56268,16 @@ ] }, { - "id": "0x7f0da6b75178", + "id": "0x3874b378", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33798, + "offset": 33300, "col": 9, "tokLen": 1 }, "end": { - "offset": 33798, + "offset": 33300, "col": 9, "tokLen": 1 } @@ -57149,11 +56285,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -57162,16 +56298,16 @@ } }, { - "id": "0x7f0da6b76388", + "id": "0x3874c588", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 }, "end": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 } @@ -57183,16 +56319,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b75198", + "id": "0x3874b398", "kind": "StringLiteral", "range": { "begin": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 }, "end": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 } @@ -57208,33 +56344,33 @@ ] }, { - "id": "0x7f0da6b76478", + "id": "0x3874c678", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33828, - "line": 1111, + "offset": 33330, + "line": 1095, "col": 9, "tokLen": 6 }, "end": { - "offset": 33841, + "offset": 33343, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b76448", + "id": "0x3874c648", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33835, + "offset": 33337, "col": 16, "tokLen": 4 }, "end": { - "offset": 33841, + "offset": 33343, "col": 22, "tokLen": 15 } @@ -57244,7 +56380,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc25b0", + "id": "0x37ff3160", "kind": "EnumConstantDecl", "name": "FORCE_SWITCH_G2", "type": { @@ -57257,35 +56393,35 @@ ] }, { - "id": "0x7f0da6b777b8", + "id": "0x3874d9b8", "kind": "IfStmt", "range": { "begin": { - "offset": 33862, - "line": 1112, + "offset": 33364, + "line": 1096, "col": 5, "tokLen": 2 }, "end": { - "offset": 33901, - "line": 1113, + "offset": 33403, + "line": 1097, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b77708", + "id": "0x3874d908", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33866, - "line": 1112, + "offset": 33368, + "line": 1096, "col": 9, "tokLen": 1 }, "end": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 } @@ -57297,16 +56433,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b776f0", + "id": "0x3874d8f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33868, + "offset": 33370, "col": 11, "tokLen": 2 }, "end": { - "offset": 33868, + "offset": 33370, "col": 11, "tokLen": 2 } @@ -57318,16 +56454,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b776d0", + "id": "0x3874d8d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33868, + "offset": 33370, "col": 11, "tokLen": 2 }, "end": { - "offset": 33868, + "offset": 33370, "col": 11, "tokLen": 2 } @@ -57337,7 +56473,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -57348,16 +56484,16 @@ ] }, { - "id": "0x7f0da6b764a8", + "id": "0x3874c6a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33866, + "offset": 33368, "col": 9, "tokLen": 1 }, "end": { - "offset": 33866, + "offset": 33368, "col": 9, "tokLen": 1 } @@ -57365,11 +56501,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -57378,16 +56514,16 @@ } }, { - "id": "0x7f0da6b776b8", + "id": "0x3874d8b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 }, "end": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 } @@ -57399,16 +56535,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b764c8", + "id": "0x3874c6c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 }, "end": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 } @@ -57424,33 +56560,33 @@ ] }, { - "id": "0x7f0da6b777a8", + "id": "0x3874d9a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33888, - "line": 1113, + "offset": 33390, + "line": 1097, "col": 9, "tokLen": 6 }, "end": { - "offset": 33901, + "offset": 33403, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b77778", + "id": "0x3874d978", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33895, + "offset": 33397, "col": 16, "tokLen": 4 }, "end": { - "offset": 33901, + "offset": 33403, "col": 22, "tokLen": 6 } @@ -57460,7 +56596,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2600", + "id": "0x37ff31b0", "kind": "EnumConstantDecl", "name": "FIX_G1", "type": { @@ -57473,35 +56609,35 @@ ] }, { - "id": "0x7f0da6b78ae8", + "id": "0x3874ece8", "kind": "IfStmt", "range": { "begin": { - "offset": 33913, - "line": 1114, + "offset": 33415, + "line": 1098, "col": 5, "tokLen": 2 }, "end": { - "offset": 33952, - "line": 1115, + "offset": 33454, + "line": 1099, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b78a38", + "id": "0x3874ec38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33917, - "line": 1114, + "offset": 33419, + "line": 1098, "col": 9, "tokLen": 1 }, "end": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 } @@ -57513,16 +56649,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b78a20", + "id": "0x3874ec20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33919, + "offset": 33421, "col": 11, "tokLen": 2 }, "end": { - "offset": 33919, + "offset": 33421, "col": 11, "tokLen": 2 } @@ -57534,16 +56670,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b78a00", + "id": "0x3874ec00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33919, + "offset": 33421, "col": 11, "tokLen": 2 }, "end": { - "offset": 33919, + "offset": 33421, "col": 11, "tokLen": 2 } @@ -57553,7 +56689,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -57564,16 +56700,16 @@ ] }, { - "id": "0x7f0da6b777d8", + "id": "0x3874d9d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33917, + "offset": 33419, "col": 9, "tokLen": 1 }, "end": { - "offset": 33917, + "offset": 33419, "col": 9, "tokLen": 1 } @@ -57581,11 +56717,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -57594,16 +56730,16 @@ } }, { - "id": "0x7f0da6b789e8", + "id": "0x3874ebe8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 }, "end": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 } @@ -57615,16 +56751,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b777f8", + "id": "0x3874d9f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 }, "end": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 } @@ -57640,33 +56776,33 @@ ] }, { - "id": "0x7f0da6b78ad8", + "id": "0x3874ecd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33939, - "line": 1115, + "offset": 33441, + "line": 1099, "col": 9, "tokLen": 6 }, "end": { - "offset": 33952, + "offset": 33454, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b78aa8", + "id": "0x3874eca8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33946, + "offset": 33448, "col": 16, "tokLen": 4 }, "end": { - "offset": 33952, + "offset": 33454, "col": 22, "tokLen": 6 } @@ -57676,7 +56812,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2650", + "id": "0x37ff3200", "kind": "EnumConstantDecl", "name": "FIX_G2", "type": { @@ -57689,35 +56825,35 @@ ] }, { - "id": "0x7f0da6b79e18", + "id": "0x38750018", "kind": "IfStmt", "range": { "begin": { - "offset": 33964, - "line": 1116, + "offset": 33466, + "line": 1100, "col": 5, "tokLen": 2 }, "end": { - "offset": 34003, - "line": 1117, + "offset": 33505, + "line": 1101, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b79d68", + "id": "0x3874ff68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33968, - "line": 1116, + "offset": 33470, + "line": 1100, "col": 9, "tokLen": 1 }, "end": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 } @@ -57729,16 +56865,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b79d50", + "id": "0x3874ff50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33970, + "offset": 33472, "col": 11, "tokLen": 2 }, "end": { - "offset": 33970, + "offset": 33472, "col": 11, "tokLen": 2 } @@ -57750,16 +56886,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b79d30", + "id": "0x3874ff30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33970, + "offset": 33472, "col": 11, "tokLen": 2 }, "end": { - "offset": 33970, + "offset": 33472, "col": 11, "tokLen": 2 } @@ -57769,7 +56905,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -57780,16 +56916,16 @@ ] }, { - "id": "0x7f0da6b78b08", + "id": "0x3874ed08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33968, + "offset": 33470, "col": 9, "tokLen": 1 }, "end": { - "offset": 33968, + "offset": 33470, "col": 9, "tokLen": 1 } @@ -57797,11 +56933,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -57810,16 +56946,16 @@ } }, { - "id": "0x7f0da6b79d18", + "id": "0x3874ff18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 }, "end": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 } @@ -57831,16 +56967,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b78b28", + "id": "0x3874ed28", "kind": "StringLiteral", "range": { "begin": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 }, "end": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 } @@ -57856,33 +56992,33 @@ ] }, { - "id": "0x7f0da6b79e08", + "id": "0x38750008", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33990, - "line": 1117, + "offset": 33492, + "line": 1101, "col": 9, "tokLen": 6 }, "end": { - "offset": 34003, + "offset": 33505, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b79dd8", + "id": "0x3874ffd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33997, + "offset": 33499, "col": 16, "tokLen": 4 }, "end": { - "offset": 34003, + "offset": 33505, "col": 22, "tokLen": 6 } @@ -57892,7 +57028,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc26a0", + "id": "0x37ff3250", "kind": "EnumConstantDecl", "name": "FIX_G0", "type": { @@ -57905,17 +57041,17 @@ ] }, { - "id": "0x7f0da6b7a4a8", + "id": "0x387506a8", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 34015, - "line": 1118, + "offset": 33517, + "line": 1102, "col": 5, "tokLen": 5 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -57927,16 +57063,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b7a490", + "id": "0x38750690", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 34015, + "offset": 33517, "col": 5, "tokLen": 5 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -57947,16 +57083,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b7a460", + "id": "0x38750660", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -57974,16 +57110,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b7a448", + "id": "0x38750648", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -57996,16 +57132,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b7a420", + "id": "0x38750620", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -58017,7 +57153,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -58026,16 +57162,16 @@ }, "inner": [ { - "id": "0x7f0da6b7a400", + "id": "0x38750600", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -58045,9 +57181,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b7a3f8", + "temp": "0x387505f8", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -58056,16 +57192,16 @@ }, "inner": [ { - "id": "0x7f0da6b7a3c8", + "id": "0x387505c8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -58082,16 +57218,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b7a3b0", + "id": "0x387505b0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58105,16 +57241,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b7a398", + "id": "0x38750598", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58127,16 +57263,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b7a378", + "id": "0x38750578", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58146,9 +57282,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b7a370", + "temp": "0x38750570", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -58157,16 +57293,16 @@ }, "inner": [ { - "id": "0x7f0da6b7a338", + "id": "0x38750538", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58179,16 +57315,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7a320", + "id": "0x38750520", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34055, + "offset": 33557, "col": 45, "tokLen": 1 }, "end": { - "offset": 34055, + "offset": 33557, "col": 45, "tokLen": 1 } @@ -58200,16 +57336,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7a300", + "id": "0x38750500", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34055, + "offset": 33557, "col": 45, "tokLen": 1 }, "end": { - "offset": 34055, + "offset": 33557, "col": 45, "tokLen": 1 } @@ -58219,7 +57355,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -58230,16 +57366,16 @@ ] }, { - "id": "0x7f0da6b7a2e8", + "id": "0x387504e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 } @@ -58251,16 +57387,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b79e48", + "id": "0x38750048", "kind": "StringLiteral", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 } @@ -58274,16 +57410,16 @@ ] }, { - "id": "0x7f0da6b79e78", + "id": "0x38750078", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58291,11 +57427,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -58330,29 +57466,29 @@ ] } { - "id": "0x7f0da6b7a688", + "id": "0x38750888", "kind": "FunctionDecl", "loc": { - "offset": 34091, + "offset": 33593, "file": "ToString.cpp", - "line": 1121, + "line": 1105, "col": 28, "tokLen": 8 }, "range": { "begin": { - "offset": 34064, + "offset": 33566, "col": 1, "tokLen": 8 }, "end": { - "offset": 34280, - "line": 1127, + "offset": 33782, + "line": 1111, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37aee8", + "previousDecl": "0x385ab4d8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -58366,13 +57502,13 @@ }, "inner": [ { - "id": "0x2cdc2790", + "id": "0x37ff3340", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::polarity" }, "decl": { - "id": "0x2cdc26f0", + "id": "0x37ff32a0", "kind": "EnumDecl", "name": "polarity" } @@ -58380,22 +57516,22 @@ ] }, { - "id": "0x7f0da6b7a5b0", + "id": "0x387507b0", "kind": "ParmVarDecl", "loc": { - "offset": 34119, - "line": 1121, + "offset": 33621, + "line": 1105, "col": 56, "tokLen": 1 }, "range": { "begin": { - "offset": 34100, + "offset": 33602, "col": 37, "tokLen": 5 }, "end": { - "offset": 34119, + "offset": 33621, "col": 56, "tokLen": 1 } @@ -58407,52 +57543,52 @@ } }, { - "id": "0x7f0da6b3c560", + "id": "0x38753750", "kind": "CompoundStmt", "range": { "begin": { - "offset": 34122, + "offset": 33624, "col": 59, "tokLen": 1 }, "end": { - "offset": 34280, - "line": 1127, + "offset": 33782, + "line": 1111, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b3ab88", + "id": "0x38751d78", "kind": "IfStmt", "range": { "begin": { - "offset": 34128, - "line": 1122, + "offset": 33630, + "line": 1106, "col": 5, "tokLen": 2 }, "end": { - "offset": 34165, - "line": 1123, + "offset": 33667, + "line": 1107, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3aad8", + "id": "0x38751cc8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34132, - "line": 1122, + "offset": 33634, + "line": 1106, "col": 9, "tokLen": 1 }, "end": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 } @@ -58464,16 +57600,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3aac0", + "id": "0x38751cb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34134, + "offset": 33636, "col": 11, "tokLen": 2 }, "end": { - "offset": 34134, + "offset": 33636, "col": 11, "tokLen": 2 } @@ -58485,16 +57621,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3aaa0", + "id": "0x38751c90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34134, + "offset": 33636, "col": 11, "tokLen": 2 }, "end": { - "offset": 34134, + "offset": 33636, "col": 11, "tokLen": 2 } @@ -58504,7 +57640,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -58515,16 +57651,16 @@ ] }, { - "id": "0x7f0da6b7a870", + "id": "0x38750a70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34132, + "offset": 33634, "col": 9, "tokLen": 1 }, "end": { - "offset": 34132, + "offset": 33634, "col": 9, "tokLen": 1 } @@ -58532,11 +57668,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b7a5b0", + "id": "0x387507b0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -58545,16 +57681,16 @@ } }, { - "id": "0x7f0da6b3aa88", + "id": "0x38751c78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 }, "end": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 } @@ -58566,16 +57702,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7a890", + "id": "0x38750a90", "kind": "StringLiteral", "range": { "begin": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 }, "end": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 } @@ -58591,33 +57727,33 @@ ] }, { - "id": "0x7f0da6b3ab78", + "id": "0x38751d68", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34152, - "line": 1123, + "offset": 33654, + "line": 1107, "col": 9, "tokLen": 6 }, "end": { - "offset": 34165, + "offset": 33667, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3ab48", + "id": "0x38751d38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34159, + "offset": 33661, "col": 16, "tokLen": 4 }, "end": { - "offset": 34165, + "offset": 33667, "col": 22, "tokLen": 8 } @@ -58627,7 +57763,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc27b0", + "id": "0x37ff3360", "kind": "EnumConstantDecl", "name": "POSITIVE", "type": { @@ -58640,35 +57776,35 @@ ] }, { - "id": "0x7f0da6b3beb8", + "id": "0x387530a8", "kind": "IfStmt", "range": { "begin": { - "offset": 34179, - "line": 1124, + "offset": 33681, + "line": 1108, "col": 5, "tokLen": 2 }, "end": { - "offset": 34216, - "line": 1125, + "offset": 33718, + "line": 1109, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3be08", + "id": "0x38752ff8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34183, - "line": 1124, + "offset": 33685, + "line": 1108, "col": 9, "tokLen": 1 }, "end": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 } @@ -58680,16 +57816,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3bdf0", + "id": "0x38752fe0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34185, + "offset": 33687, "col": 11, "tokLen": 2 }, "end": { - "offset": 34185, + "offset": 33687, "col": 11, "tokLen": 2 } @@ -58701,16 +57837,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3bdd0", + "id": "0x38752fc0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34185, + "offset": 33687, "col": 11, "tokLen": 2 }, "end": { - "offset": 34185, + "offset": 33687, "col": 11, "tokLen": 2 } @@ -58720,7 +57856,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -58731,16 +57867,16 @@ ] }, { - "id": "0x7f0da6b3aba8", + "id": "0x38751d98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34183, + "offset": 33685, "col": 9, "tokLen": 1 }, "end": { - "offset": 34183, + "offset": 33685, "col": 9, "tokLen": 1 } @@ -58748,11 +57884,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b7a5b0", + "id": "0x387507b0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -58761,16 +57897,16 @@ } }, { - "id": "0x7f0da6b3bdb8", + "id": "0x38752fa8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 }, "end": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 } @@ -58782,16 +57918,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3abc8", + "id": "0x38751db8", "kind": "StringLiteral", "range": { "begin": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 }, "end": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 } @@ -58807,33 +57943,33 @@ ] }, { - "id": "0x7f0da6b3bea8", + "id": "0x38753098", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34203, - "line": 1125, + "offset": 33705, + "line": 1109, "col": 9, "tokLen": 6 }, "end": { - "offset": 34216, + "offset": 33718, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3be78", + "id": "0x38753068", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34210, + "offset": 33712, "col": 16, "tokLen": 4 }, "end": { - "offset": 34216, + "offset": 33718, "col": 22, "tokLen": 8 } @@ -58843,7 +57979,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2800", + "id": "0x37ff33b0", "kind": "EnumConstantDecl", "name": "NEGATIVE", "type": { @@ -58856,17 +57992,17 @@ ] }, { - "id": "0x7f0da6b3c548", + "id": "0x38753738", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 34230, - "line": 1126, + "offset": 33732, + "line": 1110, "col": 5, "tokLen": 5 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58878,16 +58014,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b3c530", + "id": "0x38753720", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 34230, + "offset": 33732, "col": 5, "tokLen": 5 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58898,16 +58034,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b3c500", + "id": "0x387536f0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58925,16 +58061,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b3c4e8", + "id": "0x387536d8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58947,16 +58083,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b3c4c0", + "id": "0x387536b0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58968,7 +58104,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -58977,16 +58113,16 @@ }, "inner": [ { - "id": "0x7f0da6b3c4a0", + "id": "0x38753690", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58996,9 +58132,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b3c498", + "temp": "0x38753688", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -59007,16 +58143,16 @@ }, "inner": [ { - "id": "0x7f0da6b3c468", + "id": "0x38753658", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -59033,16 +58169,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b3c450", + "id": "0x38753640", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59056,16 +58192,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b3c438", + "id": "0x38753628", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59078,16 +58214,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b3c418", + "id": "0x38753608", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59097,9 +58233,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b3c410", + "temp": "0x38753600", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -59108,16 +58244,16 @@ }, "inner": [ { - "id": "0x7f0da6b3c3d8", + "id": "0x387535c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59130,16 +58266,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3c3c0", + "id": "0x387535b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34274, + "offset": 33776, "col": 49, "tokLen": 1 }, "end": { - "offset": 34274, + "offset": 33776, "col": 49, "tokLen": 1 } @@ -59151,16 +58287,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3c3a0", + "id": "0x38753590", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34274, + "offset": 33776, "col": 49, "tokLen": 1 }, "end": { - "offset": 34274, + "offset": 33776, "col": 49, "tokLen": 1 } @@ -59170,7 +58306,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -59181,16 +58317,16 @@ ] }, { - "id": "0x7f0da6b3c388", + "id": "0x38753578", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 } @@ -59202,16 +58338,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3bee8", + "id": "0x387530d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 } @@ -59225,16 +58361,16 @@ ] }, { - "id": "0x7f0da6b3bf18", + "id": "0x38753108", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59242,11 +58378,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b7a5b0", + "id": "0x387507b0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -59281,29 +58417,29 @@ ] } { - "id": "0x7f0da6b3c708", + "id": "0x387538f8", "kind": "FunctionDecl", "loc": { - "offset": 34319, + "offset": 33821, "file": "ToString.cpp", - "line": 1129, + "line": 1113, "col": 37, "tokLen": 8 }, "range": { "begin": { - "offset": 34283, + "offset": 33785, "col": 1, "tokLen": 8 }, "end": { - "offset": 34518, - "line": 1135, + "offset": 34020, + "line": 1119, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37b438", + "previousDecl": "0x385aba28", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -59317,13 +58453,13 @@ }, "inner": [ { - "id": "0x2cdc28f0", + "id": "0x37ff34a0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingInfoDecoder" }, "decl": { - "id": "0x2cdc2850", + "id": "0x37ff3400", "kind": "EnumDecl", "name": "timingInfoDecoder" } @@ -59331,22 +58467,22 @@ ] }, { - "id": "0x7f0da6b3c630", + "id": "0x38753820", "kind": "ParmVarDecl", "loc": { - "offset": 34347, - "line": 1129, + "offset": 33849, + "line": 1113, "col": 65, "tokLen": 1 }, "range": { "begin": { - "offset": 34328, + "offset": 33830, "col": 46, "tokLen": 5 }, "end": { - "offset": 34347, + "offset": 33849, "col": 65, "tokLen": 1 } @@ -59358,52 +58494,52 @@ } }, { - "id": "0x7f0da6b3f608", + "id": "0x387567f8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 34350, + "offset": 33852, "col": 68, "tokLen": 1 }, "end": { - "offset": 34518, - "line": 1135, + "offset": 34020, + "line": 1119, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b3dbf8", + "id": "0x38754de8", "kind": "IfStmt", "range": { "begin": { - "offset": 34356, - "line": 1130, + "offset": 33858, + "line": 1114, "col": 5, "tokLen": 2 }, "end": { - "offset": 34398, - "line": 1131, + "offset": 33900, + "line": 1115, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3db48", + "id": "0x38754d38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34360, - "line": 1130, + "offset": 33862, + "line": 1114, "col": 9, "tokLen": 1 }, "end": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 } @@ -59415,16 +58551,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3db30", + "id": "0x38754d20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34362, + "offset": 33864, "col": 11, "tokLen": 2 }, "end": { - "offset": 34362, + "offset": 33864, "col": 11, "tokLen": 2 } @@ -59436,16 +58572,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3db10", + "id": "0x38754d00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34362, + "offset": 33864, "col": 11, "tokLen": 2 }, "end": { - "offset": 34362, + "offset": 33864, "col": 11, "tokLen": 2 } @@ -59455,7 +58591,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -59466,16 +58602,16 @@ ] }, { - "id": "0x7f0da6b3c8f0", + "id": "0x38753ae0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34360, + "offset": 33862, "col": 9, "tokLen": 1 }, "end": { - "offset": 34360, + "offset": 33862, "col": 9, "tokLen": 1 } @@ -59483,11 +58619,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3c630", + "id": "0x38753820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -59496,16 +58632,16 @@ } }, { - "id": "0x7f0da6b3daf8", + "id": "0x38754ce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 }, "end": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 } @@ -59517,16 +58653,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3c910", + "id": "0x38753b00", "kind": "StringLiteral", "range": { "begin": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 }, "end": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 } @@ -59542,33 +58678,33 @@ ] }, { - "id": "0x7f0da6b3dbe8", + "id": "0x38754dd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34385, - "line": 1131, + "offset": 33887, + "line": 1115, "col": 9, "tokLen": 6 }, "end": { - "offset": 34398, + "offset": 33900, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3dbb8", + "id": "0x38754da8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34392, + "offset": 33894, "col": 16, "tokLen": 4 }, "end": { - "offset": 34398, + "offset": 33900, "col": 22, "tokLen": 8 } @@ -59578,7 +58714,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2910", + "id": "0x37ff34c0", "kind": "EnumConstantDecl", "name": "SWISSFEL", "type": { @@ -59591,35 +58727,35 @@ ] }, { - "id": "0x7f0da6b3ef28", + "id": "0x38756118", "kind": "IfStmt", "range": { "begin": { - "offset": 34412, - "line": 1132, + "offset": 33914, + "line": 1116, "col": 5, "tokLen": 2 }, "end": { - "offset": 34451, - "line": 1133, + "offset": 33953, + "line": 1117, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b3ee78", + "id": "0x38756068", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34416, - "line": 1132, + "offset": 33918, + "line": 1116, "col": 9, "tokLen": 1 }, "end": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 } @@ -59631,16 +58767,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3ee60", + "id": "0x38756050", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34418, + "offset": 33920, "col": 11, "tokLen": 2 }, "end": { - "offset": 34418, + "offset": 33920, "col": 11, "tokLen": 2 } @@ -59652,16 +58788,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3ee40", + "id": "0x38756030", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34418, + "offset": 33920, "col": 11, "tokLen": 2 }, "end": { - "offset": 34418, + "offset": 33920, "col": 11, "tokLen": 2 } @@ -59671,7 +58807,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -59682,16 +58818,16 @@ ] }, { - "id": "0x7f0da6b3dc18", + "id": "0x38754e08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34416, + "offset": 33918, "col": 9, "tokLen": 1 }, "end": { - "offset": 34416, + "offset": 33918, "col": 9, "tokLen": 1 } @@ -59699,11 +58835,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3c630", + "id": "0x38753820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -59712,16 +58848,16 @@ } }, { - "id": "0x7f0da6b3ee28", + "id": "0x38756018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 }, "end": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 } @@ -59733,16 +58869,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3dc38", + "id": "0x38754e28", "kind": "StringLiteral", "range": { "begin": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 }, "end": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 } @@ -59758,33 +58894,33 @@ ] }, { - "id": "0x7f0da6b3ef18", + "id": "0x38756108", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34438, - "line": 1133, + "offset": 33940, + "line": 1117, "col": 9, "tokLen": 6 }, "end": { - "offset": 34451, + "offset": 33953, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b3eee8", + "id": "0x387560d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34445, + "offset": 33947, "col": 16, "tokLen": 4 }, "end": { - "offset": 34451, + "offset": 33953, "col": 22, "tokLen": 5 } @@ -59794,7 +58930,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2960", + "id": "0x37ff3510", "kind": "EnumConstantDecl", "name": "SHINE", "type": { @@ -59807,17 +58943,17 @@ ] }, { - "id": "0x7f0da6b3f5f0", + "id": "0x387567e0", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 34462, - "line": 1134, + "offset": 33964, + "line": 1118, "col": 5, "tokLen": 5 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59829,16 +58965,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b3f5d8", + "id": "0x387567c8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 34462, + "offset": 33964, "col": 5, "tokLen": 5 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59849,16 +58985,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b3f5a8", + "id": "0x38756798", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59876,16 +59012,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b3f590", + "id": "0x38756780", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59898,16 +59034,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b3f568", + "id": "0x38756758", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59919,7 +59055,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -59928,16 +59064,16 @@ }, "inner": [ { - "id": "0x7f0da6b3f548", + "id": "0x38756738", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59947,9 +59083,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b3f540", + "temp": "0x38756730", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -59958,16 +59094,16 @@ }, "inner": [ { - "id": "0x7f0da6b3f510", + "id": "0x38756700", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59984,16 +59120,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b3f4f8", + "id": "0x387566e8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60007,16 +59143,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b3f4e0", + "id": "0x387566d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60029,16 +59165,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b3f4c0", + "id": "0x387566b0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60048,9 +59184,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b3f4b8", + "temp": "0x387566a8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -60059,16 +59195,16 @@ }, "inner": [ { - "id": "0x7f0da6b3f480", + "id": "0x38756670", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60081,16 +59217,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3f468", + "id": "0x38756658", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34512, + "offset": 34014, "col": 55, "tokLen": 1 }, "end": { - "offset": 34512, + "offset": 34014, "col": 55, "tokLen": 1 } @@ -60102,16 +59238,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3f448", + "id": "0x38756638", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34512, + "offset": 34014, "col": 55, "tokLen": 1 }, "end": { - "offset": 34512, + "offset": 34014, "col": 55, "tokLen": 1 } @@ -60121,7 +59257,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -60132,16 +59268,16 @@ ] }, { - "id": "0x7f0da6b3f430", + "id": "0x38756620", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 } @@ -60153,16 +59289,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3ef58", + "id": "0x38756148", "kind": "StringLiteral", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 } @@ -60176,16 +59312,16 @@ ] }, { - "id": "0x7f0da6b3ef90", + "id": "0x38756180", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60193,11 +59329,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3c630", + "id": "0x38753820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -60232,29 +59368,29 @@ ] } { - "id": "0x7f0da6b3f7a8", + "id": "0x38756998", "kind": "FunctionDecl", "loc": { - "offset": 34554, + "offset": 34056, "file": "ToString.cpp", - "line": 1137, + "line": 1121, "col": 34, "tokLen": 8 }, "range": { "begin": { - "offset": 34521, + "offset": 34023, "col": 1, "tokLen": 8 }, "end": { - "offset": 34747, - "line": 1143, + "offset": 34249, + "line": 1127, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37b988", + "previousDecl": "0x385abf78", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -60268,13 +59404,13 @@ }, "inner": [ { - "id": "0x2cdc2a50", + "id": "0x37ff3600", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::collectionMode" }, "decl": { - "id": "0x2cdc29b0", + "id": "0x37ff3560", "kind": "EnumDecl", "name": "collectionMode" } @@ -60282,22 +59418,22 @@ ] }, { - "id": "0x7f0da6b3f6d8", + "id": "0x387568c8", "kind": "ParmVarDecl", "loc": { - "offset": 34582, - "line": 1137, + "offset": 34084, + "line": 1121, "col": 62, "tokLen": 1 }, "range": { "begin": { - "offset": 34563, + "offset": 34065, "col": 43, "tokLen": 5 }, "end": { - "offset": 34582, + "offset": 34084, "col": 62, "tokLen": 1 } @@ -60309,52 +59445,52 @@ } }, { - "id": "0x7f0da6b426a8", + "id": "0x7feb10dd8a58", "kind": "CompoundStmt", "range": { "begin": { - "offset": 34585, + "offset": 34087, "col": 65, "tokLen": 1 }, "end": { - "offset": 34747, - "line": 1143, + "offset": 34249, + "line": 1127, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b40c98", + "id": "0x7feb10dd7048", "kind": "IfStmt", "range": { "begin": { - "offset": 34591, - "line": 1138, + "offset": 34093, + "line": 1122, "col": 5, "tokLen": 2 }, "end": { - "offset": 34629, - "line": 1139, + "offset": 34131, + "line": 1123, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b40be8", + "id": "0x7feb10dd6f98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34595, - "line": 1138, + "offset": 34097, + "line": 1122, "col": 9, "tokLen": 1 }, "end": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 } @@ -60366,16 +59502,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b40bd0", + "id": "0x7feb10dd6f80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34597, + "offset": 34099, "col": 11, "tokLen": 2 }, "end": { - "offset": 34597, + "offset": 34099, "col": 11, "tokLen": 2 } @@ -60387,16 +59523,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b40bb0", + "id": "0x7feb10dd6f60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34597, + "offset": 34099, "col": 11, "tokLen": 2 }, "end": { - "offset": 34597, + "offset": 34099, "col": 11, "tokLen": 2 } @@ -60406,7 +59542,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -60417,16 +59553,16 @@ ] }, { - "id": "0x7f0da6b3f990", + "id": "0x38756b80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34595, + "offset": 34097, "col": 9, "tokLen": 1 }, "end": { - "offset": 34595, + "offset": 34097, "col": 9, "tokLen": 1 } @@ -60434,11 +59570,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3f6d8", + "id": "0x387568c8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -60447,16 +59583,16 @@ } }, { - "id": "0x7f0da6b40b98", + "id": "0x7feb10dd6f48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 }, "end": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 } @@ -60468,16 +59604,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3f9b0", + "id": "0x38756ba0", "kind": "StringLiteral", "range": { "begin": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 }, "end": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 } @@ -60493,33 +59629,33 @@ ] }, { - "id": "0x7f0da6b40c88", + "id": "0x7feb10dd7038", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34616, - "line": 1139, + "offset": 34118, + "line": 1123, "col": 9, "tokLen": 6 }, "end": { - "offset": 34629, + "offset": 34131, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b40c58", + "id": "0x7feb10dd7008", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34623, + "offset": 34125, "col": 16, "tokLen": 4 }, "end": { - "offset": 34629, + "offset": 34131, "col": 22, "tokLen": 4 } @@ -60529,7 +59665,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2a70", + "id": "0x37ff3620", "kind": "EnumConstantDecl", "name": "HOLE", "type": { @@ -60542,35 +59678,35 @@ ] }, { - "id": "0x7f0da6b41fc8", + "id": "0x7feb10dd8378", "kind": "IfStmt", "range": { "begin": { - "offset": 34639, - "line": 1140, + "offset": 34141, + "line": 1124, "col": 5, "tokLen": 2 }, "end": { - "offset": 34681, - "line": 1141, + "offset": 34183, + "line": 1125, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b41f18", + "id": "0x7feb10dd82c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34643, - "line": 1140, + "offset": 34145, + "line": 1124, "col": 9, "tokLen": 1 }, "end": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 } @@ -60582,16 +59718,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b41f00", + "id": "0x7feb10dd82b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34645, + "offset": 34147, "col": 11, "tokLen": 2 }, "end": { - "offset": 34645, + "offset": 34147, "col": 11, "tokLen": 2 } @@ -60603,16 +59739,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b41ee0", + "id": "0x7feb10dd8290", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34645, + "offset": 34147, "col": 11, "tokLen": 2 }, "end": { - "offset": 34645, + "offset": 34147, "col": 11, "tokLen": 2 } @@ -60622,7 +59758,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -60633,16 +59769,16 @@ ] }, { - "id": "0x7f0da6b40cb8", + "id": "0x7feb10dd7068", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34643, + "offset": 34145, "col": 9, "tokLen": 1 }, "end": { - "offset": 34643, + "offset": 34145, "col": 9, "tokLen": 1 } @@ -60650,11 +59786,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3f6d8", + "id": "0x387568c8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -60663,16 +59799,16 @@ } }, { - "id": "0x7f0da6b41ec8", + "id": "0x7feb10dd8278", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 }, "end": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 } @@ -60684,16 +59820,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b40cd8", + "id": "0x7feb10dd7088", "kind": "StringLiteral", "range": { "begin": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 }, "end": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 } @@ -60709,33 +59845,33 @@ ] }, { - "id": "0x7f0da6b41fb8", + "id": "0x7feb10dd8368", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34668, - "line": 1141, + "offset": 34170, + "line": 1125, "col": 9, "tokLen": 6 }, "end": { - "offset": 34681, + "offset": 34183, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b41f88", + "id": "0x7feb10dd8338", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34675, + "offset": 34177, "col": 16, "tokLen": 4 }, "end": { - "offset": 34681, + "offset": 34183, "col": 22, "tokLen": 8 } @@ -60745,7 +59881,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2ac0", + "id": "0x37ff3670", "kind": "EnumConstantDecl", "name": "ELECTRON", "type": { @@ -60758,17 +59894,17 @@ ] }, { - "id": "0x7f0da6b42690", + "id": "0x7feb10dd8a40", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 34695, - "line": 1142, + "offset": 34197, + "line": 1126, "col": 5, "tokLen": 5 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60780,16 +59916,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b42678", + "id": "0x7feb10dd8a28", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 34695, + "offset": 34197, "col": 5, "tokLen": 5 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60800,16 +59936,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b42648", + "id": "0x7feb10dd89f8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60827,16 +59963,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b42630", + "id": "0x7feb10dd89e0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60849,16 +59985,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b42608", + "id": "0x7feb10dd89b8", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60870,7 +60006,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -60879,16 +60015,16 @@ }, "inner": [ { - "id": "0x7f0da6b425e8", + "id": "0x7feb10dd8998", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60898,9 +60034,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b425e0", + "temp": "0x7feb10dd8990", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -60909,16 +60045,16 @@ }, "inner": [ { - "id": "0x7f0da6b425b0", + "id": "0x7feb10dd8960", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60935,16 +60071,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b42598", + "id": "0x7feb10dd8948", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -60958,16 +60094,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b42580", + "id": "0x7feb10dd8930", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -60980,16 +60116,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b42560", + "id": "0x7feb10dd8910", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -60999,9 +60135,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b42558", + "temp": "0x7feb10dd8908", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -61010,16 +60146,16 @@ }, "inner": [ { - "id": "0x7f0da6b42520", + "id": "0x7feb10dd88d0", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -61032,16 +60168,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b42508", + "id": "0x7feb10dd88b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34741, + "offset": 34243, "col": 51, "tokLen": 1 }, "end": { - "offset": 34741, + "offset": 34243, "col": 51, "tokLen": 1 } @@ -61053,16 +60189,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b424e8", + "id": "0x7feb10dd8898", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34741, + "offset": 34243, "col": 51, "tokLen": 1 }, "end": { - "offset": 34741, + "offset": 34243, "col": 51, "tokLen": 1 } @@ -61072,7 +60208,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -61083,16 +60219,16 @@ ] }, { - "id": "0x7f0da6b424d0", + "id": "0x7feb10dd8880", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 } @@ -61104,16 +60240,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b41ff8", + "id": "0x7feb10dd83a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 } @@ -61127,16 +60263,16 @@ ] }, { - "id": "0x7f0da6b42028", + "id": "0x7feb10dd83d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -61144,11 +60280,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3f6d8", + "id": "0x387568c8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -61183,29 +60319,29 @@ ] } { - "id": "0x7f0da6b427f8", + "id": "0x7feb10dd8ba8", "kind": "FunctionDecl", "loc": { - "offset": 34770, + "offset": 34272, "file": "ToString.cpp", - "line": 1145, + "line": 1129, "col": 21, "tokLen": 8 }, "range": { "begin": { - "offset": 34750, + "offset": 34252, "col": 1, "tokLen": 8 }, "end": { - "offset": 35199, - "line": 1154, + "offset": 34701, + "line": 1138, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37be88", + "previousDecl": "0x385ac478", "name": "StringTo", "mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -61219,7 +60355,7 @@ }, "inner": [ { - "id": "0x2bf08d50", + "id": "0x3713ad30", "kind": "BuiltinType", "type": { "qualType": "unsigned char" @@ -61228,22 +60364,22 @@ ] }, { - "id": "0x7f0da6b42738", + "id": "0x7feb10dd8ae8", "kind": "ParmVarDecl", "loc": { - "offset": 34798, - "line": 1145, + "offset": 34300, + "line": 1129, "col": 49, "tokLen": 1 }, "range": { "begin": { - "offset": 34779, + "offset": 34281, "col": 30, "tokLen": 5 }, "end": { - "offset": 34798, + "offset": 34300, "col": 49, "tokLen": 1 } @@ -61255,55 +60391,55 @@ } }, { - "id": "0x7f0da6b44c30", + "id": "0x7feb10ddafe0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 34801, + "offset": 34303, "col": 52, "tokLen": 1 }, "end": { - "offset": 35199, - "line": 1154, + "offset": 34701, + "line": 1138, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b42ce0", + "id": "0x7feb10dd9090", "kind": "DeclStmt", "range": { "begin": { - "offset": 34807, - "line": 1146, + "offset": 34309, + "line": 1130, "col": 5, "tokLen": 3 }, "end": { - "offset": 34861, + "offset": 34363, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b429c8", + "id": "0x7feb10dd8d78", "kind": "VarDecl", "loc": { - "offset": 34811, + "offset": 34313, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 34807, + "offset": 34309, "col": 5, "tokLen": 3 }, "end": { - "offset": 34859, + "offset": 34361, "col": 57, "tokLen": 2 } @@ -61316,16 +60452,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b42cb0", + "id": "0x7feb10dd9060", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34859, + "offset": 34361, "col": 57, "tokLen": 2 } @@ -61336,16 +60472,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b42c50", + "id": "0x7feb10dd9000", "kind": "BinaryOperator", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34847, + "offset": 34349, "col": 45, "tokLen": 4 } @@ -61357,16 +60493,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b42b10", + "id": "0x7feb10dd8ec0", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34829, + "offset": 34331, "col": 27, "tokLen": 1 } @@ -61374,21 +60510,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b42ae0", + "id": "0x7feb10dd8e90", "kind": "MemberExpr", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34820, + "offset": 34322, "col": 18, "tokLen": 4 } @@ -61399,19 +60535,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b42a30", + "id": "0x7feb10dd8de0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 } @@ -61419,11 +60555,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42738", + "id": "0x7feb10dd8ae8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -61434,16 +60570,16 @@ ] }, { - "id": "0x7f0da6b42b40", + "id": "0x7feb10dd8ef0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34825, + "offset": 34327, "col": 23, "tokLen": 4 }, "end": { - "offset": 34825, + "offset": 34327, "col": 23, "tokLen": 4 } @@ -61455,16 +60591,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b42ac0", + "id": "0x7feb10dd8e70", "kind": "StringLiteral", "range": { "begin": { - "offset": 34825, + "offset": 34327, "col": 23, "tokLen": 4 }, "end": { - "offset": 34825, + "offset": 34327, "col": 23, "tokLen": 4 } @@ -61478,7 +60614,7 @@ ] }, { - "id": "0x7f0da6b42b70", + "id": "0x7feb10dd8f20", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -61487,23 +60623,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b42c38", + "id": "0x7feb10dd8fe8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34834, + "offset": 34336, "col": 32, "tokLen": 3 }, "end": { - "offset": 34847, + "offset": 34349, "col": 45, "tokLen": 4 } @@ -61511,22 +60647,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b42c08", + "id": "0x7feb10dd8fb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34834, + "offset": 34336, "col": 32, "tokLen": 3 }, "end": { - "offset": 34847, + "offset": 34349, "col": 45, "tokLen": 4 } @@ -61534,17 +60670,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -61554,16 +60690,16 @@ ] }, { - "id": "0x7f0da6b42c70", + "id": "0x7feb10dd9020", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 34854, + "offset": 34356, "col": 52, "tokLen": 2 }, "end": { - "offset": 34854, + "offset": 34356, "col": 52, "tokLen": 2 } @@ -61575,16 +60711,16 @@ "value": "16" }, { - "id": "0x7f0da6b42c90", + "id": "0x7feb10dd9040", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 34859, + "offset": 34361, "col": 57, "tokLen": 2 }, "end": { - "offset": 34859, + "offset": 34361, "col": 57, "tokLen": 2 } @@ -61602,38 +60738,38 @@ ] }, { - "id": "0x7f0da6b42f48", + "id": "0x7feb10dd92f8", "kind": "DeclStmt", "range": { "begin": { - "offset": 34867, - "line": 1147, + "offset": 34369, + "line": 1131, "col": 5, "tokLen": 3 }, "end": { - "offset": 34906, + "offset": 34408, "col": 44, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b42d10", + "id": "0x7feb10dd90c0", "kind": "VarDecl", "loc": { - "offset": 34871, + "offset": 34373, "col": 9, "tokLen": 5 }, "range": { "begin": { - "offset": 34867, + "offset": 34369, "col": 5, "tokLen": 3 }, "end": { - "offset": 34905, + "offset": 34407, "col": 43, "tokLen": 1 } @@ -61646,16 +60782,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b42ee0", + "id": "0x7feb10dd9290", "kind": "CallExpr", "range": { "begin": { - "offset": 34879, + "offset": 34381, "col": 17, "tokLen": 3 }, "end": { - "offset": 34905, + "offset": 34407, "col": 43, "tokLen": 1 } @@ -61666,16 +60802,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b42ec8", + "id": "0x7feb10dd9278", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34879, + "offset": 34381, "col": 17, "tokLen": 3 }, "end": { - "offset": 34884, + "offset": 34386, "col": 22, "tokLen": 4 } @@ -61687,16 +60823,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b42e38", + "id": "0x7feb10dd91e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34879, + "offset": 34381, "col": 17, "tokLen": 3 }, "end": { - "offset": 34884, + "offset": 34386, "col": 22, "tokLen": 4 } @@ -61706,7 +60842,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c88ede0", + "id": "0x37ac0430", "kind": "FunctionDecl", "name": "stoi", "type": { @@ -61717,16 +60853,16 @@ ] }, { - "id": "0x7f0da6b42de8", + "id": "0x7feb10dd9198", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34889, + "offset": 34391, "col": 27, "tokLen": 1 }, "end": { - "offset": 34889, + "offset": 34391, "col": 27, "tokLen": 1 } @@ -61734,11 +60870,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42738", + "id": "0x7feb10dd8ae8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -61747,16 +60883,16 @@ } }, { - "id": "0x7f0da6b42f18", + "id": "0x7feb10dd92c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34892, + "offset": 34394, "col": 30, "tokLen": 7 }, "end": { - "offset": 34892, + "offset": 34394, "col": 30, "tokLen": 7 } @@ -61768,16 +60904,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b42e08", + "id": "0x7feb10dd91b8", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 34892, + "offset": 34394, "col": 30, "tokLen": 7 }, "end": { - "offset": 34892, + "offset": 34394, "col": 30, "tokLen": 7 } @@ -61790,16 +60926,16 @@ ] }, { - "id": "0x7f0da6b42f30", + "id": "0x7feb10dd92e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34901, + "offset": 34403, "col": 39, "tokLen": 4 }, "end": { - "offset": 34901, + "offset": 34403, "col": 39, "tokLen": 4 } @@ -61811,16 +60947,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b42e18", + "id": "0x7feb10dd91c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34901, + "offset": 34403, "col": 39, "tokLen": 4 }, "end": { - "offset": 34901, + "offset": 34403, "col": 39, "tokLen": 4 } @@ -61830,7 +60966,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b429c8", + "id": "0x7feb10dd8d78", "kind": "VarDecl", "name": "base", "type": { @@ -61847,36 +60983,36 @@ ] }, { - "id": "0x7f0da6b44b70", + "id": "0x7feb10ddaf20", "kind": "IfStmt", "range": { "begin": { - "offset": 34912, - "line": 1148, + "offset": 34414, + "line": 1132, "col": 5, "tokLen": 2 }, "end": { - "offset": 35157, - "line": 1152, + "offset": 34659, + "line": 1136, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b432f8", + "id": "0x7feb10dd96a8", "kind": "BinaryOperator", "range": { "begin": { - "offset": 34916, - "line": 1148, + "offset": 34418, + "line": 1132, "col": 9, "tokLen": 5 }, "end": { - "offset": 35013, - "line": 1149, + "offset": 34515, + "line": 1133, "col": 51, "tokLen": 1 } @@ -61888,17 +61024,17 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6b43140", + "id": "0x7feb10dd94f0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 34916, - "line": 1148, + "offset": 34418, + "line": 1132, "col": 9, "tokLen": 5 }, "end": { - "offset": 34958, + "offset": 34460, "col": 51, "tokLen": 1 } @@ -61910,16 +61046,16 @@ "opcode": "<", "inner": [ { - "id": "0x7f0da6b43110", + "id": "0x7feb10dd94c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34916, + "offset": 34418, "col": 9, "tokLen": 5 }, "end": { - "offset": 34916, + "offset": 34418, "col": 9, "tokLen": 5 } @@ -61931,16 +61067,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b42f60", + "id": "0x7feb10dd9310", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34916, + "offset": 34418, "col": 9, "tokLen": 5 }, "end": { - "offset": 34916, + "offset": 34418, "col": 9, "tokLen": 5 } @@ -61950,7 +61086,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42d10", + "id": "0x7feb10dd90c0", "kind": "VarDecl", "name": "value", "type": { @@ -61961,16 +61097,16 @@ ] }, { - "id": "0x7f0da6b43128", + "id": "0x7feb10dd94d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34924, + "offset": 34426, "col": 17, "tokLen": 3 }, "end": { - "offset": 34958, + "offset": 34460, "col": 51, "tokLen": 1 } @@ -61982,16 +61118,16 @@ "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b430f0", + "id": "0x7feb10dd94a0", "kind": "CallExpr", "range": { "begin": { - "offset": 34924, + "offset": 34426, "col": 17, "tokLen": 3 }, "end": { - "offset": 34958, + "offset": 34460, "col": 51, "tokLen": 1 } @@ -62002,16 +61138,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b430d8", + "id": "0x7feb10dd9488", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34924, + "offset": 34426, "col": 17, "tokLen": 3 }, "end": { - "offset": 34954, + "offset": 34456, "col": 47, "tokLen": 3 } @@ -62023,16 +61159,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b430a8", + "id": "0x7feb10dd9458", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34924, + "offset": 34426, "col": 17, "tokLen": 3 }, "end": { - "offset": 34954, + "offset": 34456, "col": 47, "tokLen": 3 } @@ -62042,7 +61178,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c0d55a8", + "id": "0x37307348", "kind": "CXXMethodDecl", "name": "min", "type": { @@ -62059,17 +61195,17 @@ ] }, { - "id": "0x7f0da6b432d8", + "id": "0x7feb10dd9688", "kind": "BinaryOperator", "range": { "begin": { - "offset": 34971, - "line": 1149, + "offset": 34473, + "line": 1133, "col": 9, "tokLen": 5 }, "end": { - "offset": 35013, + "offset": 34515, "col": 51, "tokLen": 1 } @@ -62081,16 +61217,16 @@ "opcode": ">", "inner": [ { - "id": "0x7f0da6b432a8", + "id": "0x7feb10dd9658", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34971, + "offset": 34473, "col": 9, "tokLen": 5 }, "end": { - "offset": 34971, + "offset": 34473, "col": 9, "tokLen": 5 } @@ -62102,16 +61238,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b43160", + "id": "0x7feb10dd9510", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34971, + "offset": 34473, "col": 9, "tokLen": 5 }, "end": { - "offset": 34971, + "offset": 34473, "col": 9, "tokLen": 5 } @@ -62121,7 +61257,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42d10", + "id": "0x7feb10dd90c0", "kind": "VarDecl", "name": "value", "type": { @@ -62132,16 +61268,16 @@ ] }, { - "id": "0x7f0da6b432c0", + "id": "0x7feb10dd9670", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34979, + "offset": 34481, "col": 17, "tokLen": 3 }, "end": { - "offset": 35013, + "offset": 34515, "col": 51, "tokLen": 1 } @@ -62153,16 +61289,16 @@ "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b43288", + "id": "0x7feb10dd9638", "kind": "CallExpr", "range": { "begin": { - "offset": 34979, + "offset": 34481, "col": 17, "tokLen": 3 }, "end": { - "offset": 35013, + "offset": 34515, "col": 51, "tokLen": 1 } @@ -62173,16 +61309,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b43270", + "id": "0x7feb10dd9620", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34979, + "offset": 34481, "col": 17, "tokLen": 3 }, "end": { - "offset": 35009, + "offset": 34511, "col": 47, "tokLen": 3 } @@ -62194,16 +61330,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b43240", + "id": "0x7feb10dd95f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34979, + "offset": 34481, "col": 17, "tokLen": 3 }, "end": { - "offset": 35009, + "offset": 34511, "col": 47, "tokLen": 3 } @@ -62213,7 +61349,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c0d5680", + "id": "0x37307420", "kind": "CXXMethodDecl", "name": "max", "type": { @@ -62232,35 +61368,35 @@ ] }, { - "id": "0x7f0da6b44b58", + "id": "0x7feb10ddaf08", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35016, + "offset": 34518, "col": 54, "tokLen": 1 }, "end": { - "offset": 35157, - "line": 1152, + "offset": 34659, + "line": 1136, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b44b40", + "id": "0x7feb10ddaef0", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 35026, - "line": 1150, + "offset": 34528, + "line": 1134, "col": 9, "tokLen": 5 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62272,18 +61408,18 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b44b28", + "id": "0x7feb10ddaed8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 35026, - "line": 1150, + "offset": 34528, + "line": 1134, "col": 9, "tokLen": 5 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62294,18 +61430,18 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b44af8", + "id": "0x7feb10ddaea8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62323,18 +61459,18 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b44ae0", + "id": "0x7feb10ddae90", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62347,18 +61483,18 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b44ab8", + "id": "0x7feb10ddae68", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62370,7 +61506,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -62379,18 +61515,18 @@ }, "inner": [ { - "id": "0x7f0da6b44a98", + "id": "0x7feb10ddae48", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62400,9 +61536,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b44a90", + "temp": "0x7feb10ddae40", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -62411,18 +61547,18 @@ }, "inner": [ { - "id": "0x7f0da6b44a60", + "id": "0x7feb10ddae10", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62439,18 +61575,18 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b44a48", + "id": "0x7feb10ddadf8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35045, - "line": 1150, + "offset": 34547, + "line": 1134, "col": 28, "tokLen": 35 }, "end": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 } @@ -62464,18 +61600,18 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b44a30", + "id": "0x7feb10ddade0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35045, - "line": 1150, + "offset": 34547, + "line": 1134, "col": 28, "tokLen": 35 }, "end": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 } @@ -62488,18 +61624,18 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b44a10", + "id": "0x7feb10ddadc0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35045, - "line": 1150, + "offset": 34547, + "line": 1134, "col": 28, "tokLen": 35 }, "end": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 } @@ -62509,9 +61645,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b44a08", + "temp": "0x7feb10ddadb8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -62520,18 +61656,18 @@ }, "inner": [ { - "id": "0x7f0da6b449d0", + "id": "0x7feb10ddad80", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 35045, - "line": 1150, + "offset": 34547, + "line": 1134, "col": 28, "tokLen": 35 }, "end": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 } @@ -62544,17 +61680,17 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b449b8", + "id": "0x7feb10ddad68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35085, - "line": 1150, + "offset": 34587, + "line": 1134, "col": 68, "tokLen": 1 }, "end": { - "offset": 35085, + "offset": 34587, "col": 68, "tokLen": 1 } @@ -62566,16 +61702,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b44940", + "id": "0x7feb10ddacf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35085, + "offset": 34587, "col": 68, "tokLen": 1 }, "end": { - "offset": 35085, + "offset": 34587, "col": 68, "tokLen": 1 } @@ -62585,7 +61721,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44798", + "id": "0x7feb10ddab48", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -62596,16 +61732,16 @@ ] }, { - "id": "0x7f0da6b44910", + "id": "0x7feb10ddacc0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 } @@ -62618,16 +61754,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b43920", + "id": "0x7feb10dd9cd0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 } @@ -62637,9 +61773,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b43918", + "temp": "0x7feb10dd9cc8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -62648,16 +61784,16 @@ }, "inner": [ { - "id": "0x7f0da6b438e0", + "id": "0x7feb10dd9c90", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 } @@ -62670,16 +61806,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b438c8", + "id": "0x7feb10dd9c78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35081, + "offset": 34583, "col": 64, "tokLen": 1 }, "end": { - "offset": 35081, + "offset": 34583, "col": 64, "tokLen": 1 } @@ -62691,16 +61827,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b438a8", + "id": "0x7feb10dd9c58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35081, + "offset": 34583, "col": 64, "tokLen": 1 }, "end": { - "offset": 35081, + "offset": 34583, "col": 64, "tokLen": 1 } @@ -62710,7 +61846,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -62721,16 +61857,16 @@ ] }, { - "id": "0x7f0da6b43890", + "id": "0x7feb10dd9c40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 } @@ -62742,16 +61878,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b433a8", + "id": "0x7feb10dd9758", "kind": "StringLiteral", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 } @@ -62765,16 +61901,16 @@ ] }, { - "id": "0x7f0da6b433e8", + "id": "0x7feb10dd9798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 }, "end": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 } @@ -62782,11 +61918,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42738", + "id": "0x7feb10dd8ae8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -62801,17 +61937,17 @@ ] }, { - "id": "0x7f0da6b44928", + "id": "0x7feb10ddacd8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 }, "end": { - "offset": 35114, + "offset": 34616, "col": 28, "tokLen": 36 } @@ -62823,16 +61959,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b43940", + "id": "0x7feb10dd9cf0", "kind": "StringLiteral", "range": { "begin": { - "offset": 35114, + "offset": 34616, "col": 28, "tokLen": 36 }, "end": { - "offset": 35114, + "offset": 34616, "col": 28, "tokLen": 36 } @@ -62872,33 +62008,33 @@ ] }, { - "id": "0x7f0da6b44c20", + "id": "0x7feb10ddafd0", "kind": "ReturnStmt", "range": { "begin": { - "offset": 35163, - "line": 1153, + "offset": 34665, + "line": 1137, "col": 5, "tokLen": 6 }, "end": { - "offset": 35196, + "offset": 34698, "col": 38, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b44bf0", + "id": "0x7feb10ddafa0", "kind": "CXXStaticCastExpr", "range": { "begin": { - "offset": 35170, + "offset": 34672, "col": 12, "tokLen": 11 }, "end": { - "offset": 35196, + "offset": 34698, "col": 38, "tokLen": 1 } @@ -62906,22 +62042,22 @@ "type": { "desugaredQualType": "unsigned char", "qualType": "uint8_t", - "typeAliasDeclId": "0x2c0e6c18" + "typeAliasDeclId": "0x373189b8" }, "valueCategory": "prvalue", "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b44bd8", + "id": "0x7feb10ddaf88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 }, "end": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 } @@ -62929,23 +62065,23 @@ "type": { "desugaredQualType": "unsigned char", "qualType": "uint8_t", - "typeAliasDeclId": "0x2c0e6c18" + "typeAliasDeclId": "0x373189b8" }, "valueCategory": "prvalue", "castKind": "IntegralCast", "isPartOfExplicitCast": true, "inner": [ { - "id": "0x7f0da6b44bc0", + "id": "0x7feb10ddaf70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 }, "end": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 } @@ -62958,16 +62094,16 @@ "isPartOfExplicitCast": true, "inner": [ { - "id": "0x7f0da6b44b90", + "id": "0x7feb10ddaf40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 }, "end": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 } @@ -62977,7 +62113,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42d10", + "id": "0x7feb10dd90c0", "kind": "VarDecl", "name": "value", "type": { @@ -62998,29 +62134,29 @@ ] } { - "id": "0x7f0da6b44d88", + "id": "0x7feb10ddb138", "kind": "FunctionDecl", "loc": { - "offset": 35223, + "offset": 34725, "file": "ToString.cpp", - "line": 1156, + "line": 1140, "col": 22, "tokLen": 8 }, "range": { "begin": { - "offset": 35202, + "offset": 34704, "col": 1, "tokLen": 8 }, "end": { - "offset": 35658, - "line": 1165, + "offset": 35160, + "line": 1149, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37c358", + "previousDecl": "0x385ac948", "name": "StringTo", "mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -63034,7 +62170,7 @@ }, "inner": [ { - "id": "0x2bf08d70", + "id": "0x3713ad50", "kind": "BuiltinType", "type": { "qualType": "unsigned short" @@ -63043,22 +62179,22 @@ ] }, { - "id": "0x7f0da6b44cc8", + "id": "0x7feb10ddb078", "kind": "ParmVarDecl", "loc": { - "offset": 35251, - "line": 1156, + "offset": 34753, + "line": 1140, "col": 50, "tokLen": 1 }, "range": { "begin": { - "offset": 35232, + "offset": 34734, "col": 31, "tokLen": 5 }, "end": { - "offset": 35251, + "offset": 34753, "col": 50, "tokLen": 1 } @@ -63070,55 +62206,55 @@ } }, { - "id": "0x7f0da6b46558", + "id": "0x7feb10ddc888", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35254, + "offset": 34756, "col": 53, "tokLen": 1 }, "end": { - "offset": 35658, - "line": 1165, + "offset": 35160, + "line": 1149, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b45258", + "id": "0x7feb10ddb608", "kind": "DeclStmt", "range": { "begin": { - "offset": 35260, - "line": 1157, + "offset": 34762, + "line": 1141, "col": 5, "tokLen": 3 }, "end": { - "offset": 35314, + "offset": 34816, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b44f58", + "id": "0x7feb10ddb308", "kind": "VarDecl", "loc": { - "offset": 35264, + "offset": 34766, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 35260, + "offset": 34762, "col": 5, "tokLen": 3 }, "end": { - "offset": 35312, + "offset": 34814, "col": 57, "tokLen": 2 } @@ -63131,16 +62267,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b45228", + "id": "0x7feb10ddb5d8", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35312, + "offset": 34814, "col": 57, "tokLen": 2 } @@ -63151,16 +62287,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b451c8", + "id": "0x7feb10ddb578", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35300, + "offset": 34802, "col": 45, "tokLen": 4 } @@ -63172,16 +62308,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b450a0", + "id": "0x7feb10ddb450", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35282, + "offset": 34784, "col": 27, "tokLen": 1 } @@ -63189,21 +62325,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b45070", + "id": "0x7feb10ddb420", "kind": "MemberExpr", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35273, + "offset": 34775, "col": 18, "tokLen": 4 } @@ -63214,19 +62350,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b44fc0", + "id": "0x7feb10ddb370", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 } @@ -63234,11 +62370,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44cc8", + "id": "0x7feb10ddb078", "kind": "ParmVarDecl", "name": "s", "type": { @@ -63249,16 +62385,16 @@ ] }, { - "id": "0x7f0da6b450d0", + "id": "0x7feb10ddb480", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35278, + "offset": 34780, "col": 23, "tokLen": 4 }, "end": { - "offset": 35278, + "offset": 34780, "col": 23, "tokLen": 4 } @@ -63270,16 +62406,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b45050", + "id": "0x7feb10ddb400", "kind": "StringLiteral", "range": { "begin": { - "offset": 35278, + "offset": 34780, "col": 23, "tokLen": 4 }, "end": { - "offset": 35278, + "offset": 34780, "col": 23, "tokLen": 4 } @@ -63293,7 +62429,7 @@ ] }, { - "id": "0x7f0da6b450e8", + "id": "0x7feb10ddb498", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -63302,23 +62438,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b451b0", + "id": "0x7feb10ddb560", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35287, + "offset": 34789, "col": 32, "tokLen": 3 }, "end": { - "offset": 35300, + "offset": 34802, "col": 45, "tokLen": 4 } @@ -63326,22 +62462,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b45180", + "id": "0x7feb10ddb530", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35287, + "offset": 34789, "col": 32, "tokLen": 3 }, "end": { - "offset": 35300, + "offset": 34802, "col": 45, "tokLen": 4 } @@ -63349,17 +62485,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -63369,16 +62505,16 @@ ] }, { - "id": "0x7f0da6b451e8", + "id": "0x7feb10ddb598", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35307, + "offset": 34809, "col": 52, "tokLen": 2 }, "end": { - "offset": 35307, + "offset": 34809, "col": 52, "tokLen": 2 } @@ -63390,16 +62526,16 @@ "value": "16" }, { - "id": "0x7f0da6b45208", + "id": "0x7feb10ddb5b8", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35312, + "offset": 34814, "col": 57, "tokLen": 2 }, "end": { - "offset": 35312, + "offset": 34814, "col": 57, "tokLen": 2 } @@ -63417,38 +62553,38 @@ ] }, { - "id": "0x7f0da6b45460", + "id": "0x7feb10ddb810", "kind": "DeclStmt", "range": { "begin": { - "offset": 35320, - "line": 1158, + "offset": 34822, + "line": 1142, "col": 5, "tokLen": 3 }, "end": { - "offset": 35359, + "offset": 34861, "col": 44, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b45288", + "id": "0x7feb10ddb638", "kind": "VarDecl", "loc": { - "offset": 35324, + "offset": 34826, "col": 9, "tokLen": 5 }, "range": { "begin": { - "offset": 35320, + "offset": 34822, "col": 5, "tokLen": 3 }, "end": { - "offset": 35358, + "offset": 34860, "col": 43, "tokLen": 1 } @@ -63461,16 +62597,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b453f8", + "id": "0x7feb10ddb7a8", "kind": "CallExpr", "range": { "begin": { - "offset": 35332, + "offset": 34834, "col": 17, "tokLen": 3 }, "end": { - "offset": 35358, + "offset": 34860, "col": 43, "tokLen": 1 } @@ -63481,16 +62617,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b453e0", + "id": "0x7feb10ddb790", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35332, + "offset": 34834, "col": 17, "tokLen": 3 }, "end": { - "offset": 35337, + "offset": 34839, "col": 22, "tokLen": 4 } @@ -63502,16 +62638,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b453b0", + "id": "0x7feb10ddb760", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35332, + "offset": 34834, "col": 17, "tokLen": 3 }, "end": { - "offset": 35337, + "offset": 34839, "col": 22, "tokLen": 4 } @@ -63521,7 +62657,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c88ede0", + "id": "0x37ac0430", "kind": "FunctionDecl", "name": "stoi", "type": { @@ -63532,16 +62668,16 @@ ] }, { - "id": "0x7f0da6b45360", + "id": "0x7feb10ddb710", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35342, + "offset": 34844, "col": 27, "tokLen": 1 }, "end": { - "offset": 35342, + "offset": 34844, "col": 27, "tokLen": 1 } @@ -63549,11 +62685,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44cc8", + "id": "0x7feb10ddb078", "kind": "ParmVarDecl", "name": "s", "type": { @@ -63562,16 +62698,16 @@ } }, { - "id": "0x7f0da6b45430", + "id": "0x7feb10ddb7e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35345, + "offset": 34847, "col": 30, "tokLen": 7 }, "end": { - "offset": 35345, + "offset": 34847, "col": 30, "tokLen": 7 } @@ -63583,16 +62719,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b45380", + "id": "0x7feb10ddb730", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 35345, + "offset": 34847, "col": 30, "tokLen": 7 }, "end": { - "offset": 35345, + "offset": 34847, "col": 30, "tokLen": 7 } @@ -63605,16 +62741,16 @@ ] }, { - "id": "0x7f0da6b45448", + "id": "0x7feb10ddb7f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35354, + "offset": 34856, "col": 39, "tokLen": 4 }, "end": { - "offset": 35354, + "offset": 34856, "col": 39, "tokLen": 4 } @@ -63626,16 +62762,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b45390", + "id": "0x7feb10ddb740", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35354, + "offset": 34856, "col": 39, "tokLen": 4 }, "end": { - "offset": 35354, + "offset": 34856, "col": 39, "tokLen": 4 } @@ -63645,7 +62781,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44f58", + "id": "0x7feb10ddb308", "kind": "VarDecl", "name": "base", "type": { @@ -63662,36 +62798,36 @@ ] }, { - "id": "0x7f0da6b46498", + "id": "0x7feb10ddc7c8", "kind": "IfStmt", "range": { "begin": { - "offset": 35365, - "line": 1159, + "offset": 34867, + "line": 1143, "col": 5, "tokLen": 2 }, "end": { - "offset": 35615, - "line": 1163, + "offset": 35117, + "line": 1147, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b457f8", + "id": "0x7feb10ddbba8", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35369, - "line": 1159, + "offset": 34871, + "line": 1143, "col": 9, "tokLen": 5 }, "end": { - "offset": 35468, - "line": 1160, + "offset": 34970, + "line": 1144, "col": 52, "tokLen": 1 } @@ -63703,17 +62839,17 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6b45640", + "id": "0x7feb10ddb9f0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35369, - "line": 1159, + "offset": 34871, + "line": 1143, "col": 9, "tokLen": 5 }, "end": { - "offset": 35412, + "offset": 34914, "col": 52, "tokLen": 1 } @@ -63725,16 +62861,16 @@ "opcode": "<", "inner": [ { - "id": "0x7f0da6b45610", + "id": "0x7feb10ddb9c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35369, + "offset": 34871, "col": 9, "tokLen": 5 }, "end": { - "offset": 35369, + "offset": 34871, "col": 9, "tokLen": 5 } @@ -63746,16 +62882,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b45478", + "id": "0x7feb10ddb828", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35369, + "offset": 34871, "col": 9, "tokLen": 5 }, "end": { - "offset": 35369, + "offset": 34871, "col": 9, "tokLen": 5 } @@ -63765,7 +62901,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b45288", + "id": "0x7feb10ddb638", "kind": "VarDecl", "name": "value", "type": { @@ -63776,16 +62912,16 @@ ] }, { - "id": "0x7f0da6b45628", + "id": "0x7feb10ddb9d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35377, + "offset": 34879, "col": 17, "tokLen": 3 }, "end": { - "offset": 35412, + "offset": 34914, "col": 52, "tokLen": 1 } @@ -63797,16 +62933,16 @@ "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b455f0", + "id": "0x7feb10ddb9a0", "kind": "CallExpr", "range": { "begin": { - "offset": 35377, + "offset": 34879, "col": 17, "tokLen": 3 }, "end": { - "offset": 35412, + "offset": 34914, "col": 52, "tokLen": 1 } @@ -63817,16 +62953,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b455d8", + "id": "0x7feb10ddb988", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35377, + "offset": 34879, "col": 17, "tokLen": 3 }, "end": { - "offset": 35408, + "offset": 34910, "col": 48, "tokLen": 3 } @@ -63838,16 +62974,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b455a8", + "id": "0x7feb10ddb958", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35377, + "offset": 34879, "col": 17, "tokLen": 3 }, "end": { - "offset": 35408, + "offset": 34910, "col": 48, "tokLen": 3 } @@ -63857,7 +62993,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c179c48", + "id": "0x373ab6c8", "kind": "CXXMethodDecl", "name": "min", "type": { @@ -63874,17 +63010,17 @@ ] }, { - "id": "0x7f0da6b457d8", + "id": "0x7feb10ddbb88", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35425, - "line": 1160, + "offset": 34927, + "line": 1144, "col": 9, "tokLen": 5 }, "end": { - "offset": 35468, + "offset": 34970, "col": 52, "tokLen": 1 } @@ -63896,16 +63032,16 @@ "opcode": ">", "inner": [ { - "id": "0x7f0da6b457a8", + "id": "0x7feb10ddbb58", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35425, + "offset": 34927, "col": 9, "tokLen": 5 }, "end": { - "offset": 35425, + "offset": 34927, "col": 9, "tokLen": 5 } @@ -63917,16 +63053,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b45660", + "id": "0x7feb10ddba10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35425, + "offset": 34927, "col": 9, "tokLen": 5 }, "end": { - "offset": 35425, + "offset": 34927, "col": 9, "tokLen": 5 } @@ -63936,7 +63072,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b45288", + "id": "0x7feb10ddb638", "kind": "VarDecl", "name": "value", "type": { @@ -63947,16 +63083,16 @@ ] }, { - "id": "0x7f0da6b457c0", + "id": "0x7feb10ddbb70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35433, + "offset": 34935, "col": 17, "tokLen": 3 }, "end": { - "offset": 35468, + "offset": 34970, "col": 52, "tokLen": 1 } @@ -63968,16 +63104,16 @@ "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b45788", + "id": "0x7feb10ddbb38", "kind": "CallExpr", "range": { "begin": { - "offset": 35433, + "offset": 34935, "col": 17, "tokLen": 3 }, "end": { - "offset": 35468, + "offset": 34970, "col": 52, "tokLen": 1 } @@ -63988,16 +63124,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b45770", + "id": "0x7feb10ddbb20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35433, + "offset": 34935, "col": 17, "tokLen": 3 }, "end": { - "offset": 35464, + "offset": 34966, "col": 48, "tokLen": 3 } @@ -64009,16 +63145,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b45740", + "id": "0x7feb10ddbaf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35433, + "offset": 34935, "col": 17, "tokLen": 3 }, "end": { - "offset": 35464, + "offset": 34966, "col": 48, "tokLen": 3 } @@ -64028,7 +63164,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c179d20", + "id": "0x373ab7a0", "kind": "CXXMethodDecl", "name": "max", "type": { @@ -64047,35 +63183,35 @@ ] }, { - "id": "0x7f0da6b46480", + "id": "0x7feb10ddc7b0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35471, + "offset": 34973, "col": 55, "tokLen": 1 }, "end": { - "offset": 35615, - "line": 1163, + "offset": 35117, + "line": 1147, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46468", + "id": "0x7feb10ddc798", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 35481, - "line": 1161, + "offset": 34983, + "line": 1145, "col": 9, "tokLen": 5 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64087,18 +63223,18 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b46450", + "id": "0x7feb10ddc780", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 35481, - "line": 1161, + "offset": 34983, + "line": 1145, "col": 9, "tokLen": 5 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64109,18 +63245,18 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b46420", + "id": "0x7feb10ddc750", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64138,18 +63274,18 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b46408", + "id": "0x7feb10ddc738", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64162,18 +63298,18 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b463e0", + "id": "0x7feb10ddc710", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64185,7 +63321,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -64194,18 +63330,18 @@ }, "inner": [ { - "id": "0x7f0da6b463c0", + "id": "0x7feb10ddc6f0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64215,9 +63351,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b463b8", + "temp": "0x7feb10ddc6e8", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -64226,18 +63362,18 @@ }, "inner": [ { - "id": "0x7f0da6b46388", + "id": "0x7feb10ddc6b8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64254,18 +63390,18 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b46370", + "id": "0x7feb10ddc6a0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35500, - "line": 1161, + "offset": 35002, + "line": 1145, "col": 28, "tokLen": 36 }, "end": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 } @@ -64279,18 +63415,18 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b46358", + "id": "0x7feb10ddc688", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35500, - "line": 1161, + "offset": 35002, + "line": 1145, "col": 28, "tokLen": 36 }, "end": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 } @@ -64303,18 +63439,18 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b46338", + "id": "0x7feb10ddc668", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35500, - "line": 1161, + "offset": 35002, + "line": 1145, "col": 28, "tokLen": 36 }, "end": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 } @@ -64324,9 +63460,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b46330", + "temp": "0x7feb10ddc660", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -64335,18 +63471,18 @@ }, "inner": [ { - "id": "0x7f0da6b462f8", + "id": "0x7feb10ddc628", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 35500, - "line": 1161, + "offset": 35002, + "line": 1145, "col": 28, "tokLen": 36 }, "end": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 } @@ -64359,17 +63495,17 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b462e0", + "id": "0x7feb10ddc610", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35541, - "line": 1161, + "offset": 35043, + "line": 1145, "col": 69, "tokLen": 1 }, "end": { - "offset": 35541, + "offset": 35043, "col": 69, "tokLen": 1 } @@ -64381,16 +63517,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b462c0", + "id": "0x7feb10ddc5f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35541, + "offset": 35043, "col": 69, "tokLen": 1 }, "end": { - "offset": 35541, + "offset": 35043, "col": 69, "tokLen": 1 } @@ -64400,7 +63536,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44798", + "id": "0x7feb10ddab48", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -64411,16 +63547,16 @@ ] }, { - "id": "0x7f0da6b46290", + "id": "0x7feb10ddc5c0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 } @@ -64433,16 +63569,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b45d68", + "id": "0x7feb10ddc118", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 } @@ -64452,9 +63588,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b45d60", + "temp": "0x7feb10ddc110", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -64463,16 +63599,16 @@ }, "inner": [ { - "id": "0x7f0da6b45d28", + "id": "0x7feb10ddc0d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 } @@ -64485,16 +63621,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b45d10", + "id": "0x7feb10ddc0c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35537, + "offset": 35039, "col": 65, "tokLen": 1 }, "end": { - "offset": 35537, + "offset": 35039, "col": 65, "tokLen": 1 } @@ -64506,16 +63642,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b45cf0", + "id": "0x7feb10ddc0a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35537, + "offset": 35039, "col": 65, "tokLen": 1 }, "end": { - "offset": 35537, + "offset": 35039, "col": 65, "tokLen": 1 } @@ -64525,7 +63661,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -64536,16 +63672,16 @@ ] }, { - "id": "0x7f0da6b45cd8", + "id": "0x7feb10ddc088", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 } @@ -64557,16 +63693,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b45828", + "id": "0x7feb10ddbbd8", "kind": "StringLiteral", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 } @@ -64580,16 +63716,16 @@ ] }, { - "id": "0x7f0da6b45868", + "id": "0x7feb10ddbc18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 }, "end": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 } @@ -64597,11 +63733,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44cc8", + "id": "0x7feb10ddb078", "kind": "ParmVarDecl", "name": "s", "type": { @@ -64616,17 +63752,17 @@ ] }, { - "id": "0x7f0da6b462a8", + "id": "0x7feb10ddc5d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 }, "end": { - "offset": 35570, + "offset": 35072, "col": 28, "tokLen": 38 } @@ -64638,16 +63774,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b45e08", + "id": "0x7feb10ddc138", "kind": "StringLiteral", "range": { "begin": { - "offset": 35570, + "offset": 35072, "col": 28, "tokLen": 38 }, "end": { - "offset": 35570, + "offset": 35072, "col": 28, "tokLen": 38 } @@ -64687,33 +63823,33 @@ ] }, { - "id": "0x7f0da6b46548", + "id": "0x7feb10ddc878", "kind": "ReturnStmt", "range": { "begin": { - "offset": 35621, - "line": 1164, + "offset": 35123, + "line": 1148, "col": 5, "tokLen": 6 }, "end": { - "offset": 35655, + "offset": 35157, "col": 39, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46518", + "id": "0x7feb10ddc848", "kind": "CXXStaticCastExpr", "range": { "begin": { - "offset": 35628, + "offset": 35130, "col": 12, "tokLen": 11 }, "end": { - "offset": 35655, + "offset": 35157, "col": 39, "tokLen": 1 } @@ -64721,22 +63857,22 @@ "type": { "desugaredQualType": "unsigned short", "qualType": "uint16_t", - "typeAliasDeclId": "0x2c0e6c80" + "typeAliasDeclId": "0x37318a20" }, "valueCategory": "prvalue", "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b46500", + "id": "0x7feb10ddc830", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 }, "end": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 } @@ -64744,23 +63880,23 @@ "type": { "desugaredQualType": "unsigned short", "qualType": "uint16_t", - "typeAliasDeclId": "0x2c0e6c80" + "typeAliasDeclId": "0x37318a20" }, "valueCategory": "prvalue", "castKind": "IntegralCast", "isPartOfExplicitCast": true, "inner": [ { - "id": "0x7f0da6b464e8", + "id": "0x7feb10ddc818", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 }, "end": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 } @@ -64773,16 +63909,16 @@ "isPartOfExplicitCast": true, "inner": [ { - "id": "0x7f0da6b464b8", + "id": "0x7feb10ddc7e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 }, "end": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 } @@ -64792,7 +63928,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b45288", + "id": "0x7feb10ddb638", "kind": "VarDecl", "name": "value", "type": { @@ -64813,29 +63949,29 @@ ] } { - "id": "0x7f0da6b466b8", + "id": "0x7feb10ddc9e8", "kind": "FunctionDecl", "loc": { - "offset": 35682, + "offset": 35184, "file": "ToString.cpp", - "line": 1167, + "line": 1151, "col": 22, "tokLen": 8 }, "range": { "begin": { - "offset": 35661, + "offset": 35163, "col": 1, "tokLen": 8 }, "end": { - "offset": 35816, - "line": 1170, + "offset": 35318, + "line": 1154, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37c828", + "previousDecl": "0x385ace18", "name": "StringTo", "mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -64849,7 +63985,7 @@ }, "inner": [ { - "id": "0x2bf08d90", + "id": "0x3713ad70", "kind": "BuiltinType", "type": { "qualType": "unsigned int" @@ -64858,22 +63994,22 @@ ] }, { - "id": "0x7f0da6b465f0", + "id": "0x7feb10ddc920", "kind": "ParmVarDecl", "loc": { - "offset": 35710, - "line": 1167, + "offset": 35212, + "line": 1151, "col": 50, "tokLen": 1 }, "range": { "begin": { - "offset": 35691, + "offset": 35193, "col": 31, "tokLen": 5 }, "end": { - "offset": 35710, + "offset": 35212, "col": 50, "tokLen": 1 } @@ -64885,55 +64021,55 @@ } }, { - "id": "0x7f0da6b46d90", + "id": "0x7feb10ddd0c0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35713, + "offset": 35215, "col": 53, "tokLen": 1 }, "end": { - "offset": 35816, - "line": 1170, + "offset": 35318, + "line": 1154, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46b88", + "id": "0x7feb10ddceb8", "kind": "DeclStmt", "range": { "begin": { - "offset": 35719, - "line": 1168, + "offset": 35221, + "line": 1152, "col": 5, "tokLen": 3 }, "end": { - "offset": 35773, + "offset": 35275, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46888", + "id": "0x7feb10ddcbb8", "kind": "VarDecl", "loc": { - "offset": 35723, + "offset": 35225, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 35719, + "offset": 35221, "col": 5, "tokLen": 3 }, "end": { - "offset": 35771, + "offset": 35273, "col": 57, "tokLen": 2 } @@ -64946,16 +64082,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b46b58", + "id": "0x7feb10ddce88", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35771, + "offset": 35273, "col": 57, "tokLen": 2 } @@ -64966,16 +64102,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b46af8", + "id": "0x7feb10ddce28", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35759, + "offset": 35261, "col": 45, "tokLen": 4 } @@ -64987,16 +64123,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b469d0", + "id": "0x7feb10ddcd00", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35741, + "offset": 35243, "col": 27, "tokLen": 1 } @@ -65004,21 +64140,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b469a0", + "id": "0x7feb10ddccd0", "kind": "MemberExpr", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35732, + "offset": 35234, "col": 18, "tokLen": 4 } @@ -65029,19 +64165,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b468f0", + "id": "0x7feb10ddcc20", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 } @@ -65049,11 +64185,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b465f0", + "id": "0x7feb10ddc920", "kind": "ParmVarDecl", "name": "s", "type": { @@ -65064,16 +64200,16 @@ ] }, { - "id": "0x7f0da6b46a00", + "id": "0x7feb10ddcd30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35737, + "offset": 35239, "col": 23, "tokLen": 4 }, "end": { - "offset": 35737, + "offset": 35239, "col": 23, "tokLen": 4 } @@ -65085,16 +64221,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b46980", + "id": "0x7feb10ddccb0", "kind": "StringLiteral", "range": { "begin": { - "offset": 35737, + "offset": 35239, "col": 23, "tokLen": 4 }, "end": { - "offset": 35737, + "offset": 35239, "col": 23, "tokLen": 4 } @@ -65108,7 +64244,7 @@ ] }, { - "id": "0x7f0da6b46a18", + "id": "0x7feb10ddcd48", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -65117,23 +64253,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b46ae0", + "id": "0x7feb10ddce10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35746, + "offset": 35248, "col": 32, "tokLen": 3 }, "end": { - "offset": 35759, + "offset": 35261, "col": 45, "tokLen": 4 } @@ -65141,22 +64277,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b46ab0", + "id": "0x7feb10ddcde0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35746, + "offset": 35248, "col": 32, "tokLen": 3 }, "end": { - "offset": 35759, + "offset": 35261, "col": 45, "tokLen": 4 } @@ -65164,17 +64300,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -65184,16 +64320,16 @@ ] }, { - "id": "0x7f0da6b46b18", + "id": "0x7feb10ddce48", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35766, + "offset": 35268, "col": 52, "tokLen": 2 }, "end": { - "offset": 35766, + "offset": 35268, "col": 52, "tokLen": 2 } @@ -65205,16 +64341,16 @@ "value": "16" }, { - "id": "0x7f0da6b46b38", + "id": "0x7feb10ddce68", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35771, + "offset": 35273, "col": 57, "tokLen": 2 }, "end": { - "offset": 35771, + "offset": 35273, "col": 57, "tokLen": 2 } @@ -65232,33 +64368,33 @@ ] }, { - "id": "0x7f0da6b46d80", + "id": "0x7feb10ddd0b0", "kind": "ReturnStmt", "range": { "begin": { - "offset": 35779, - "line": 1169, + "offset": 35281, + "line": 1153, "col": 5, "tokLen": 6 }, "end": { - "offset": 35813, + "offset": 35315, "col": 39, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46d68", + "id": "0x7feb10ddd098", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35786, + "offset": 35288, "col": 12, "tokLen": 3 }, "end": { - "offset": 35813, + "offset": 35315, "col": 39, "tokLen": 1 } @@ -65266,22 +64402,22 @@ "type": { "desugaredQualType": "unsigned int", "qualType": "uint32_t", - "typeAliasDeclId": "0x2c0e6ce8" + "typeAliasDeclId": "0x37318a88" }, "valueCategory": "prvalue", "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b46d00", + "id": "0x7feb10ddd030", "kind": "CallExpr", "range": { "begin": { - "offset": 35786, + "offset": 35288, "col": 12, "tokLen": 3 }, "end": { - "offset": 35813, + "offset": 35315, "col": 39, "tokLen": 1 } @@ -65292,16 +64428,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b46ce8", + "id": "0x7feb10ddd018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35786, + "offset": 35288, "col": 12, "tokLen": 3 }, "end": { - "offset": 35791, + "offset": 35293, "col": 17, "tokLen": 5 } @@ -65313,16 +64449,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b46c60", + "id": "0x7feb10ddcf90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35786, + "offset": 35288, "col": 12, "tokLen": 3 }, "end": { - "offset": 35791, + "offset": 35293, "col": 17, "tokLen": 5 } @@ -65332,7 +64468,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c8d3880", + "id": "0x37b052b0", "kind": "FunctionDecl", "name": "stoul", "type": { @@ -65343,16 +64479,16 @@ ] }, { - "id": "0x7f0da6b46c10", + "id": "0x7feb10ddcf40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35797, + "offset": 35299, "col": 23, "tokLen": 1 }, "end": { - "offset": 35797, + "offset": 35299, "col": 23, "tokLen": 1 } @@ -65360,11 +64496,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b465f0", + "id": "0x7feb10ddc920", "kind": "ParmVarDecl", "name": "s", "type": { @@ -65373,16 +64509,16 @@ } }, { - "id": "0x7f0da6b46d38", + "id": "0x7feb10ddd068", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35800, + "offset": 35302, "col": 26, "tokLen": 7 }, "end": { - "offset": 35800, + "offset": 35302, "col": 26, "tokLen": 7 } @@ -65394,16 +64530,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b46c30", + "id": "0x7feb10ddcf60", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 35800, + "offset": 35302, "col": 26, "tokLen": 7 }, "end": { - "offset": 35800, + "offset": 35302, "col": 26, "tokLen": 7 } @@ -65416,16 +64552,16 @@ ] }, { - "id": "0x7f0da6b46d50", + "id": "0x7feb10ddd080", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35809, + "offset": 35311, "col": 35, "tokLen": 4 }, "end": { - "offset": 35809, + "offset": 35311, "col": 35, "tokLen": 4 } @@ -65437,16 +64573,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b46c40", + "id": "0x7feb10ddcf70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35809, + "offset": 35311, "col": 35, "tokLen": 4 }, "end": { - "offset": 35809, + "offset": 35311, "col": 35, "tokLen": 4 } @@ -65456,7 +64592,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b46888", + "id": "0x7feb10ddcbb8", "kind": "VarDecl", "name": "base", "type": { @@ -65477,29 +64613,29 @@ ] } { - "id": "0x7f0da6b46ed8", + "id": "0x7feb10ddd208", "kind": "FunctionDecl", "loc": { - "offset": 35840, + "offset": 35342, "file": "ToString.cpp", - "line": 1172, + "line": 1156, "col": 22, "tokLen": 8 }, "range": { "begin": { - "offset": 35819, + "offset": 35321, "col": 1, "tokLen": 8 }, "end": { - "offset": 35975, - "line": 1175, + "offset": 35477, + "line": 1159, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37ccc8", + "previousDecl": "0x385ad2b8", "name": "StringTo", "mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -65513,7 +64649,7 @@ }, "inner": [ { - "id": "0x2bf08db0", + "id": "0x3713ad90", "kind": "BuiltinType", "type": { "qualType": "unsigned long" @@ -65522,22 +64658,22 @@ ] }, { - "id": "0x7f0da6b46e18", + "id": "0x7feb10ddd148", "kind": "ParmVarDecl", "loc": { - "offset": 35868, - "line": 1172, + "offset": 35370, + "line": 1156, "col": 50, "tokLen": 1 }, "range": { "begin": { - "offset": 35849, + "offset": 35351, "col": 31, "tokLen": 5 }, "end": { - "offset": 35868, + "offset": 35370, "col": 50, "tokLen": 1 } @@ -65549,55 +64685,55 @@ } }, { - "id": "0x7f0da6b475b0", + "id": "0x7feb10ddd8e0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35871, + "offset": 35373, "col": 53, "tokLen": 1 }, "end": { - "offset": 35975, - "line": 1175, + "offset": 35477, + "line": 1159, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b473a8", + "id": "0x7feb10ddd6d8", "kind": "DeclStmt", "range": { "begin": { - "offset": 35877, - "line": 1173, + "offset": 35379, + "line": 1157, "col": 5, "tokLen": 3 }, "end": { - "offset": 35931, + "offset": 35433, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b470a8", + "id": "0x7feb10ddd3d8", "kind": "VarDecl", "loc": { - "offset": 35881, + "offset": 35383, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 35877, + "offset": 35379, "col": 5, "tokLen": 3 }, "end": { - "offset": 35929, + "offset": 35431, "col": 57, "tokLen": 2 } @@ -65610,16 +64746,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b47378", + "id": "0x7feb10ddd6a8", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35929, + "offset": 35431, "col": 57, "tokLen": 2 } @@ -65630,16 +64766,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b47318", + "id": "0x7feb10ddd648", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35917, + "offset": 35419, "col": 45, "tokLen": 4 } @@ -65651,16 +64787,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b471f0", + "id": "0x7feb10ddd520", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35899, + "offset": 35401, "col": 27, "tokLen": 1 } @@ -65668,21 +64804,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b471c0", + "id": "0x7feb10ddd4f0", "kind": "MemberExpr", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35890, + "offset": 35392, "col": 18, "tokLen": 4 } @@ -65693,19 +64829,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b47110", + "id": "0x7feb10ddd440", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 } @@ -65713,11 +64849,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b46e18", + "id": "0x7feb10ddd148", "kind": "ParmVarDecl", "name": "s", "type": { @@ -65728,16 +64864,16 @@ ] }, { - "id": "0x7f0da6b47220", + "id": "0x7feb10ddd550", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35895, + "offset": 35397, "col": 23, "tokLen": 4 }, "end": { - "offset": 35895, + "offset": 35397, "col": 23, "tokLen": 4 } @@ -65749,16 +64885,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b471a0", + "id": "0x7feb10ddd4d0", "kind": "StringLiteral", "range": { "begin": { - "offset": 35895, + "offset": 35397, "col": 23, "tokLen": 4 }, "end": { - "offset": 35895, + "offset": 35397, "col": 23, "tokLen": 4 } @@ -65772,7 +64908,7 @@ ] }, { - "id": "0x7f0da6b47238", + "id": "0x7feb10ddd568", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -65781,23 +64917,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b47300", + "id": "0x7feb10ddd630", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35904, + "offset": 35406, "col": 32, "tokLen": 3 }, "end": { - "offset": 35917, + "offset": 35419, "col": 45, "tokLen": 4 } @@ -65805,22 +64941,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b472d0", + "id": "0x7feb10ddd600", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35904, + "offset": 35406, "col": 32, "tokLen": 3 }, "end": { - "offset": 35917, + "offset": 35419, "col": 45, "tokLen": 4 } @@ -65828,17 +64964,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -65848,16 +64984,16 @@ ] }, { - "id": "0x7f0da6b47338", + "id": "0x7feb10ddd668", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35924, + "offset": 35426, "col": 52, "tokLen": 2 }, "end": { - "offset": 35924, + "offset": 35426, "col": 52, "tokLen": 2 } @@ -65869,16 +65005,16 @@ "value": "16" }, { - "id": "0x7f0da6b47358", + "id": "0x7feb10ddd688", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35929, + "offset": 35431, "col": 57, "tokLen": 2 }, "end": { - "offset": 35929, + "offset": 35431, "col": 57, "tokLen": 2 } @@ -65896,33 +65032,33 @@ ] }, { - "id": "0x7f0da6b475a0", + "id": "0x7feb10ddd8d0", "kind": "ReturnStmt", "range": { "begin": { - "offset": 35937, - "line": 1174, + "offset": 35439, + "line": 1158, "col": 5, "tokLen": 6 }, "end": { - "offset": 35972, + "offset": 35474, "col": 40, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b47588", + "id": "0x7feb10ddd8b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35944, + "offset": 35446, "col": 12, "tokLen": 3 }, "end": { - "offset": 35972, + "offset": 35474, "col": 40, "tokLen": 1 } @@ -65930,22 +65066,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "uint64_t", - "typeAliasDeclId": "0x2c0e6d50" + "typeAliasDeclId": "0x37318af0" }, "valueCategory": "prvalue", "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b47520", + "id": "0x7feb10ddd850", "kind": "CallExpr", "range": { "begin": { - "offset": 35944, + "offset": 35446, "col": 12, "tokLen": 3 }, "end": { - "offset": 35972, + "offset": 35474, "col": 40, "tokLen": 1 } @@ -65956,16 +65092,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b47508", + "id": "0x7feb10ddd838", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35944, + "offset": 35446, "col": 12, "tokLen": 3 }, "end": { - "offset": 35949, + "offset": 35451, "col": 17, "tokLen": 6 } @@ -65977,16 +65113,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b47480", + "id": "0x7feb10ddd7b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35944, + "offset": 35446, "col": 12, "tokLen": 3 }, "end": { - "offset": 35949, + "offset": 35451, "col": 17, "tokLen": 6 } @@ -65996,7 +65132,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c8d5880", + "id": "0x37b072b0", "kind": "FunctionDecl", "name": "stoull", "type": { @@ -66007,16 +65143,16 @@ ] }, { - "id": "0x7f0da6b47430", + "id": "0x7feb10ddd760", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35956, + "offset": 35458, "col": 24, "tokLen": 1 }, "end": { - "offset": 35956, + "offset": 35458, "col": 24, "tokLen": 1 } @@ -66024,11 +65160,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b46e18", + "id": "0x7feb10ddd148", "kind": "ParmVarDecl", "name": "s", "type": { @@ -66037,16 +65173,16 @@ } }, { - "id": "0x7f0da6b47558", + "id": "0x7feb10ddd888", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35959, + "offset": 35461, "col": 27, "tokLen": 7 }, "end": { - "offset": 35959, + "offset": 35461, "col": 27, "tokLen": 7 } @@ -66058,16 +65194,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b47450", + "id": "0x7feb10ddd780", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 35959, + "offset": 35461, "col": 27, "tokLen": 7 }, "end": { - "offset": 35959, + "offset": 35461, "col": 27, "tokLen": 7 } @@ -66080,16 +65216,16 @@ ] }, { - "id": "0x7f0da6b47570", + "id": "0x7feb10ddd8a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35968, + "offset": 35470, "col": 36, "tokLen": 4 }, "end": { - "offset": 35968, + "offset": 35470, "col": 36, "tokLen": 4 } @@ -66101,16 +65237,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b47460", + "id": "0x7feb10ddd790", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35968, + "offset": 35470, "col": 36, "tokLen": 4 }, "end": { - "offset": 35968, + "offset": 35470, "col": 36, "tokLen": 4 } @@ -66120,7 +65256,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b470a8", + "id": "0x7feb10ddd3d8", "kind": "VarDecl", "name": "base", "type": { @@ -66141,29 +65277,29 @@ ] } { - "id": "0x7f0da6b47700", + "id": "0x7feb10ddda30", "kind": "FunctionDecl", "loc": { - "offset": 35994, + "offset": 35496, "file": "ToString.cpp", - "line": 1177, + "line": 1161, "col": 17, "tokLen": 8 }, "range": { "begin": { - "offset": 35978, + "offset": 35480, "col": 1, "tokLen": 8 }, "end": { - "offset": 36127, - "line": 1180, + "offset": 35629, + "line": 1164, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37d1a0", + "previousDecl": "0x385ad790", "name": "StringTo", "mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -66177,7 +65313,7 @@ }, "inner": [ { - "id": "0x2bf08cf0", + "id": "0x3713acd0", "kind": "BuiltinType", "type": { "qualType": "int" @@ -66186,22 +65322,22 @@ ] }, { - "id": "0x7f0da6b47638", + "id": "0x7feb10ddd968", "kind": "ParmVarDecl", "loc": { - "offset": 36022, - "line": 1177, + "offset": 35524, + "line": 1161, "col": 45, "tokLen": 1 }, "range": { "begin": { - "offset": 36003, + "offset": 35505, "col": 26, "tokLen": 5 }, "end": { - "offset": 36022, + "offset": 35524, "col": 45, "tokLen": 1 } @@ -66213,55 +65349,55 @@ } }, { - "id": "0x7f0da6b47d70", + "id": "0x7feb10dde0a0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 36025, + "offset": 35527, "col": 48, "tokLen": 1 }, "end": { - "offset": 36127, - "line": 1180, + "offset": 35629, + "line": 1164, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b47bd8", + "id": "0x7feb10dddf08", "kind": "DeclStmt", "range": { "begin": { - "offset": 36031, - "line": 1178, + "offset": 35533, + "line": 1162, "col": 5, "tokLen": 3 }, "end": { - "offset": 36085, + "offset": 35587, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b478d8", + "id": "0x7feb10dddc08", "kind": "VarDecl", "loc": { - "offset": 36035, + "offset": 35537, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 36031, + "offset": 35533, "col": 5, "tokLen": 3 }, "end": { - "offset": 36083, + "offset": 35585, "col": 57, "tokLen": 2 } @@ -66274,16 +65410,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b47ba8", + "id": "0x7feb10ddded8", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36083, + "offset": 35585, "col": 57, "tokLen": 2 } @@ -66294,16 +65430,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b47b48", + "id": "0x7feb10ddde78", "kind": "BinaryOperator", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36071, + "offset": 35573, "col": 45, "tokLen": 4 } @@ -66315,16 +65451,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b47a20", + "id": "0x7feb10dddd50", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36053, + "offset": 35555, "col": 27, "tokLen": 1 } @@ -66332,21 +65468,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b479f0", + "id": "0x7feb10dddd20", "kind": "MemberExpr", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36044, + "offset": 35546, "col": 18, "tokLen": 4 } @@ -66357,19 +65493,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b47940", + "id": "0x7feb10dddc70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 } @@ -66377,11 +65513,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b47638", + "id": "0x7feb10ddd968", "kind": "ParmVarDecl", "name": "s", "type": { @@ -66392,16 +65528,16 @@ ] }, { - "id": "0x7f0da6b47a50", + "id": "0x7feb10dddd80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36049, + "offset": 35551, "col": 23, "tokLen": 4 }, "end": { - "offset": 36049, + "offset": 35551, "col": 23, "tokLen": 4 } @@ -66413,16 +65549,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b479d0", + "id": "0x7feb10dddd00", "kind": "StringLiteral", "range": { "begin": { - "offset": 36049, + "offset": 35551, "col": 23, "tokLen": 4 }, "end": { - "offset": 36049, + "offset": 35551, "col": 23, "tokLen": 4 } @@ -66436,7 +65572,7 @@ ] }, { - "id": "0x7f0da6b47a68", + "id": "0x7feb10dddd98", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -66445,23 +65581,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b47b30", + "id": "0x7feb10ddde60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36058, + "offset": 35560, "col": 32, "tokLen": 3 }, "end": { - "offset": 36071, + "offset": 35573, "col": 45, "tokLen": 4 } @@ -66469,22 +65605,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b47b00", + "id": "0x7feb10ddde30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36058, + "offset": 35560, "col": 32, "tokLen": 3 }, "end": { - "offset": 36071, + "offset": 35573, "col": 45, "tokLen": 4 } @@ -66492,17 +65628,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -66512,16 +65648,16 @@ ] }, { - "id": "0x7f0da6b47b68", + "id": "0x7feb10ddde98", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36078, + "offset": 35580, "col": 52, "tokLen": 2 }, "end": { - "offset": 36078, + "offset": 35580, "col": 52, "tokLen": 2 } @@ -66533,16 +65669,16 @@ "value": "16" }, { - "id": "0x7f0da6b47b88", + "id": "0x7feb10dddeb8", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36083, + "offset": 35585, "col": 57, "tokLen": 2 }, "end": { - "offset": 36083, + "offset": 35585, "col": 57, "tokLen": 2 } @@ -66560,33 +65696,33 @@ ] }, { - "id": "0x7f0da6b47d60", + "id": "0x7feb10dde090", "kind": "ReturnStmt", "range": { "begin": { - "offset": 36091, - "line": 1179, + "offset": 35593, + "line": 1163, "col": 5, "tokLen": 6 }, "end": { - "offset": 36124, + "offset": 35626, "col": 38, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b47cf8", + "id": "0x7feb10dde028", "kind": "CallExpr", "range": { "begin": { - "offset": 36098, + "offset": 35600, "col": 12, "tokLen": 3 }, "end": { - "offset": 36124, + "offset": 35626, "col": 38, "tokLen": 1 } @@ -66597,16 +65733,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b47ce0", + "id": "0x7feb10dde010", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36098, + "offset": 35600, "col": 12, "tokLen": 3 }, "end": { - "offset": 36103, + "offset": 35605, "col": 17, "tokLen": 4 } @@ -66618,16 +65754,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b47cb0", + "id": "0x7feb10dddfe0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36098, + "offset": 35600, "col": 12, "tokLen": 3 }, "end": { - "offset": 36103, + "offset": 35605, "col": 17, "tokLen": 4 } @@ -66637,7 +65773,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c88ede0", + "id": "0x37ac0430", "kind": "FunctionDecl", "name": "stoi", "type": { @@ -66648,16 +65784,16 @@ ] }, { - "id": "0x7f0da6b47c60", + "id": "0x7feb10dddf90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36108, + "offset": 35610, "col": 22, "tokLen": 1 }, "end": { - "offset": 36108, + "offset": 35610, "col": 22, "tokLen": 1 } @@ -66665,11 +65801,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b47638", + "id": "0x7feb10ddd968", "kind": "ParmVarDecl", "name": "s", "type": { @@ -66678,16 +65814,16 @@ } }, { - "id": "0x7f0da6b47d30", + "id": "0x7feb10dde060", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36111, + "offset": 35613, "col": 25, "tokLen": 7 }, "end": { - "offset": 36111, + "offset": 35613, "col": 25, "tokLen": 7 } @@ -66699,16 +65835,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b47c80", + "id": "0x7feb10dddfb0", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 36111, + "offset": 35613, "col": 25, "tokLen": 7 }, "end": { - "offset": 36111, + "offset": 35613, "col": 25, "tokLen": 7 } @@ -66721,16 +65857,16 @@ ] }, { - "id": "0x7f0da6b47d48", + "id": "0x7feb10dde078", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36120, + "offset": 35622, "col": 34, "tokLen": 4 }, "end": { - "offset": 36120, + "offset": 35622, "col": 34, "tokLen": 4 } @@ -66742,16 +65878,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b47c90", + "id": "0x7feb10dddfc0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36120, + "offset": 35622, "col": 34, "tokLen": 4 }, "end": { - "offset": 36120, + "offset": 35622, "col": 34, "tokLen": 4 } @@ -66761,7 +65897,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b478d8", + "id": "0x7feb10dddc08", "kind": "VarDecl", "name": "base", "type": { @@ -66780,29 +65916,29 @@ ] } { - "id": "0x7f0da6b47eb8", + "id": "0x7feb10dde1e8", "kind": "FunctionDecl", "loc": { - "offset": 36147, + "offset": 35649, "file": "ToString.cpp", - "line": 1182, + "line": 1166, "col": 18, "tokLen": 8 }, "range": { "begin": { - "offset": 36130, + "offset": 35632, "col": 1, "tokLen": 8 }, "end": { - "offset": 36391, - "line": 1192, + "offset": 35893, + "line": 1176, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37d648", + "previousDecl": "0x385adc38", "name": "StringTo", "mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -66816,7 +65952,7 @@ }, "inner": [ { - "id": "0x2bf08c70", + "id": "0x3713ac50", "kind": "BuiltinType", "type": { "qualType": "bool" @@ -66825,22 +65961,22 @@ ] }, { - "id": "0x7f0da6b47df8", + "id": "0x7feb10dde128", "kind": "ParmVarDecl", "loc": { - "offset": 36175, - "line": 1182, + "offset": 35677, + "line": 1166, "col": 46, "tokLen": 1 }, "range": { "begin": { - "offset": 36156, + "offset": 35658, "col": 27, "tokLen": 5 }, "end": { - "offset": 36175, + "offset": 35677, "col": 46, "tokLen": 1 } @@ -66852,55 +65988,55 @@ } }, { - "id": "0x7f0da6b48578", + "id": "0x7feb10dde8a8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 36178, + "offset": 35680, "col": 49, "tokLen": 1 }, "end": { - "offset": 36391, - "line": 1192, + "offset": 35893, + "line": 1176, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48248", + "id": "0x7feb10dde578", "kind": "DeclStmt", "range": { "begin": { - "offset": 36184, - "line": 1183, + "offset": 35686, + "line": 1167, "col": 5, "tokLen": 3 }, "end": { - "offset": 36217, + "offset": 35719, "col": 38, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48088", + "id": "0x7feb10dde3b8", "kind": "VarDecl", "loc": { - "offset": 36188, + "offset": 35690, "col": 9, "tokLen": 1 }, "range": { "begin": { - "offset": 36184, + "offset": 35686, "col": 5, "tokLen": 3 }, "end": { - "offset": 36216, + "offset": 35718, "col": 37, "tokLen": 1 } @@ -66913,16 +66049,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b481f8", + "id": "0x7feb10dde528", "kind": "CallExpr", "range": { "begin": { - "offset": 36192, + "offset": 35694, "col": 13, "tokLen": 3 }, "end": { - "offset": 36216, + "offset": 35718, "col": 37, "tokLen": 1 } @@ -66933,16 +66069,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b481e0", + "id": "0x7feb10dde510", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36192, + "offset": 35694, "col": 13, "tokLen": 3 }, "end": { - "offset": 36197, + "offset": 35699, "col": 18, "tokLen": 4 } @@ -66954,16 +66090,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b481b0", + "id": "0x7feb10dde4e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36192, + "offset": 35694, "col": 13, "tokLen": 3 }, "end": { - "offset": 36197, + "offset": 35699, "col": 18, "tokLen": 4 } @@ -66973,7 +66109,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c88ede0", + "id": "0x37ac0430", "kind": "FunctionDecl", "name": "stoi", "type": { @@ -66984,16 +66120,16 @@ ] }, { - "id": "0x7f0da6b48160", + "id": "0x7feb10dde490", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36202, + "offset": 35704, "col": 23, "tokLen": 1 }, "end": { - "offset": 36202, + "offset": 35704, "col": 23, "tokLen": 1 } @@ -67001,11 +66137,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b47df8", + "id": "0x7feb10dde128", "kind": "ParmVarDecl", "name": "s", "type": { @@ -67014,16 +66150,16 @@ } }, { - "id": "0x7f0da6b48230", + "id": "0x7feb10dde560", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36205, + "offset": 35707, "col": 26, "tokLen": 7 }, "end": { - "offset": 36205, + "offset": 35707, "col": 26, "tokLen": 7 } @@ -67035,16 +66171,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b48180", + "id": "0x7feb10dde4b0", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 36205, + "offset": 35707, "col": 26, "tokLen": 7 }, "end": { - "offset": 36205, + "offset": 35707, "col": 26, "tokLen": 7 } @@ -67057,16 +66193,16 @@ ] }, { - "id": "0x7f0da6b48190", + "id": "0x7feb10dde4c0", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36214, + "offset": 35716, "col": 35, "tokLen": 2 }, "end": { - "offset": 36214, + "offset": 35716, "col": 35, "tokLen": 2 } @@ -67084,35 +66220,35 @@ ] }, { - "id": "0x7f0da6b48298", + "id": "0x7feb10dde5c8", "kind": "SwitchStmt", "range": { "begin": { - "offset": 36223, - "line": 1184, + "offset": 35725, + "line": 1168, "col": 5, "tokLen": 6 }, "end": { - "offset": 36389, - "line": 1191, + "offset": 35891, + "line": 1175, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48280", + "id": "0x7feb10dde5b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36231, - "line": 1184, + "offset": 35733, + "line": 1168, "col": 13, "tokLen": 1 }, "end": { - "offset": 36231, + "offset": 35733, "col": 13, "tokLen": 1 } @@ -67124,16 +66260,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b48260", + "id": "0x7feb10dde590", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36231, + "offset": 35733, "col": 13, "tokLen": 1 }, "end": { - "offset": 36231, + "offset": 35733, "col": 13, "tokLen": 1 } @@ -67143,7 +66279,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b48088", + "id": "0x7feb10dde3b8", "kind": "VarDecl", "name": "i", "type": { @@ -67154,52 +66290,52 @@ ] }, { - "id": "0x7f0da6b48550", + "id": "0x7feb10dde880", "kind": "CompoundStmt", "range": { "begin": { - "offset": 36234, + "offset": 35736, "col": 16, "tokLen": 1 }, "end": { - "offset": 36389, - "line": 1191, + "offset": 35891, + "line": 1175, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48300", + "id": "0x7feb10dde630", "kind": "CaseStmt", "range": { "begin": { - "offset": 36240, - "line": 1185, + "offset": 35742, + "line": 1169, "col": 5, "tokLen": 4 }, "end": { - "offset": 36263, - "line": 1186, + "offset": 35765, + "line": 1170, "col": 16, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b482e0", + "id": "0x7feb10dde610", "kind": "ConstantExpr", "range": { "begin": { - "offset": 36245, - "line": 1185, + "offset": 35747, + "line": 1169, "col": 10, "tokLen": 1 }, "end": { - "offset": 36245, + "offset": 35747, "col": 10, "tokLen": 1 } @@ -67211,16 +66347,16 @@ "value": "0", "inner": [ { - "id": "0x7f0da6b482c0", + "id": "0x7feb10dde5f0", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36245, + "offset": 35747, "col": 10, "tokLen": 1 }, "end": { - "offset": 36245, + "offset": 35747, "col": 10, "tokLen": 1 } @@ -67234,33 +66370,33 @@ ] }, { - "id": "0x7f0da6b48338", + "id": "0x7feb10dde668", "kind": "ReturnStmt", "range": { "begin": { - "offset": 36256, - "line": 1186, + "offset": 35758, + "line": 1170, "col": 9, "tokLen": 6 }, "end": { - "offset": 36263, + "offset": 35765, "col": 16, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b48328", + "id": "0x7feb10dde658", "kind": "CXXBoolLiteralExpr", "range": { "begin": { - "offset": 36263, + "offset": 35765, "col": 16, "tokLen": 5 }, "end": { - "offset": 36263, + "offset": 35765, "col": 16, "tokLen": 5 } @@ -67276,35 +66412,35 @@ ] }, { - "id": "0x7f0da6b48388", + "id": "0x7feb10dde6b8", "kind": "CaseStmt", "range": { "begin": { - "offset": 36274, - "line": 1187, + "offset": 35776, + "line": 1171, "col": 5, "tokLen": 4 }, "end": { - "offset": 36297, - "line": 1188, + "offset": 35799, + "line": 1172, "col": 16, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b48368", + "id": "0x7feb10dde698", "kind": "ConstantExpr", "range": { "begin": { - "offset": 36279, - "line": 1187, + "offset": 35781, + "line": 1171, "col": 10, "tokLen": 1 }, "end": { - "offset": 36279, + "offset": 35781, "col": 10, "tokLen": 1 } @@ -67316,16 +66452,16 @@ "value": "1", "inner": [ { - "id": "0x7f0da6b48348", + "id": "0x7feb10dde678", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36279, + "offset": 35781, "col": 10, "tokLen": 1 }, "end": { - "offset": 36279, + "offset": 35781, "col": 10, "tokLen": 1 } @@ -67339,33 +66475,33 @@ ] }, { - "id": "0x7f0da6b483c0", + "id": "0x7feb10dde6f0", "kind": "ReturnStmt", "range": { "begin": { - "offset": 36290, - "line": 1188, + "offset": 35792, + "line": 1172, "col": 9, "tokLen": 6 }, "end": { - "offset": 36297, + "offset": 35799, "col": 16, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b483b0", + "id": "0x7feb10dde6e0", "kind": "CXXBoolLiteralExpr", "range": { "begin": { - "offset": 36297, + "offset": 35799, "col": 16, "tokLen": 4 }, "end": { - "offset": 36297, + "offset": 35799, "col": 16, "tokLen": 4 } @@ -67381,34 +66517,34 @@ ] }, { - "id": "0x7f0da6b48530", + "id": "0x7feb10dde860", "kind": "DefaultStmt", "range": { "begin": { - "offset": 36307, - "line": 1189, + "offset": 35809, + "line": 1173, "col": 5, "tokLen": 7 }, "end": { - "offset": 36382, - "line": 1190, + "offset": 35884, + "line": 1174, "col": 67, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48518", + "id": "0x7feb10dde848", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 36324, + "offset": 35826, "col": 9, "tokLen": 5 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67420,16 +66556,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b48500", + "id": "0x7feb10dde830", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 36324, + "offset": 35826, "col": 9, "tokLen": 5 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67440,16 +66576,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b484d0", + "id": "0x7feb10dde800", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67467,16 +66603,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b484b8", + "id": "0x7feb10dde7e8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67489,16 +66625,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b48490", + "id": "0x7feb10dde7c0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67510,7 +66646,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c968a58", + "id": "0x37b9a6a8", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -67519,16 +66655,16 @@ }, "inner": [ { - "id": "0x7f0da6b48470", + "id": "0x7feb10dde7a0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67538,9 +66674,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b48468", + "temp": "0x7feb10dde798", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -67549,16 +66685,16 @@ }, "inner": [ { - "id": "0x7f0da6b48438", + "id": "0x7feb10dde768", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67575,16 +66711,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b48420", + "id": "0x7feb10dde750", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36343, + "offset": 35845, "col": 28, "tokLen": 39 }, "end": { - "offset": 36343, + "offset": 35845, "col": 28, "tokLen": 39 } @@ -67596,16 +66732,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b483e0", + "id": "0x7feb10dde710", "kind": "StringLiteral", "range": { "begin": { - "offset": 36343, + "offset": 35845, "col": 28, "tokLen": 39 }, "end": { - "offset": 36343, + "offset": 35845, "col": 28, "tokLen": 39 } @@ -67643,29 +66779,29 @@ ] } { - "id": "0x7f0da6b486c8", + "id": "0x7feb10dde9f8", "kind": "FunctionDecl", "loc": { - "offset": 36414, + "offset": 35916, "file": "ToString.cpp", - "line": 1194, + "line": 1178, "col": 21, "tokLen": 8 }, "range": { "begin": { - "offset": 36394, + "offset": 35896, "col": 1, "tokLen": 8 }, "end": { - "offset": 36547, - "line": 1197, + "offset": 36049, + "line": 1181, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37db18", + "previousDecl": "0x385ae108", "name": "StringTo", "mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -67679,7 +66815,7 @@ }, "inner": [ { - "id": "0x2bf08d10", + "id": "0x3713acf0", "kind": "BuiltinType", "type": { "qualType": "long" @@ -67688,22 +66824,22 @@ ] }, { - "id": "0x7f0da6b48600", + "id": "0x7feb10dde930", "kind": "ParmVarDecl", "loc": { - "offset": 36442, - "line": 1194, + "offset": 35944, + "line": 1178, "col": 49, "tokLen": 1 }, "range": { "begin": { - "offset": 36423, + "offset": 35925, "col": 30, "tokLen": 5 }, "end": { - "offset": 36442, + "offset": 35944, "col": 49, "tokLen": 1 } @@ -67715,55 +66851,55 @@ } }, { - "id": "0x7f0da6b48d88", + "id": "0x7feb10ddf0b8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 36445, + "offset": 35947, "col": 52, "tokLen": 1 }, "end": { - "offset": 36547, - "line": 1197, + "offset": 36049, + "line": 1181, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48b98", + "id": "0x7feb10ddeec8", "kind": "DeclStmt", "range": { "begin": { - "offset": 36451, - "line": 1195, + "offset": 35953, + "line": 1179, "col": 5, "tokLen": 3 }, "end": { - "offset": 36505, + "offset": 36007, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48898", + "id": "0x7feb10ddebc8", "kind": "VarDecl", "loc": { - "offset": 36455, + "offset": 35957, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 36451, + "offset": 35953, "col": 5, "tokLen": 3 }, "end": { - "offset": 36503, + "offset": 36005, "col": 57, "tokLen": 2 } @@ -67776,16 +66912,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b48b68", + "id": "0x7feb10ddee98", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36503, + "offset": 36005, "col": 57, "tokLen": 2 } @@ -67796,16 +66932,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b48b08", + "id": "0x7feb10ddee38", "kind": "BinaryOperator", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36491, + "offset": 35993, "col": 45, "tokLen": 4 } @@ -67817,16 +66953,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b489e0", + "id": "0x7feb10dded10", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36473, + "offset": 35975, "col": 27, "tokLen": 1 } @@ -67834,21 +66970,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b489b0", + "id": "0x7feb10ddece0", "kind": "MemberExpr", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36464, + "offset": 35966, "col": 18, "tokLen": 4 } @@ -67859,19 +66995,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b48900", + "id": "0x7feb10ddec30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 } @@ -67879,11 +67015,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b48600", + "id": "0x7feb10dde930", "kind": "ParmVarDecl", "name": "s", "type": { @@ -67894,16 +67030,16 @@ ] }, { - "id": "0x7f0da6b48a10", + "id": "0x7feb10dded40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36469, + "offset": 35971, "col": 23, "tokLen": 4 }, "end": { - "offset": 36469, + "offset": 35971, "col": 23, "tokLen": 4 } @@ -67915,16 +67051,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b48990", + "id": "0x7feb10ddecc0", "kind": "StringLiteral", "range": { "begin": { - "offset": 36469, + "offset": 35971, "col": 23, "tokLen": 4 }, "end": { - "offset": 36469, + "offset": 35971, "col": 23, "tokLen": 4 } @@ -67938,7 +67074,7 @@ ] }, { - "id": "0x7f0da6b48a28", + "id": "0x7feb10dded58", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -67947,23 +67083,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b48af0", + "id": "0x7feb10ddee20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36478, + "offset": 35980, "col": 32, "tokLen": 3 }, "end": { - "offset": 36491, + "offset": 35993, "col": 45, "tokLen": 4 } @@ -67971,22 +67107,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b48ac0", + "id": "0x7feb10ddedf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36478, + "offset": 35980, "col": 32, "tokLen": 3 }, "end": { - "offset": 36491, + "offset": 35993, "col": 45, "tokLen": 4 } @@ -67994,17 +67130,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -68014,16 +67150,16 @@ ] }, { - "id": "0x7f0da6b48b28", + "id": "0x7feb10ddee58", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36498, + "offset": 36000, "col": 52, "tokLen": 2 }, "end": { - "offset": 36498, + "offset": 36000, "col": 52, "tokLen": 2 } @@ -68035,16 +67171,16 @@ "value": "16" }, { - "id": "0x7f0da6b48b48", + "id": "0x7feb10ddee78", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36503, + "offset": 36005, "col": 57, "tokLen": 2 }, "end": { - "offset": 36503, + "offset": 36005, "col": 57, "tokLen": 2 } @@ -68062,33 +67198,33 @@ ] }, { - "id": "0x7f0da6b48d78", + "id": "0x7feb10ddf0a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 36511, - "line": 1196, + "offset": 36013, + "line": 1180, "col": 5, "tokLen": 6 }, "end": { - "offset": 36544, + "offset": 36046, "col": 38, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48d10", + "id": "0x7feb10ddf040", "kind": "CallExpr", "range": { "begin": { - "offset": 36518, + "offset": 36020, "col": 12, "tokLen": 3 }, "end": { - "offset": 36544, + "offset": 36046, "col": 38, "tokLen": 1 } @@ -68099,16 +67235,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b48cf8", + "id": "0x7feb10ddf028", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36518, + "offset": 36020, "col": 12, "tokLen": 3 }, "end": { - "offset": 36523, + "offset": 36025, "col": 17, "tokLen": 4 } @@ -68120,16 +67256,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b48c70", + "id": "0x7feb10ddefa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36518, + "offset": 36020, "col": 12, "tokLen": 3 }, "end": { - "offset": 36523, + "offset": 36025, "col": 17, "tokLen": 4 } @@ -68139,7 +67275,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c8d05c0", + "id": "0x37b01ff0", "kind": "FunctionDecl", "name": "stol", "type": { @@ -68150,16 +67286,16 @@ ] }, { - "id": "0x7f0da6b48c20", + "id": "0x7feb10ddef50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36528, + "offset": 36030, "col": 22, "tokLen": 1 }, "end": { - "offset": 36528, + "offset": 36030, "col": 22, "tokLen": 1 } @@ -68167,11 +67303,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b48600", + "id": "0x7feb10dde930", "kind": "ParmVarDecl", "name": "s", "type": { @@ -68180,16 +67316,16 @@ } }, { - "id": "0x7f0da6b48d48", + "id": "0x7feb10ddf078", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36531, + "offset": 36033, "col": 25, "tokLen": 7 }, "end": { - "offset": 36531, + "offset": 36033, "col": 25, "tokLen": 7 } @@ -68201,16 +67337,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b48c40", + "id": "0x7feb10ddef70", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 36531, + "offset": 36033, "col": 25, "tokLen": 7 }, "end": { - "offset": 36531, + "offset": 36033, "col": 25, "tokLen": 7 } @@ -68223,16 +67359,16 @@ ] }, { - "id": "0x7f0da6b48d60", + "id": "0x7feb10ddf090", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36540, + "offset": 36042, "col": 34, "tokLen": 4 }, "end": { - "offset": 36540, + "offset": 36042, "col": 34, "tokLen": 4 } @@ -68244,16 +67380,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b48c50", + "id": "0x7feb10ddef80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36540, + "offset": 36042, "col": 34, "tokLen": 4 }, "end": { - "offset": 36540, + "offset": 36042, "col": 34, "tokLen": 4 } @@ -68263,7 +67399,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b48898", + "id": "0x7feb10ddebc8", "kind": "VarDecl", "name": "base", "type": { diff --git a/slsDetectorSoftware/generator/autocomplete/fixed.json b/slsDetectorSoftware/generator/autocomplete/fixed.json index 32c285114..6ab42931c 100644 --- a/slsDetectorSoftware/generator/autocomplete/fixed.json +++ b/slsDetectorSoftware/generator/autocomplete/fixed.json @@ -1,6 +1,6 @@ [ { - "id": "0x2d33fd20", + "id": "0x3856fae0", "kind": "FunctionTemplateDecl", "loc": { "offset": 8829, @@ -35,7 +35,7 @@ "name": "StringTo", "inner": [ { - "id": "0x2d33f9b8", + "id": "0x3856f778", "kind": "TemplateTypeParmDecl", "loc": { "offset": 8824, @@ -71,7 +71,7 @@ "index": 0 }, { - "id": "0x2d33fc78", + "id": "0x3856fa38", "kind": "FunctionDecl", "loc": { "offset": 8829, @@ -107,7 +107,7 @@ }, "inner": [ { - "id": "0x2d33faa8", + "id": "0x3856f868", "kind": "ParmVarDecl", "loc": { "offset": 8857, @@ -143,7 +143,7 @@ } }, { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "loc": { "offset": 8879, @@ -178,7 +178,7 @@ } }, { - "id": "0x2d374e28", + "id": "0x385a5418", "kind": "CompoundStmt", "range": { "begin": { @@ -201,7 +201,7 @@ }, "inner": [ { - "id": "0x2d33ff58", + "id": "0x3856fd18", "kind": "DeclStmt", "range": { "begin": { @@ -224,7 +224,7 @@ }, "inner": [ { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "loc": { "offset": 8898, @@ -260,7 +260,7 @@ "init": "list", "inner": [ { - "id": "0x2d33fef8", + "id": "0x3856fcb8", "kind": "InitListExpr", "range": { "begin": { @@ -286,7 +286,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d33ff38", + "id": "0x3856fcf8", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -313,7 +313,7 @@ "castKind": "IntegralToFloating", "inner": [ { - "id": "0x2d33fe80", + "id": "0x3856fc40", "kind": "IntegerLiteral", "range": { "begin": { @@ -348,7 +348,7 @@ ] }, { - "id": "0x2d3404a8", + "id": "0x38570268", "kind": "CXXTryStmt", "range": { "begin": { @@ -372,7 +372,7 @@ }, "inner": [ { - "id": "0x2d340130", + "id": "0x3856fef0", "kind": "CompoundStmt", "range": { "begin": { @@ -396,7 +396,7 @@ }, "inner": [ { - "id": "0x2d340110", + "id": "0x3856fed0", "kind": "BinaryOperator", "range": { "begin": { @@ -424,7 +424,7 @@ "opcode": "=", "inner": [ { - "id": "0x2d33ff70", + "id": "0x3856fd30", "kind": "DeclRefExpr", "range": { "begin": { @@ -449,7 +449,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -458,7 +458,7 @@ } }, { - "id": "0x2d3400c0", + "id": "0x3856fe80", "kind": "CallExpr", "range": { "begin": { @@ -484,7 +484,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3400a8", + "id": "0x3856fe68", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -511,7 +511,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d340020", + "id": "0x3856fde0", "kind": "DeclRefExpr", "range": { "begin": { @@ -536,7 +536,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c8d75c0", + "id": "0x37b08ff0", "kind": "FunctionDecl", "name": "stod", "type": { @@ -547,7 +547,7 @@ ] }, { - "id": "0x2d340000", + "id": "0x3856fdc0", "kind": "DeclRefExpr", "range": { "begin": { @@ -570,11 +570,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33faa8", + "id": "0x3856f868", "kind": "ParmVarDecl", "name": "t", "type": { @@ -583,7 +583,7 @@ } }, { - "id": "0x2d3400f0", + "id": "0x3856feb0", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -601,7 +601,7 @@ ] }, { - "id": "0x2d340488", + "id": "0x38570248", "kind": "CXXCatchStmt", "range": { "begin": { @@ -625,7 +625,7 @@ }, "inner": [ { - "id": "0x2d340200", + "id": "0x3856ffc0", "kind": "VarDecl", "loc": { "offset": 8988, @@ -660,7 +660,7 @@ } }, { - "id": "0x2d340470", + "id": "0x38570230", "kind": "CompoundStmt", "range": { "begin": { @@ -683,7 +683,7 @@ }, "inner": [ { - "id": "0x2d340458", + "id": "0x38570218", "kind": "ExprWithCleanups", "range": { "begin": { @@ -711,7 +711,7 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x2d340440", + "id": "0x38570200", "kind": "CXXThrowExpr", "range": { "begin": { @@ -737,7 +737,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d340410", + "id": "0x385701d0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -770,7 +770,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d3403f8", + "id": "0x385701b8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -798,7 +798,7 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x2d3403d0", + "id": "0x38570190", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -825,7 +825,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c968a58", + "id": "0x37b9a6a8", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -834,7 +834,7 @@ }, "inner": [ { - "id": "0x2d3403b0", + "id": "0x38570170", "kind": "CXXBindTemporaryExpr", "range": { "begin": { @@ -859,9 +859,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x2d3403a8", + "temp": "0x38570168", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -870,7 +870,7 @@ }, "inner": [ { - "id": "0x2d340378", + "id": "0x38570138", "kind": "CXXConstructExpr", "range": { "begin": { @@ -902,7 +902,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d340330", + "id": "0x385700f0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -929,7 +929,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d3402f8", + "id": "0x385700b8", "kind": "StringLiteral", "range": { "begin": { @@ -978,7 +978,7 @@ ] }, { - "id": "0x2d340580", + "id": "0x38570340", "kind": "DeclStmt", "range": { "begin": { @@ -1001,7 +1001,7 @@ }, "inner": [ { - "id": "0x2d3404d8", + "id": "0x38570298", "kind": "UsingDecl", "loc": { "offset": 9087, @@ -1034,7 +1034,7 @@ ] }, { - "id": "0x2d340650", + "id": "0x38570410", "kind": "DeclStmt", "range": { "begin": { @@ -1057,7 +1057,7 @@ }, "inner": [ { - "id": "0x2d3405a8", + "id": "0x38570368", "kind": "UsingDecl", "loc": { "offset": 9120, @@ -1090,7 +1090,7 @@ ] }, { - "id": "0x2d374df8", + "id": "0x385a53e8", "kind": "IfStmt", "range": { "begin": { @@ -1115,7 +1115,7 @@ "hasElse": true, "inner": [ { - "id": "0x2d3418c8", + "id": "0x38571688", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -1143,7 +1143,7 @@ "adl": true, "inner": [ { - "id": "0x2d3418b0", + "id": "0x38571670", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1170,7 +1170,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d341890", + "id": "0x38571650", "kind": "DeclRefExpr", "range": { "begin": { @@ -1195,7 +1195,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -1206,7 +1206,7 @@ ] }, { - "id": "0x2d340668", + "id": "0x38570428", "kind": "DeclRefExpr", "range": { "begin": { @@ -1229,11 +1229,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -1242,7 +1242,7 @@ } }, { - "id": "0x2d341878", + "id": "0x38571638", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1269,7 +1269,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d340688", + "id": "0x38570448", "kind": "StringLiteral", "range": { "begin": { @@ -1300,7 +1300,7 @@ ] }, { - "id": "0x2d355c50", + "id": "0x38585a60", "kind": "CompoundStmt", "range": { "begin": { @@ -1323,7 +1323,7 @@ }, "inner": [ { - "id": "0x2d355c40", + "id": "0x38585a50", "kind": "ReturnStmt", "range": { "begin": { @@ -1346,7 +1346,7 @@ }, "inner": [ { - "id": "0x2d355c18", + "id": "0x38585a28", "kind": "CallExpr", "range": { "begin": { @@ -1372,7 +1372,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d341910", + "id": "0x385716d0", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -1400,14 +1400,14 @@ "name": "duration_cast", "lookups": [ { - "id": "0x2d340600", + "id": "0x385703c0", "kind": "UsingShadowDecl", "name": "duration_cast" } ] }, { - "id": "0x2d355bf0", + "id": "0x38585a00", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -1434,7 +1434,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2d355898", + "id": "0x385856a8", "kind": "CXXConstructorDecl", "name": "duration", "type": { @@ -1443,7 +1443,7 @@ }, "inner": [ { - "id": "0x2d355bc0", + "id": "0x385859d0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -1475,7 +1475,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d3559f0", + "id": "0x38585800", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1503,7 +1503,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d341be0", + "id": "0x385719a0", "kind": "DeclRefExpr", "range": { "begin": { @@ -1528,7 +1528,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -1549,7 +1549,7 @@ ] }, { - "id": "0x2d374dc8", + "id": "0x385a53b8", "kind": "IfStmt", "range": { "begin": { @@ -1574,7 +1574,7 @@ "hasElse": true, "inner": [ { - "id": "0x2d356ec8", + "id": "0x38586cd8", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -1602,7 +1602,7 @@ "adl": true, "inner": [ { - "id": "0x2d356eb0", + "id": "0x38586cc0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1629,7 +1629,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d356e90", + "id": "0x38586ca0", "kind": "DeclRefExpr", "range": { "begin": { @@ -1654,7 +1654,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -1665,7 +1665,7 @@ ] }, { - "id": "0x2d355c68", + "id": "0x38585a78", "kind": "DeclRefExpr", "range": { "begin": { @@ -1688,11 +1688,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -1701,7 +1701,7 @@ } }, { - "id": "0x2d356e78", + "id": "0x38586c88", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1728,7 +1728,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d355c88", + "id": "0x38585a98", "kind": "StringLiteral", "range": { "begin": { @@ -1759,7 +1759,7 @@ ] }, { - "id": "0x2d360050", + "id": "0x3858fe60", "kind": "CompoundStmt", "range": { "begin": { @@ -1782,7 +1782,7 @@ }, "inner": [ { - "id": "0x2d360040", + "id": "0x3858fe50", "kind": "ReturnStmt", "range": { "begin": { @@ -1805,7 +1805,7 @@ }, "inner": [ { - "id": "0x2d360018", + "id": "0x3858fe28", "kind": "CallExpr", "range": { "begin": { @@ -1831,7 +1831,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d356f10", + "id": "0x38586d20", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -1859,14 +1859,14 @@ "name": "duration_cast", "lookups": [ { - "id": "0x2d340600", + "id": "0x385703c0", "kind": "UsingShadowDecl", "name": "duration_cast" } ] }, { - "id": "0x2d35fff0", + "id": "0x3858fe00", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -1893,7 +1893,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2d35fc98", + "id": "0x3858faa8", "kind": "CXXConstructorDecl", "name": "duration", "type": { @@ -1902,7 +1902,7 @@ }, "inner": [ { - "id": "0x2d35ffc0", + "id": "0x3858fdd0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -1934,7 +1934,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d35fdf0", + "id": "0x3858fc00", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -1962,7 +1962,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3571e0", + "id": "0x38586ff0", "kind": "DeclRefExpr", "range": { "begin": { @@ -1987,7 +1987,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -2008,7 +2008,7 @@ ] }, { - "id": "0x2d374d98", + "id": "0x385a5388", "kind": "IfStmt", "range": { "begin": { @@ -2033,7 +2033,7 @@ "hasElse": true, "inner": [ { - "id": "0x2d3612c8", + "id": "0x385910d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -2061,7 +2061,7 @@ "adl": true, "inner": [ { - "id": "0x2d3612b0", + "id": "0x385910c0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2088,7 +2088,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d361290", + "id": "0x385910a0", "kind": "DeclRefExpr", "range": { "begin": { @@ -2113,7 +2113,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -2124,7 +2124,7 @@ ] }, { - "id": "0x2d360068", + "id": "0x3858fe78", "kind": "DeclRefExpr", "range": { "begin": { @@ -2147,11 +2147,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -2160,7 +2160,7 @@ } }, { - "id": "0x2d361278", + "id": "0x38591088", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2187,7 +2187,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d360088", + "id": "0x3858fe98", "kind": "StringLiteral", "range": { "begin": { @@ -2218,7 +2218,7 @@ ] }, { - "id": "0x2d36a4b0", + "id": "0x3859a270", "kind": "CompoundStmt", "range": { "begin": { @@ -2241,7 +2241,7 @@ }, "inner": [ { - "id": "0x2d36a4a0", + "id": "0x3859a260", "kind": "ReturnStmt", "range": { "begin": { @@ -2264,7 +2264,7 @@ }, "inner": [ { - "id": "0x2d36a478", + "id": "0x3859a238", "kind": "CallExpr", "range": { "begin": { @@ -2290,7 +2290,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d361310", + "id": "0x38591120", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -2318,14 +2318,14 @@ "name": "duration_cast", "lookups": [ { - "id": "0x2d340600", + "id": "0x385703c0", "kind": "UsingShadowDecl", "name": "duration_cast" } ] }, { - "id": "0x2d36a450", + "id": "0x3859a210", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -2352,7 +2352,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2d36a0f8", + "id": "0x38599eb8", "kind": "CXXConstructorDecl", "name": "duration", "type": { @@ -2361,7 +2361,7 @@ }, "inner": [ { - "id": "0x2d36a420", + "id": "0x3859a1e0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -2393,7 +2393,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d36a250", + "id": "0x3859a010", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2421,7 +2421,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3615e0", + "id": "0x385913f0", "kind": "DeclRefExpr", "range": { "begin": { @@ -2446,7 +2446,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -2467,7 +2467,7 @@ ] }, { - "id": "0x2d374d68", + "id": "0x385a5358", "kind": "IfStmt", "range": { "begin": { @@ -2492,7 +2492,7 @@ "hasElse": true, "inner": [ { - "id": "0x2d36b7f8", + "id": "0x3859b5b8", "kind": "BinaryOperator", "range": { "begin": { @@ -2520,7 +2520,7 @@ "opcode": "||", "inner": [ { - "id": "0x2d36b728", + "id": "0x3859b4e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -2547,7 +2547,7 @@ "adl": true, "inner": [ { - "id": "0x2d36b710", + "id": "0x3859b4d0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2574,7 +2574,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d36b6f0", + "id": "0x3859b4b0", "kind": "DeclRefExpr", "range": { "begin": { @@ -2599,7 +2599,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -2610,7 +2610,7 @@ ] }, { - "id": "0x2d36a4c8", + "id": "0x3859a288", "kind": "DeclRefExpr", "range": { "begin": { @@ -2633,11 +2633,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -2646,7 +2646,7 @@ } }, { - "id": "0x2d36b6d8", + "id": "0x3859b498", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -2673,7 +2673,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d36a4e8", + "id": "0x3859a2a8", "kind": "StringLiteral", "range": { "begin": { @@ -2704,7 +2704,7 @@ ] }, { - "id": "0x2d36b7b0", + "id": "0x3859b570", "kind": "CXXMemberCallExpr", "range": { "begin": { @@ -2730,7 +2730,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d36b780", + "id": "0x3859b540", "kind": "MemberExpr", "range": { "begin": { @@ -2756,10 +2756,10 @@ "valueCategory": "prvalue", "name": "empty", "isArrow": false, - "referencedMemberDecl": "0x2c8bc688", + "referencedMemberDecl": "0x37aee0b8", "inner": [ { - "id": "0x2d36b760", + "id": "0x3859b520", "kind": "DeclRefExpr", "range": { "begin": { @@ -2782,11 +2782,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fb68", + "id": "0x3856f928", "kind": "ParmVarDecl", "name": "unit", "type": { @@ -2801,7 +2801,7 @@ ] }, { - "id": "0x2d374b80", + "id": "0x385a5170", "kind": "CompoundStmt", "range": { "begin": { @@ -2824,7 +2824,7 @@ }, "inner": [ { - "id": "0x2d374b70", + "id": "0x385a5160", "kind": "ReturnStmt", "range": { "begin": { @@ -2847,7 +2847,7 @@ }, "inner": [ { - "id": "0x2d374b48", + "id": "0x385a5138", "kind": "CallExpr", "range": { "begin": { @@ -2873,7 +2873,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d36b828", + "id": "0x3859b5e8", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -2901,14 +2901,14 @@ "name": "duration_cast", "lookups": [ { - "id": "0x2d340600", + "id": "0x385703c0", "kind": "UsingShadowDecl", "name": "duration_cast" } ] }, { - "id": "0x2d374b20", + "id": "0x385a5110", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -2935,7 +2935,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2d3747c8", + "id": "0x385a4db8", "kind": "CXXConstructorDecl", "name": "duration", "type": { @@ -2944,7 +2944,7 @@ }, "inner": [ { - "id": "0x2d374af0", + "id": "0x385a50e0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -2976,7 +2976,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d374920", + "id": "0x385a4f10", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -3004,7 +3004,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d36bad0", + "id": "0x3859b890", "kind": "DeclRefExpr", "range": { "begin": { @@ -3029,7 +3029,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d33fe18", + "id": "0x3856fbd8", "kind": "VarDecl", "name": "tval", "type": { @@ -3050,7 +3050,7 @@ ] }, { - "id": "0x2d374d50", + "id": "0x385a5340", "kind": "CompoundStmt", "range": { "begin": { @@ -3074,7 +3074,7 @@ }, "inner": [ { - "id": "0x2d374d38", + "id": "0x385a5328", "kind": "ExprWithCleanups", "range": { "begin": { @@ -3103,7 +3103,7 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x2d374d20", + "id": "0x385a5310", "kind": "CXXThrowExpr", "range": { "begin": { @@ -3131,7 +3131,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d374cf0", + "id": "0x385a52e0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -3166,7 +3166,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d374cd8", + "id": "0x385a52c8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -3196,7 +3196,7 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x2d374cb0", + "id": "0x385a52a0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { @@ -3225,7 +3225,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c968a58", + "id": "0x37b9a6a8", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -3234,7 +3234,7 @@ }, "inner": [ { - "id": "0x2d374c90", + "id": "0x385a5280", "kind": "CXXBindTemporaryExpr", "range": { "begin": { @@ -3261,9 +3261,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x2d374c88", + "temp": "0x385a5278", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -3272,7 +3272,7 @@ }, "inner": [ { - "id": "0x2d374c58", + "id": "0x385a5248", "kind": "CXXConstructExpr", "range": { "begin": { @@ -3306,7 +3306,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d374c40", + "id": "0x385a5230", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -3333,7 +3333,7 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x2d374be8", + "id": "0x385a51d8", "kind": "StringLiteral", "range": { "begin": { @@ -3392,7 +3392,7 @@ ] }, { - "id": "0x2d3750e0", + "id": "0x385a56d0", "kind": "FunctionTemplateDecl", "loc": { "offset": 9697, @@ -3426,7 +3426,7 @@ "name": "StringTo", "inner": [ { - "id": "0x2d374e60", + "id": "0x385a5450", "kind": "TemplateTypeParmDecl", "loc": { "offset": 9692, @@ -3462,7 +3462,7 @@ "index": 0 }, { - "id": "0x2d375038", + "id": "0x385a5628", "kind": "FunctionDecl", "loc": { "offset": 9697, @@ -3497,7 +3497,7 @@ }, "inner": [ { - "id": "0x2d374f48", + "id": "0x385a5538", "kind": "ParmVarDecl", "loc": { "offset": 9725, @@ -3533,7 +3533,7 @@ } }, { - "id": "0x2d375810", + "id": "0x385a5e00", "kind": "CompoundStmt", "range": { "begin": { @@ -3556,7 +3556,7 @@ }, "inner": [ { - "id": "0x2d375340", + "id": "0x385a5930", "kind": "DeclStmt", "range": { "begin": { @@ -3579,7 +3579,7 @@ }, "inner": [ { - "id": "0x2d375210", + "id": "0x385a5800", "kind": "VarDecl", "loc": { "offset": 9746, @@ -3612,12 +3612,12 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "init": "list", "inner": [ { - "id": "0x2d375310", + "id": "0x385a5900", "kind": "CXXConstructExpr", "range": { "begin": { @@ -3640,7 +3640,7 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "ctorType": { @@ -3651,7 +3651,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d375278", + "id": "0x385a5868", "kind": "DeclRefExpr", "range": { "begin": { @@ -3674,11 +3674,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d374f48", + "id": "0x385a5538", "kind": "ParmVarDecl", "name": "t", "type": { @@ -3693,7 +3693,7 @@ ] }, { - "id": "0x2d3756d0", + "id": "0x385a5cc0", "kind": "DeclStmt", "range": { "begin": { @@ -3716,7 +3716,7 @@ }, "inner": [ { - "id": "0x2d375398", + "id": "0x385a5988", "kind": "VarDecl", "loc": { "offset": 9763, @@ -3749,12 +3749,12 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "init": "c", "inner": [ { - "id": "0x2d3756b8", + "id": "0x385a5ca8", "kind": "ExprWithCleanups", "range": { "begin": { @@ -3777,13 +3777,13 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x2d375688", + "id": "0x385a5c78", "kind": "CXXConstructExpr", "range": { "begin": { @@ -3806,7 +3806,7 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "ctorType": { @@ -3817,7 +3817,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d375640", + "id": "0x385a5c30", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -3840,13 +3840,13 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "xvalue", "storageDuration": "full expression", "inner": [ { - "id": "0x2d375530", + "id": "0x385a5b20", "kind": "CXXBindTemporaryExpr", "range": { "begin": { @@ -3869,12 +3869,12 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", - "temp": "0x2d375528", + "temp": "0x385a5b18", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -3883,7 +3883,7 @@ }, "inner": [ { - "id": "0x2d375500", + "id": "0x385a5af0", "kind": "CallExpr", "range": { "begin": { @@ -3906,12 +3906,12 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3754e8", + "id": "0x385a5ad8", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -3938,7 +3938,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d375468", + "id": "0x385a5a58", "kind": "DeclRefExpr", "range": { "begin": { @@ -3963,7 +3963,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce1e5b8", + "id": "0x3804f538", "kind": "FunctionDecl", "name": "RemoveUnit", "type": { @@ -3974,7 +3974,7 @@ ] }, { - "id": "0x2d375448", + "id": "0x385a5a38", "kind": "DeclRefExpr", "range": { "begin": { @@ -3997,17 +3997,17 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d375210", + "id": "0x385a5800", "kind": "VarDecl", "name": "tmp", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } @@ -4026,7 +4026,7 @@ ] }, { - "id": "0x2d375800", + "id": "0x385a5df0", "kind": "ReturnStmt", "range": { "begin": { @@ -4049,7 +4049,7 @@ }, "inner": [ { - "id": "0x2d3757d0", + "id": "0x385a5dc0", "kind": "CallExpr", "range": { "begin": { @@ -4075,7 +4075,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d375710", + "id": "0x385a5d00", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -4103,19 +4103,19 @@ "name": "StringTo", "lookups": [ { - "id": "0x2d3750e0", + "id": "0x385a56d0", "kind": "FunctionTemplateDecl", "name": "StringTo" }, { - "id": "0x2d33fd20", + "id": "0x3856fae0", "kind": "FunctionTemplateDecl", "name": "StringTo" } ] }, { - "id": "0x2d375790", + "id": "0x385a5d80", "kind": "DeclRefExpr", "range": { "begin": { @@ -4138,22 +4138,22 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d375210", + "id": "0x385a5800", "kind": "VarDecl", "name": "tmp", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } }, { - "id": "0x2d3757b0", + "id": "0x385a5da0", "kind": "DeclRefExpr", "range": { "begin": { @@ -4176,17 +4176,17 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d375398", + "id": "0x385a5988", "kind": "VarDecl", "name": "unit", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } @@ -4199,7 +4199,7 @@ ] }, { - "id": "0x7f0da6e85d18", + "id": "0x7feb10ea9db8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4207,7 +4207,7 @@ } }, { - "id": "0x7f0da6e90148", + "id": "0x7feb10eb41e8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4215,7 +4215,7 @@ } }, { - "id": "0x7f0da6e67ba8", + "id": "0x38727ab8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4223,7 +4223,7 @@ } }, { - "id": "0x7f0da6e71f68", + "id": "0x38731e78", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4231,7 +4231,7 @@ } }, { - "id": "0x7f0da6e37988", + "id": "0x7feb10e7ca18", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4239,7 +4239,7 @@ } }, { - "id": "0x7f0da6e3bd78", + "id": "0x7feb10e80e08", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4247,7 +4247,7 @@ } }, { - "id": "0x7f0da6e3ede8", + "id": "0x7feb10e83e78", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4255,7 +4255,7 @@ } }, { - "id": "0x7f0da6e444e8", + "id": "0x7feb10e89578", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4263,7 +4263,7 @@ } }, { - "id": "0x7f0da6e4af48", + "id": "0x7feb10e8ffd8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4271,7 +4271,7 @@ } }, { - "id": "0x7f0da6b961f8", + "id": "0x7feb10e0b598", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4279,7 +4279,7 @@ } }, { - "id": "0x7f0da6b9b8e8", + "id": "0x7feb10e10c88", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4287,7 +4287,7 @@ } }, { - "id": "0x7f0da6b5d9a8", + "id": "0x7feb10e13d28", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4295,7 +4295,7 @@ } }, { - "id": "0x7f0da6b656f8", + "id": "0x3873b8f8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4303,7 +4303,7 @@ } }, { - "id": "0x7f0da6b6add8", + "id": "0x38740fd8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4311,7 +4311,7 @@ } }, { - "id": "0x7f0da6b6f8c8", + "id": "0x38745ac8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4319,7 +4319,7 @@ } }, { - "id": "0x7f0da6b72938", + "id": "0x38748b38", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4327,7 +4327,7 @@ } }, { - "id": "0x7f0da6b7a688", + "id": "0x38750888", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4335,7 +4335,7 @@ } }, { - "id": "0x7f0da6b3c708", + "id": "0x387538f8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4343,7 +4343,7 @@ } }, { - "id": "0x7f0da6b3f7a8", + "id": "0x38756998", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4351,7 +4351,7 @@ } }, { - "id": "0x7f0da6b427f8", + "id": "0x7feb10dd8ba8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4359,7 +4359,7 @@ } }, { - "id": "0x7f0da6b44d88", + "id": "0x7feb10ddb138", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4367,7 +4367,7 @@ } }, { - "id": "0x7f0da6b466b8", + "id": "0x7feb10ddc9e8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4375,7 +4375,7 @@ } }, { - "id": "0x7f0da6b46ed8", + "id": "0x7feb10ddd208", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4383,7 +4383,7 @@ } }, { - "id": "0x7f0da6b47700", + "id": "0x7feb10ddda30", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4391,7 +4391,7 @@ } }, { - "id": "0x7f0da6b47eb8", + "id": "0x7feb10dde1e8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4399,7 +4399,7 @@ } }, { - "id": "0x7f0da6b486c8", + "id": "0x7feb10dde9f8", "kind": "FunctionDecl", "name": "StringTo", "type": { @@ -4409,7 +4409,7 @@ ] }, { - "id": "0x2d3759e8", + "id": "0x385a5fd8", "kind": "FunctionDecl", "loc": { "offset": 9856, @@ -4439,7 +4439,7 @@ } } }, - "previousDecl": "0x2d375c48", + "previousDecl": "0x385a6238", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4453,13 +4453,13 @@ }, "inner": [ { - "id": "0x2cd03d20", + "id": "0x37f35630", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::detectorType" }, "decl": { - "id": "0x2cd03c80", + "id": "0x37f35590", "kind": "EnumDecl", "name": "detectorType" } @@ -4467,7 +4467,7 @@ ] }, { - "id": "0x2d3758e0", + "id": "0x385a5ed0", "kind": "ParmVarDecl", "loc": { "offset": 9884, @@ -4503,7 +4503,7 @@ ] }, { - "id": "0x2d375f38", + "id": "0x385a6528", "kind": "FunctionDecl", "loc": { "offset": 9923, @@ -4533,7 +4533,7 @@ } } }, - "previousDecl": "0x2d376198", + "previousDecl": "0x385a6788", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4547,13 +4547,13 @@ }, "inner": [ { - "id": "0x2cdc0300", + "id": "0x37ff0eb0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::detectorSettings" }, "decl": { - "id": "0x2cdc0258", + "id": "0x37ff0e08", "kind": "EnumDecl", "name": "detectorSettings" } @@ -4561,7 +4561,7 @@ ] }, { - "id": "0x2d375e38", + "id": "0x385a6428", "kind": "ParmVarDecl", "loc": { "offset": 9951, @@ -4597,7 +4597,7 @@ ] }, { - "id": "0x2d376488", + "id": "0x385a6a78", "kind": "FunctionDecl", "loc": { "offset": 9984, @@ -4627,7 +4627,7 @@ } } }, - "previousDecl": "0x2d3766e8", + "previousDecl": "0x385a6cd8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4641,13 +4641,13 @@ }, "inner": [ { - "id": "0x2cdc0fb0", + "id": "0x37ff1b60", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::speedLevel" }, "decl": { - "id": "0x2cdc0f08", + "id": "0x37ff1ab8", "kind": "EnumDecl", "name": "speedLevel" } @@ -4655,7 +4655,7 @@ ] }, { - "id": "0x2d376388", + "id": "0x385a6978", "kind": "ParmVarDecl", "loc": { "offset": 10012, @@ -4691,7 +4691,7 @@ ] }, { - "id": "0x2d3769d8", + "id": "0x385a6fc8", "kind": "FunctionDecl", "loc": { "offset": 10045, @@ -4721,7 +4721,7 @@ } } }, - "previousDecl": "0x2d376c38", + "previousDecl": "0x385a7228", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4735,13 +4735,13 @@ }, "inner": [ { - "id": "0x2cdbd770", + "id": "0x37fee460", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingMode" }, "decl": { - "id": "0x2cdbd6c8", + "id": "0x37fee3b8", "kind": "EnumDecl", "name": "timingMode" } @@ -4749,7 +4749,7 @@ ] }, { - "id": "0x2d3768d8", + "id": "0x385a6ec8", "kind": "ParmVarDecl", "loc": { "offset": 10073, @@ -4785,7 +4785,7 @@ ] }, { - "id": "0x2d376f28", + "id": "0x385a7518", "kind": "FunctionDecl", "loc": { "offset": 10114, @@ -4815,7 +4815,7 @@ } } }, - "previousDecl": "0x2d377188", + "previousDecl": "0x385a7778", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4829,13 +4829,13 @@ }, "inner": [ { - "id": "0x2cdb87d0", + "id": "0x37fe94c0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::frameDiscardPolicy" }, "decl": { - "id": "0x2cdb8730", + "id": "0x37fe9420", "kind": "EnumDecl", "name": "frameDiscardPolicy" } @@ -4843,7 +4843,7 @@ ] }, { - "id": "0x2d376e28", + "id": "0x385a7418", "kind": "ParmVarDecl", "loc": { "offset": 10142, @@ -4879,7 +4879,7 @@ ] }, { - "id": "0x2d377478", + "id": "0x385a7a68", "kind": "FunctionDecl", "loc": { "offset": 10175, @@ -4909,7 +4909,7 @@ } } }, - "previousDecl": "0x2d3776d8", + "previousDecl": "0x385a7cc8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -4923,13 +4923,13 @@ }, "inner": [ { - "id": "0x2cdbbda0", + "id": "0x37feca90", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::fileFormat" }, "decl": { - "id": "0x2cdbbd00", + "id": "0x37fec9f0", "kind": "EnumDecl", "name": "fileFormat" } @@ -4937,7 +4937,7 @@ ] }, { - "id": "0x2d377378", + "id": "0x385a7968", "kind": "ParmVarDecl", "loc": { "offset": 10203, @@ -4973,7 +4973,7 @@ ] }, { - "id": "0x2d3779c8", + "id": "0x385a7fb8", "kind": "FunctionDecl", "loc": { "offset": 10244, @@ -5003,7 +5003,7 @@ } } }, - "previousDecl": "0x2d377c28", + "previousDecl": "0x385a8218", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5017,13 +5017,13 @@ }, "inner": [ { - "id": "0x2cdbd540", + "id": "0x37fee230", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::externalSignalFlag" }, "decl": { - "id": "0x2cdbd498", + "id": "0x37fee188", "kind": "EnumDecl", "name": "externalSignalFlag" } @@ -5031,7 +5031,7 @@ ] }, { - "id": "0x2d3778c8", + "id": "0x385a7eb8", "kind": "ParmVarDecl", "loc": { "offset": 10272, @@ -5067,7 +5067,7 @@ ] }, { - "id": "0x2d377f18", + "id": "0x385a8508", "kind": "FunctionDecl", "loc": { "offset": 10306, @@ -5097,7 +5097,7 @@ } } }, - "previousDecl": "0x2d378178", + "previousDecl": "0x385a8768", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5111,13 +5111,13 @@ }, "inner": [ { - "id": "0x2cdc0d30", + "id": "0x37ff18e0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::readoutMode" }, "decl": { - "id": "0x2cdc0c88", + "id": "0x37ff1838", "kind": "EnumDecl", "name": "readoutMode" } @@ -5125,7 +5125,7 @@ ] }, { - "id": "0x2d377e18", + "id": "0x385a8408", "kind": "ParmVarDecl", "loc": { "offset": 10334, @@ -5161,7 +5161,7 @@ ] }, { - "id": "0x2d378468", + "id": "0x385a8a58", "kind": "FunctionDecl", "loc": { "offset": 10365, @@ -5191,7 +5191,7 @@ } } }, - "previousDecl": "0x2d3786c8", + "previousDecl": "0x385a8cb8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5205,13 +5205,13 @@ }, "inner": [ { - "id": "0x2cdbda40", + "id": "0x37fee730", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::dacIndex" }, "decl": { - "id": "0x2cdbd998", + "id": "0x37fee688", "kind": "EnumDecl", "name": "dacIndex" } @@ -5219,7 +5219,7 @@ ] }, { - "id": "0x2d378368", + "id": "0x385a8958", "kind": "ParmVarDecl", "loc": { "offset": 10393, @@ -5255,7 +5255,7 @@ ] }, { - "id": "0x2d3789b8", + "id": "0x385a8fa8", "kind": "FunctionDecl", "loc": { "offset": 10425, @@ -5285,7 +5285,7 @@ } } }, - "previousDecl": "0x2d378c18", + "previousDecl": "0x385a9208", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5299,13 +5299,13 @@ }, "inner": [ { - "id": "0x2cdc1230", + "id": "0x37ff1de0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::burstMode" }, "decl": { - "id": "0x2cdc1188", + "id": "0x37ff1d38", "kind": "EnumDecl", "name": "burstMode" } @@ -5313,7 +5313,7 @@ ] }, { - "id": "0x2d3788b8", + "id": "0x385a8ea8", "kind": "ParmVarDecl", "loc": { "offset": 10453, @@ -5349,7 +5349,7 @@ ] }, { - "id": "0x2d378f08", + "id": "0x385a94f8", "kind": "FunctionDecl", "loc": { "offset": 10492, @@ -5379,7 +5379,7 @@ } } }, - "previousDecl": "0x2d379168", + "previousDecl": "0x385a9758", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5393,13 +5393,13 @@ }, "inner": [ { - "id": "0x2cdc14b0", + "id": "0x37ff2060", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingSourceType" }, "decl": { - "id": "0x2cdc1408", + "id": "0x37ff1fb8", "kind": "EnumDecl", "name": "timingSourceType" } @@ -5407,7 +5407,7 @@ ] }, { - "id": "0x2d378e08", + "id": "0x385a93f8", "kind": "ParmVarDecl", "loc": { "offset": 10520, @@ -5443,7 +5443,7 @@ ] }, { - "id": "0x2d379458", + "id": "0x385a9a48", "kind": "FunctionDecl", "loc": { "offset": 10554, @@ -5473,7 +5473,7 @@ } } }, - "previousDecl": "0x2d3796b8", + "previousDecl": "0x385a9ca8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5487,13 +5487,13 @@ }, "inner": [ { - "id": "0x2cdc1610", + "id": "0x37ff21c0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::M3_GainCaps" }, "decl": { - "id": "0x2cdc1570", + "id": "0x37ff2120", "kind": "EnumDecl", "name": "M3_GainCaps" } @@ -5501,7 +5501,7 @@ ] }, { - "id": "0x2d379358", + "id": "0x385a9948", "kind": "ParmVarDecl", "loc": { "offset": 10582, @@ -5537,7 +5537,7 @@ ] }, { - "id": "0x2d3799a8", + "id": "0x385a9f98", "kind": "FunctionDecl", "loc": { "offset": 10617, @@ -5567,7 +5567,7 @@ } } }, - "previousDecl": "0x2d379c08", + "previousDecl": "0x385aa1f8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5581,13 +5581,13 @@ }, "inner": [ { - "id": "0x2cdc1c40", + "id": "0x37ff27f0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::portPosition" }, "decl": { - "id": "0x2cdc1ba0", + "id": "0x37ff2750", "kind": "EnumDecl", "name": "portPosition" } @@ -5595,7 +5595,7 @@ ] }, { - "id": "0x2d3798a8", + "id": "0x385a9e98", "kind": "ParmVarDecl", "loc": { "offset": 10645, @@ -5631,7 +5631,7 @@ ] }, { - "id": "0x2d379ef8", + "id": "0x385aa4e8", "kind": "FunctionDecl", "loc": { "offset": 10686, @@ -5661,7 +5661,7 @@ } } }, - "previousDecl": "0x2d37a158", + "previousDecl": "0x385aa748", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5675,13 +5675,13 @@ }, "inner": [ { - "id": "0x2cdc1fd0", + "id": "0x37ff2b80", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::streamingInterface" }, "decl": { - "id": "0x2cdc1f30", + "id": "0x37ff2ae0", "kind": "EnumDecl", "name": "streamingInterface" } @@ -5689,7 +5689,7 @@ ] }, { - "id": "0x2d379df8", + "id": "0x385aa3e8", "kind": "ParmVarDecl", "loc": { "offset": 10714, @@ -5725,7 +5725,7 @@ ] }, { - "id": "0x2d37a448", + "id": "0x385aaa38", "kind": "FunctionDecl", "loc": { "offset": 10750, @@ -5755,7 +5755,7 @@ } } }, - "previousDecl": "0x2d37a6a8", + "previousDecl": "0x385aac98", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5769,13 +5769,13 @@ }, "inner": [ { - "id": "0x2cdc2390", + "id": "0x37ff2f40", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::vetoAlgorithm" }, "decl": { - "id": "0x2cdc22f0", + "id": "0x37ff2ea0", "kind": "EnumDecl", "name": "vetoAlgorithm" } @@ -5783,7 +5783,7 @@ ] }, { - "id": "0x2d37a348", + "id": "0x385aa938", "kind": "ParmVarDecl", "loc": { "offset": 10778, @@ -5819,7 +5819,7 @@ ] }, { - "id": "0x2d37a998", + "id": "0x385aaf88", "kind": "FunctionDecl", "loc": { "offset": 10809, @@ -5849,7 +5849,7 @@ } } }, - "previousDecl": "0x2d37abf8", + "previousDecl": "0x385ab1e8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5863,13 +5863,13 @@ }, "inner": [ { - "id": "0x2cdc24f0", + "id": "0x37ff30a0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::gainMode" }, "decl": { - "id": "0x2cdc2450", + "id": "0x37ff3000", "kind": "EnumDecl", "name": "gainMode" } @@ -5877,7 +5877,7 @@ ] }, { - "id": "0x2d37a898", + "id": "0x385aae88", "kind": "ParmVarDecl", "loc": { "offset": 10837, @@ -5913,7 +5913,7 @@ ] }, { - "id": "0x2d37aee8", + "id": "0x385ab4d8", "kind": "FunctionDecl", "loc": { "offset": 10868, @@ -5943,7 +5943,7 @@ } } }, - "previousDecl": "0x2d37b148", + "previousDecl": "0x385ab738", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -5957,13 +5957,13 @@ }, "inner": [ { - "id": "0x2cdc2790", + "id": "0x37ff3340", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::polarity" }, "decl": { - "id": "0x2cdc26f0", + "id": "0x37ff32a0", "kind": "EnumDecl", "name": "polarity" } @@ -5971,7 +5971,7 @@ ] }, { - "id": "0x2d37ade8", + "id": "0x385ab3d8", "kind": "ParmVarDecl", "loc": { "offset": 10896, @@ -6007,7 +6007,7 @@ ] }, { - "id": "0x2d37b438", + "id": "0x385aba28", "kind": "FunctionDecl", "loc": { "offset": 10936, @@ -6037,7 +6037,7 @@ } } }, - "previousDecl": "0x2d37b698", + "previousDecl": "0x385abc88", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6051,13 +6051,13 @@ }, "inner": [ { - "id": "0x2cdc28f0", + "id": "0x37ff34a0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingInfoDecoder" }, "decl": { - "id": "0x2cdc2850", + "id": "0x37ff3400", "kind": "EnumDecl", "name": "timingInfoDecoder" } @@ -6065,7 +6065,7 @@ ] }, { - "id": "0x2d37b338", + "id": "0x385ab928", "kind": "ParmVarDecl", "loc": { "offset": 10964, @@ -6101,7 +6101,7 @@ ] }, { - "id": "0x2d37b988", + "id": "0x385abf78", "kind": "FunctionDecl", "loc": { "offset": 11001, @@ -6131,7 +6131,7 @@ } } }, - "previousDecl": "0x2d37bbe8", + "previousDecl": "0x385ac1d8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6145,13 +6145,13 @@ }, "inner": [ { - "id": "0x2cdc2a50", + "id": "0x37ff3600", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::collectionMode" }, "decl": { - "id": "0x2cdc29b0", + "id": "0x37ff3560", "kind": "EnumDecl", "name": "collectionMode" } @@ -6159,7 +6159,7 @@ ] }, { - "id": "0x2d37b888", + "id": "0x385abe78", "kind": "ParmVarDecl", "loc": { "offset": 11029, @@ -6195,7 +6195,7 @@ ] }, { - "id": "0x2d37be88", + "id": "0x385ac478", "kind": "FunctionDecl", "loc": { "offset": 11054, @@ -6225,7 +6225,7 @@ } } }, - "previousDecl": "0x2d37c0b8", + "previousDecl": "0x385ac6a8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6239,7 +6239,7 @@ }, "inner": [ { - "id": "0x2bf08d50", + "id": "0x3713ad30", "kind": "BuiltinType", "type": { "qualType": "unsigned char" @@ -6248,7 +6248,7 @@ ] }, { - "id": "0x2d37bd98", + "id": "0x385ac388", "kind": "ParmVarDecl", "loc": { "offset": 11082, @@ -6284,7 +6284,7 @@ ] }, { - "id": "0x2d37c358", + "id": "0x385ac948", "kind": "FunctionDecl", "loc": { "offset": 11107, @@ -6314,7 +6314,7 @@ } } }, - "previousDecl": "0x2d37c588", + "previousDecl": "0x385acb78", "name": "StringTo", "mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6328,7 +6328,7 @@ }, "inner": [ { - "id": "0x2bf08d70", + "id": "0x3713ad50", "kind": "BuiltinType", "type": { "qualType": "unsigned short" @@ -6337,7 +6337,7 @@ ] }, { - "id": "0x2d37c268", + "id": "0x385ac858", "kind": "ParmVarDecl", "loc": { "offset": 11135, @@ -6373,7 +6373,7 @@ ] }, { - "id": "0x2d37c828", + "id": "0x385ace18", "kind": "FunctionDecl", "loc": { "offset": 11160, @@ -6403,7 +6403,7 @@ } } }, - "previousDecl": "0x2d37ca58", + "previousDecl": "0x385ad048", "name": "StringTo", "mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6417,7 +6417,7 @@ }, "inner": [ { - "id": "0x2bf08d90", + "id": "0x3713ad70", "kind": "BuiltinType", "type": { "qualType": "unsigned int" @@ -6426,7 +6426,7 @@ ] }, { - "id": "0x2d37c738", + "id": "0x385acd28", "kind": "ParmVarDecl", "loc": { "offset": 11188, @@ -6462,7 +6462,7 @@ ] }, { - "id": "0x2d37ccc8", + "id": "0x385ad2b8", "kind": "FunctionDecl", "loc": { "offset": 11213, @@ -6492,7 +6492,7 @@ } } }, - "previousDecl": "0x2d37cef8", + "previousDecl": "0x385ad4e8", "name": "StringTo", "mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6506,7 +6506,7 @@ }, "inner": [ { - "id": "0x2bf08db0", + "id": "0x3713ad90", "kind": "BuiltinType", "type": { "qualType": "unsigned long" @@ -6515,7 +6515,7 @@ ] }, { - "id": "0x2d37cc08", + "id": "0x385ad1f8", "kind": "ParmVarDecl", "loc": { "offset": 11241, @@ -6551,7 +6551,7 @@ ] }, { - "id": "0x2d37d1a0", + "id": "0x385ad790", "kind": "FunctionDecl", "loc": { "offset": 11261, @@ -6581,7 +6581,7 @@ } } }, - "previousDecl": "0x2d37d3d8", + "previousDecl": "0x385ad9c8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6595,7 +6595,7 @@ }, "inner": [ { - "id": "0x2bf08cf0", + "id": "0x3713acd0", "kind": "BuiltinType", "type": { "qualType": "int" @@ -6604,7 +6604,7 @@ ] }, { - "id": "0x2d37d0a8", + "id": "0x385ad698", "kind": "ParmVarDecl", "loc": { "offset": 11289, @@ -6640,7 +6640,7 @@ ] }, { - "id": "0x2d37d648", + "id": "0x385adc38", "kind": "FunctionDecl", "loc": { "offset": 11310, @@ -6670,7 +6670,7 @@ } } }, - "previousDecl": "0x2d37d878", + "previousDecl": "0x385ade68", "name": "StringTo", "mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6684,7 +6684,7 @@ }, "inner": [ { - "id": "0x2bf08c70", + "id": "0x3713ac50", "kind": "BuiltinType", "type": { "qualType": "bool" @@ -6693,7 +6693,7 @@ ] }, { - "id": "0x2d37d588", + "id": "0x385adb78", "kind": "ParmVarDecl", "loc": { "offset": 11338, @@ -6729,7 +6729,7 @@ ] }, { - "id": "0x2d37db18", + "id": "0x385ae108", "kind": "FunctionDecl", "loc": { "offset": 11362, @@ -6759,7 +6759,7 @@ } } }, - "previousDecl": "0x2d37dd48", + "previousDecl": "0x385ae338", "name": "StringTo", "mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -6773,7 +6773,7 @@ }, "inner": [ { - "id": "0x2bf08d10", + "id": "0x3713acf0", "kind": "BuiltinType", "type": { "qualType": "long" @@ -6782,7 +6782,7 @@ ] }, { - "id": "0x2d37da28", + "id": "0x385ae018", "kind": "ParmVarDecl", "loc": { "offset": 11390, @@ -6818,7 +6818,7 @@ ] }, { - "id": "0x2d37ec60", + "id": "0x385af250", "kind": "FunctionTemplateDecl", "loc": { "offset": 11628, @@ -6853,7 +6853,7 @@ "name": "StringTo", "inner": [ { - "id": "0x2d37e648", + "id": "0x385aec38", "kind": "TemplateTypeParmDecl", "loc": { "offset": 11610, @@ -6889,7 +6889,7 @@ "index": 0 }, { - "id": "0x2d37ebb8", + "id": "0x385af1a8", "kind": "FunctionDecl", "loc": { "offset": 11628, @@ -6925,7 +6925,7 @@ }, "inner": [ { - "id": "0x2d37eaa0", + "id": "0x385af090", "kind": "ParmVarDecl", "loc": { "offset": 11669, @@ -6961,7 +6961,7 @@ } }, { - "id": "0x2d3b6478", + "id": "0x385e6c58", "kind": "CompoundStmt", "range": { "begin": { @@ -6984,7 +6984,7 @@ }, "inner": [ { - "id": "0x2d37ef50", + "id": "0x385af540", "kind": "DeclStmt", "range": { "begin": { @@ -7007,7 +7007,7 @@ }, "inner": [ { - "id": "0x2d37eee8", + "id": "0x385af4d8", "kind": "VarDecl", "loc": { "offset": 11699, @@ -7046,7 +7046,7 @@ ] }, { - "id": "0x2d3a9118", + "id": "0x385d98f8", "kind": "CallExpr", "range": { "begin": { @@ -7073,7 +7073,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d37ef88", + "id": "0x385af578", "kind": "CXXDependentScopeMemberExpr", "range": { "begin": { @@ -7101,7 +7101,7 @@ "member": "reserve", "inner": [ { - "id": "0x2d37ef68", + "id": "0x385af558", "kind": "DeclRefExpr", "range": { "begin": { @@ -7127,7 +7127,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eee8", + "id": "0x385af4d8", "kind": "VarDecl", "name": "result", "type": { @@ -7139,7 +7139,7 @@ ] }, { - "id": "0x2d3a8c00", + "id": "0x385d93e0", "kind": "CXXMemberCallExpr", "range": { "begin": { @@ -7162,12 +7162,12 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c532128" + "typeAliasDeclId": "0x37763e08" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3a8bd0", + "id": "0x385d93b0", "kind": "MemberExpr", "range": { "begin": { @@ -7193,10 +7193,10 @@ "valueCategory": "prvalue", "name": "size", "isArrow": false, - "referencedMemberDecl": "0x2d39e748", + "referencedMemberDecl": "0x385cef28", "inner": [ { - "id": "0x2d37efd0", + "id": "0x385af5c0", "kind": "DeclRefExpr", "range": { "begin": { @@ -7222,7 +7222,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eaa0", + "id": "0x385af090", "kind": "ParmVarDecl", "name": "strings", "type": { @@ -7237,7 +7237,7 @@ ] }, { - "id": "0x2d3b6250", + "id": "0x385e6a30", "kind": "CXXForRangeStmt", "range": { "begin": { @@ -7262,7 +7262,7 @@ "inner": [ {}, { - "id": "0x2d3a94c0", + "id": "0x385d9ca0", "kind": "DeclStmt", "range": { "begin": { @@ -7285,7 +7285,7 @@ }, "inner": [ { - "id": "0x2d3a92c0", + "id": "0x385d9aa0", "kind": "VarDecl", "loc": { "offset": 11768, @@ -7322,7 +7322,7 @@ "init": "c", "inner": [ { - "id": "0x2d3a9140", + "id": "0x385d9920", "kind": "DeclRefExpr", "range": { "begin": { @@ -7348,7 +7348,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eaa0", + "id": "0x385af090", "kind": "ParmVarDecl", "name": "strings", "type": { @@ -7361,7 +7361,7 @@ ] }, { - "id": "0x2d3b3a60", + "id": "0x385e4240", "kind": "DeclStmt", "range": { "begin": { @@ -7383,7 +7383,7 @@ }, "inner": [ { - "id": "0x2d3a9558", + "id": "0x385d9d38", "kind": "VarDecl", "loc": { "offset": 11766, @@ -7417,12 +7417,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "init": "c", "inner": [ { - "id": "0x2d3b3320", + "id": "0x385e3b00", "kind": "ExprWithCleanups", "range": { "begin": { @@ -7445,12 +7445,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b32f0", + "id": "0x385e3ad0", "kind": "CXXConstructExpr", "range": { "begin": { @@ -7473,7 +7473,7 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "ctorType": { @@ -7484,7 +7484,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d3b30b8", + "id": "0x385e3898", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -7507,13 +7507,13 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "xvalue", "storageDuration": "full expression", "inner": [ { - "id": "0x2d3a96f8", + "id": "0x385d9ed8", "kind": "CXXMemberCallExpr", "range": { "begin": { @@ -7536,12 +7536,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3a96c8", + "id": "0x385d9ea8", "kind": "MemberExpr", "range": { "begin": { @@ -7567,10 +7567,10 @@ "valueCategory": "prvalue", "name": "begin", "isArrow": false, - "referencedMemberDecl": "0x2d39da60", + "referencedMemberDecl": "0x385ce240", "inner": [ { - "id": "0x2d3a94d8", + "id": "0x385d9cb8", "kind": "DeclRefExpr", "range": { "begin": { @@ -7596,7 +7596,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a92c0", + "id": "0x385d9aa0", "kind": "VarDecl", "name": "__range2", "type": { @@ -7619,7 +7619,7 @@ ] }, { - "id": "0x2d3b3a78", + "id": "0x385e4258", "kind": "DeclStmt", "range": { "begin": { @@ -7641,7 +7641,7 @@ }, "inner": [ { - "id": "0x2d3a9600", + "id": "0x385d9de0", "kind": "VarDecl", "loc": { "offset": 11766, @@ -7675,12 +7675,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "init": "c", "inner": [ { - "id": "0x2d3b3a48", + "id": "0x385e4228", "kind": "ExprWithCleanups", "range": { "begin": { @@ -7703,12 +7703,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b3a18", + "id": "0x385e41f8", "kind": "CXXConstructExpr", "range": { "begin": { @@ -7731,7 +7731,7 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "ctorType": { @@ -7742,7 +7742,7 @@ "constructionKind": "complete", "inner": [ { - "id": "0x2d3b3a00", + "id": "0x385e41e0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { @@ -7765,13 +7765,13 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "xvalue", "storageDuration": "full expression", "inner": [ { - "id": "0x2d3b33c8", + "id": "0x385e3ba8", "kind": "CXXMemberCallExpr", "range": { "begin": { @@ -7794,12 +7794,12 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b3398", + "id": "0x385e3b78", "kind": "MemberExpr", "range": { "begin": { @@ -7825,10 +7825,10 @@ "valueCategory": "prvalue", "name": "end", "isArrow": false, - "referencedMemberDecl": "0x2d39dc30", + "referencedMemberDecl": "0x385ce410", "inner": [ { - "id": "0x2d3a94f8", + "id": "0x385d9cd8", "kind": "DeclRefExpr", "range": { "begin": { @@ -7854,7 +7854,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a92c0", + "id": "0x385d9aa0", "kind": "VarDecl", "name": "__range2", "type": { @@ -7877,7 +7877,7 @@ ] }, { - "id": "0x2d3b5e70", + "id": "0x385e6650", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -7904,7 +7904,7 @@ "adl": true, "inner": [ { - "id": "0x2d3b5e58", + "id": "0x385e6638", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -7931,7 +7931,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d3b5dd8", + "id": "0x385e65b8", "kind": "DeclRefExpr", "range": { "begin": { @@ -7956,7 +7956,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3b4560", + "id": "0x385e4d40", "kind": "FunctionDecl", "name": "operator!=", "type": { @@ -7967,7 +7967,7 @@ ] }, { - "id": "0x2d3b5da8", + "id": "0x385e6588", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -7995,7 +7995,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3b3a90", + "id": "0x385e4270", "kind": "DeclRefExpr", "range": { "begin": { @@ -8018,24 +8018,24 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a9558", + "id": "0x385d9d38", "kind": "VarDecl", "name": "__begin2", "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" } } } ] }, { - "id": "0x2d3b5dc0", + "id": "0x385e65a0", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -8063,7 +8063,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3b3ab0", + "id": "0x385e4290", "kind": "DeclRefExpr", "range": { "begin": { @@ -8086,17 +8086,17 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a9600", + "id": "0x385d9de0", "kind": "VarDecl", "name": "__end2", "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" } } } @@ -8105,7 +8105,7 @@ ] }, { - "id": "0x2d3b5f60", + "id": "0x385e6740", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -8132,7 +8132,7 @@ "valueCategory": "lvalue", "inner": [ { - "id": "0x2d3b5f48", + "id": "0x385e6728", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -8159,7 +8159,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d3b5ec8", + "id": "0x385e66a8", "kind": "DeclRefExpr", "range": { "begin": { @@ -8184,7 +8184,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3b0dc8", + "id": "0x385e15a8", "kind": "CXXMethodDecl", "name": "operator++", "type": { @@ -8195,7 +8195,7 @@ ] }, { - "id": "0x2d3b5ea8", + "id": "0x385e6688", "kind": "DeclRefExpr", "range": { "begin": { @@ -8218,24 +8218,24 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a9558", + "id": "0x385d9d38", "kind": "VarDecl", "name": "__begin2", "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" } } } ] }, { - "id": "0x2d3a9238", + "id": "0x385d9a18", "kind": "DeclStmt", "range": { "begin": { @@ -8257,7 +8257,7 @@ }, "inner": [ { - "id": "0x2d3a91d0", + "id": "0x385d99b0", "kind": "VarDecl", "loc": { "offset": 11764, @@ -8293,7 +8293,7 @@ "init": "c", "inner": [ { - "id": "0x2d3b6080", + "id": "0x385e6860", "kind": "CXXOperatorCallExpr", "range": { "begin": { @@ -8320,7 +8320,7 @@ "valueCategory": "lvalue", "inner": [ { - "id": "0x2d3b6068", + "id": "0x385e6848", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -8347,7 +8347,7 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x2d3b5ff0", + "id": "0x385e67d0", "kind": "DeclRefExpr", "range": { "begin": { @@ -8372,7 +8372,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3b0a80", + "id": "0x385e1260", "kind": "CXXMethodDecl", "name": "operator*", "type": { @@ -8383,7 +8383,7 @@ ] }, { - "id": "0x2d3b5fd8", + "id": "0x385e67b8", "kind": "ImplicitCastExpr", "range": { "begin": { @@ -8410,7 +8410,7 @@ "castKind": "NoOp", "inner": [ { - "id": "0x2d3b5f90", + "id": "0x385e6770", "kind": "DeclRefExpr", "range": { "begin": { @@ -8433,17 +8433,17 @@ "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a9558", + "id": "0x385d9d38", "kind": "VarDecl", "name": "__begin2", "type": { "desugaredQualType": "__gnu_cxx::__normal_iterator *, std::vector>>", "qualType": "const_iterator", - "typeAliasDeclId": "0x2d393288" + "typeAliasDeclId": "0x385c3c68" } } } @@ -8456,7 +8456,7 @@ ] }, { - "id": "0x2d3b6418", + "id": "0x385e6bf8", "kind": "CallExpr", "range": { "begin": { @@ -8483,7 +8483,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b62d0", + "id": "0x385e6ab0", "kind": "CXXDependentScopeMemberExpr", "range": { "begin": { @@ -8511,7 +8511,7 @@ "member": "push_back", "inner": [ { - "id": "0x2d3b62b0", + "id": "0x385e6a90", "kind": "DeclRefExpr", "range": { "begin": { @@ -8537,7 +8537,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eee8", + "id": "0x385af4d8", "kind": "VarDecl", "name": "result", "type": { @@ -8549,7 +8549,7 @@ ] }, { - "id": "0x2d3b63f0", + "id": "0x385e6bd0", "kind": "CallExpr", "range": { "begin": { @@ -8575,7 +8575,7 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x2d3b6348", + "id": "0x385e6b28", "kind": "UnresolvedLookupExpr", "range": { "begin": { @@ -8603,24 +8603,24 @@ "name": "StringTo", "lookups": [ { - "id": "0x2d37ec60", + "id": "0x385af250", "kind": "FunctionTemplateDecl", "name": "StringTo" }, { - "id": "0x2d3750e0", + "id": "0x385a56d0", "kind": "FunctionTemplateDecl", "name": "StringTo" }, { - "id": "0x2d33fd20", + "id": "0x3856fae0", "kind": "FunctionTemplateDecl", "name": "StringTo" } ] }, { - "id": "0x2d3b63d0", + "id": "0x385e6bb0", "kind": "DeclRefExpr", "range": { "begin": { @@ -8646,7 +8646,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d3a91d0", + "id": "0x385d99b0", "kind": "VarDecl", "name": "s", "type": { @@ -8661,7 +8661,7 @@ ] }, { - "id": "0x2d3b6460", + "id": "0x385e6c40", "kind": "ReturnStmt", "range": { "begin": { @@ -8684,7 +8684,7 @@ }, "inner": [ { - "id": "0x2d3b6440", + "id": "0x385e6c20", "kind": "DeclRefExpr", "range": { "begin": { @@ -8710,7 +8710,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d37eee8", + "id": "0x385af4d8", "kind": "VarDecl", "name": "result", "type": { @@ -8728,29 +8728,29 @@ ] }, { - "id": "0x7f0da6e85d18", + "id": "0x7feb10ea9db8", "kind": "FunctionDecl", "loc": { - "offset": 21816, + "offset": 21549, "file": "ToString.cpp", - "line": 706, + "line": 698, "col": 32, "tokLen": 8 }, "range": { "begin": { - "offset": 21785, + "offset": 21518, "col": 1, "tokLen": 8 }, "end": { - "offset": 22375, - "line": 724, + "offset": 22108, + "line": 716, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3759e8", + "previousDecl": "0x385a5fd8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12detectorTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -8764,13 +8764,13 @@ }, "inner": [ { - "id": "0x2cd03d20", + "id": "0x37f35630", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::detectorType" }, "decl": { - "id": "0x2cd03c80", + "id": "0x37f35590", "kind": "EnumDecl", "name": "detectorType" } @@ -8778,22 +8778,22 @@ ] }, { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "loc": { - "offset": 21844, - "line": 706, + "offset": 21577, + "line": 698, "col": 60, "tokLen": 1 }, "range": { "begin": { - "offset": 21825, + "offset": 21558, "col": 41, "tokLen": 5 }, "end": { - "offset": 21844, + "offset": 21577, "col": 60, "tokLen": 1 } @@ -8805,52 +8805,52 @@ } }, { - "id": "0x7f0da6e8ff78", + "id": "0x7feb10eb4018", "kind": "CompoundStmt", "range": { "begin": { - "offset": 21847, + "offset": 21580, "col": 63, "tokLen": 1 }, "end": { - "offset": 22375, - "line": 724, + "offset": 22108, + "line": 716, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e87208", + "id": "0x7feb10eab2a8", "kind": "IfStmt", "range": { "begin": { - "offset": 21853, - "line": 707, + "offset": 21586, + "line": 699, "col": 5, "tokLen": 2 }, "end": { - "offset": 21892, - "line": 708, + "offset": 21625, + "line": 700, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e87158", + "id": "0x7feb10eab1f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 21857, - "line": 707, + "offset": 21590, + "line": 699, "col": 9, "tokLen": 1 }, "end": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 } @@ -8862,16 +8862,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e87140", + "id": "0x7feb10eab1e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21859, + "offset": 21592, "col": 11, "tokLen": 2 }, "end": { - "offset": 21859, + "offset": 21592, "col": 11, "tokLen": 2 } @@ -8883,16 +8883,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e87120", + "id": "0x7feb10eab1c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21859, + "offset": 21592, "col": 11, "tokLen": 2 }, "end": { - "offset": 21859, + "offset": 21592, "col": 11, "tokLen": 2 } @@ -8902,7 +8902,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -8913,16 +8913,16 @@ ] }, { - "id": "0x7f0da6e85f00", + "id": "0x7feb10ea9fa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21857, + "offset": 21590, "col": 9, "tokLen": 1 }, "end": { - "offset": 21857, + "offset": 21590, "col": 9, "tokLen": 1 } @@ -8930,11 +8930,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -8943,16 +8943,16 @@ } }, { - "id": "0x7f0da6e87108", + "id": "0x7feb10eab1a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 }, "end": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 } @@ -8964,16 +8964,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e85f20", + "id": "0x7feb10ea9fc0", "kind": "StringLiteral", "range": { "begin": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 }, "end": { - "offset": 21862, + "offset": 21595, "col": 14, "tokLen": 7 } @@ -8989,33 +8989,33 @@ ] }, { - "id": "0x7f0da6e871f8", + "id": "0x7feb10eab298", "kind": "ReturnStmt", "range": { "begin": { - "offset": 21879, - "line": 708, + "offset": 21612, + "line": 700, "col": 9, "tokLen": 6 }, "end": { - "offset": 21892, + "offset": 21625, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e871c8", + "id": "0x7feb10eab268", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21886, + "offset": 21619, "col": 16, "tokLen": 4 }, "end": { - "offset": 21892, + "offset": 21625, "col": 22, "tokLen": 5 } @@ -9025,7 +9025,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03d90", + "id": "0x37f356a0", "kind": "EnumConstantDecl", "name": "EIGER", "type": { @@ -9038,35 +9038,35 @@ ] }, { - "id": "0x7f0da6e88538", + "id": "0x7feb10eac5d8", "kind": "IfStmt", "range": { "begin": { - "offset": 21903, - "line": 709, + "offset": 21636, + "line": 701, "col": 5, "tokLen": 2 }, "end": { - "offset": 21945, - "line": 710, + "offset": 21678, + "line": 702, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e88488", + "id": "0x7feb10eac528", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 21907, - "line": 709, + "offset": 21640, + "line": 701, "col": 9, "tokLen": 1 }, "end": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 } @@ -9078,16 +9078,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e88470", + "id": "0x7feb10eac510", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21909, + "offset": 21642, "col": 11, "tokLen": 2 }, "end": { - "offset": 21909, + "offset": 21642, "col": 11, "tokLen": 2 } @@ -9099,16 +9099,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e88450", + "id": "0x7feb10eac4f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21909, + "offset": 21642, "col": 11, "tokLen": 2 }, "end": { - "offset": 21909, + "offset": 21642, "col": 11, "tokLen": 2 } @@ -9118,7 +9118,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9129,16 +9129,16 @@ ] }, { - "id": "0x7f0da6e87228", + "id": "0x7feb10eab2c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21907, + "offset": 21640, "col": 9, "tokLen": 1 }, "end": { - "offset": 21907, + "offset": 21640, "col": 9, "tokLen": 1 } @@ -9146,11 +9146,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -9159,16 +9159,16 @@ } }, { - "id": "0x7f0da6e88438", + "id": "0x7feb10eac4d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 }, "end": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 } @@ -9180,16 +9180,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e87248", + "id": "0x7feb10eab2e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 }, "end": { - "offset": 21912, + "offset": 21645, "col": 14, "tokLen": 10 } @@ -9205,33 +9205,33 @@ ] }, { - "id": "0x7f0da6e88528", + "id": "0x7feb10eac5c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 21932, - "line": 710, + "offset": 21665, + "line": 702, "col": 9, "tokLen": 6 }, "end": { - "offset": 21945, + "offset": 21678, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e884f8", + "id": "0x7feb10eac598", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21939, + "offset": 21672, "col": 16, "tokLen": 4 }, "end": { - "offset": 21945, + "offset": 21678, "col": 22, "tokLen": 8 } @@ -9241,7 +9241,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03de0", + "id": "0x37f35718", "kind": "EnumConstantDecl", "name": "GOTTHARD", "type": { @@ -9254,35 +9254,35 @@ ] }, { - "id": "0x7f0da6e89868", + "id": "0x7feb10ead908", "kind": "IfStmt", "range": { "begin": { - "offset": 21959, - "line": 711, + "offset": 21692, + "line": 703, "col": 5, "tokLen": 2 }, "end": { - "offset": 22001, - "line": 712, + "offset": 21734, + "line": 704, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e897b8", + "id": "0x7feb10ead858", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 21963, - "line": 711, + "offset": 21696, + "line": 703, "col": 9, "tokLen": 1 }, "end": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 } @@ -9294,16 +9294,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e897a0", + "id": "0x7feb10ead840", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21965, + "offset": 21698, "col": 11, "tokLen": 2 }, "end": { - "offset": 21965, + "offset": 21698, "col": 11, "tokLen": 2 } @@ -9315,16 +9315,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e89780", + "id": "0x7feb10ead820", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21965, + "offset": 21698, "col": 11, "tokLen": 2 }, "end": { - "offset": 21965, + "offset": 21698, "col": 11, "tokLen": 2 } @@ -9334,7 +9334,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9345,16 +9345,16 @@ ] }, { - "id": "0x7f0da6e88558", + "id": "0x7feb10eac5f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21963, + "offset": 21696, "col": 9, "tokLen": 1 }, "end": { - "offset": 21963, + "offset": 21696, "col": 9, "tokLen": 1 } @@ -9362,11 +9362,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -9375,16 +9375,16 @@ } }, { - "id": "0x7f0da6e89768", + "id": "0x7feb10ead808", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 }, "end": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 } @@ -9396,16 +9396,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e88578", + "id": "0x7feb10eac618", "kind": "StringLiteral", "range": { "begin": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 }, "end": { - "offset": 21968, + "offset": 21701, "col": 14, "tokLen": 10 } @@ -9421,33 +9421,33 @@ ] }, { - "id": "0x7f0da6e89858", + "id": "0x7feb10ead8f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 21988, - "line": 712, + "offset": 21721, + "line": 704, "col": 9, "tokLen": 6 }, "end": { - "offset": 22001, + "offset": 21734, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e89828", + "id": "0x7feb10ead8c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 21995, + "offset": 21728, "col": 16, "tokLen": 4 }, "end": { - "offset": 22001, + "offset": 21734, "col": 22, "tokLen": 8 } @@ -9457,7 +9457,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03e30", + "id": "0x37f35768", "kind": "EnumConstantDecl", "name": "JUNGFRAU", "type": { @@ -9470,35 +9470,35 @@ ] }, { - "id": "0x7f0da6e8ab98", + "id": "0x7feb10eaec38", "kind": "IfStmt", "range": { "begin": { - "offset": 22015, - "line": 713, + "offset": 21748, + "line": 705, "col": 5, "tokLen": 2 }, "end": { - "offset": 22062, - "line": 714, + "offset": 21795, + "line": 706, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e8aae8", + "id": "0x7feb10eaeb88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22019, - "line": 713, + "offset": 21752, + "line": 705, "col": 9, "tokLen": 1 }, "end": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 } @@ -9510,16 +9510,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8aad0", + "id": "0x7feb10eaeb70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22021, + "offset": 21754, "col": 11, "tokLen": 2 }, "end": { - "offset": 22021, + "offset": 21754, "col": 11, "tokLen": 2 } @@ -9531,16 +9531,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8aab0", + "id": "0x7feb10eaeb50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22021, + "offset": 21754, "col": 11, "tokLen": 2 }, "end": { - "offset": 22021, + "offset": 21754, "col": 11, "tokLen": 2 } @@ -9550,7 +9550,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9561,16 +9561,16 @@ ] }, { - "id": "0x7f0da6e89888", + "id": "0x7feb10ead928", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22019, + "offset": 21752, "col": 9, "tokLen": 1 }, "end": { - "offset": 22019, + "offset": 21752, "col": 9, "tokLen": 1 } @@ -9578,11 +9578,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -9591,16 +9591,16 @@ } }, { - "id": "0x7f0da6e8aa98", + "id": "0x7feb10eaeb38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 }, "end": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 } @@ -9612,16 +9612,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e898a8", + "id": "0x7feb10ead948", "kind": "StringLiteral", "range": { "begin": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 }, "end": { - "offset": 22024, + "offset": 21757, "col": 14, "tokLen": 15 } @@ -9637,33 +9637,33 @@ ] }, { - "id": "0x7f0da6e8ab88", + "id": "0x7feb10eaec28", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22049, - "line": 714, + "offset": 21782, + "line": 706, "col": 9, "tokLen": 6 }, "end": { - "offset": 22062, + "offset": 21795, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e8ab58", + "id": "0x7feb10eaebf8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22056, + "offset": 21789, "col": 16, "tokLen": 4 }, "end": { - "offset": 22062, + "offset": 21795, "col": 22, "tokLen": 13 } @@ -9673,7 +9673,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03e80", + "id": "0x37f357b8", "kind": "EnumConstantDecl", "name": "CHIPTESTBOARD", "type": { @@ -9686,35 +9686,35 @@ ] }, { - "id": "0x7f0da6e8bec8", + "id": "0x7feb10eaff68", "kind": "IfStmt", "range": { "begin": { - "offset": 22081, - "line": 715, + "offset": 21814, + "line": 707, "col": 5, "tokLen": 2 }, "end": { - "offset": 22121, - "line": 716, + "offset": 21854, + "line": 708, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6e8be18", + "id": "0x7feb10eafeb8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22085, - "line": 715, + "offset": 21818, + "line": 707, "col": 9, "tokLen": 1 }, "end": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 } @@ -9726,16 +9726,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8be00", + "id": "0x7feb10eafea0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22087, + "offset": 21820, "col": 11, "tokLen": 2 }, "end": { - "offset": 22087, + "offset": 21820, "col": 11, "tokLen": 2 } @@ -9747,16 +9747,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8bde0", + "id": "0x7feb10eafe80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22087, + "offset": 21820, "col": 11, "tokLen": 2 }, "end": { - "offset": 22087, + "offset": 21820, "col": 11, "tokLen": 2 } @@ -9766,7 +9766,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9777,16 +9777,16 @@ ] }, { - "id": "0x7f0da6e8abb8", + "id": "0x7feb10eaec58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22085, + "offset": 21818, "col": 9, "tokLen": 1 }, "end": { - "offset": 22085, + "offset": 21818, "col": 9, "tokLen": 1 } @@ -9794,11 +9794,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -9807,16 +9807,16 @@ } }, { - "id": "0x7f0da6e8bdc8", + "id": "0x7feb10eafe68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 }, "end": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 } @@ -9828,16 +9828,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8abd8", + "id": "0x7feb10eaec78", "kind": "StringLiteral", "range": { "begin": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 }, "end": { - "offset": 22090, + "offset": 21823, "col": 14, "tokLen": 8 } @@ -9853,33 +9853,33 @@ ] }, { - "id": "0x7f0da6e8beb8", + "id": "0x7feb10eaff58", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22108, - "line": 716, + "offset": 21841, + "line": 708, "col": 9, "tokLen": 6 }, "end": { - "offset": 22121, + "offset": 21854, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6e8be88", + "id": "0x7feb10eaff28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22115, + "offset": 21848, "col": 16, "tokLen": 4 }, "end": { - "offset": 22121, + "offset": 21854, "col": 22, "tokLen": 6 } @@ -9889,7 +9889,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03ed0", + "id": "0x37f35808", "kind": "EnumConstantDecl", "name": "MOENCH", "type": { @@ -9902,35 +9902,35 @@ ] }, { - "id": "0x7f0da6e8d1f8", + "id": "0x7feb10eb1298", "kind": "IfStmt", "range": { "begin": { - "offset": 22133, - "line": 717, + "offset": 21866, + "line": 709, "col": 5, "tokLen": 2 }, "end": { - "offset": 22174, - "line": 718, + "offset": 21907, + "line": 710, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6e8d148", + "id": "0x7feb10eb11e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22137, - "line": 717, + "offset": 21870, + "line": 709, "col": 9, "tokLen": 1 }, "end": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 } @@ -9942,16 +9942,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8d130", + "id": "0x7feb10eb11d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22139, + "offset": 21872, "col": 11, "tokLen": 2 }, "end": { - "offset": 22139, + "offset": 21872, "col": 11, "tokLen": 2 } @@ -9963,16 +9963,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8d110", + "id": "0x7feb10eb11b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22139, + "offset": 21872, "col": 11, "tokLen": 2 }, "end": { - "offset": 22139, + "offset": 21872, "col": 11, "tokLen": 2 } @@ -9982,7 +9982,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -9993,16 +9993,16 @@ ] }, { - "id": "0x7f0da6e8bee8", + "id": "0x7feb10eaff88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22137, + "offset": 21870, "col": 9, "tokLen": 1 }, "end": { - "offset": 22137, + "offset": 21870, "col": 9, "tokLen": 1 } @@ -10010,11 +10010,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -10023,16 +10023,16 @@ } }, { - "id": "0x7f0da6e8d0f8", + "id": "0x7feb10eb1198", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 }, "end": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 } @@ -10044,16 +10044,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8bf08", + "id": "0x7feb10eaffa8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 }, "end": { - "offset": 22142, + "offset": 21875, "col": 14, "tokLen": 9 } @@ -10069,33 +10069,33 @@ ] }, { - "id": "0x7f0da6e8d1e8", + "id": "0x7feb10eb1288", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22161, - "line": 718, + "offset": 21894, + "line": 710, "col": 9, "tokLen": 6 }, "end": { - "offset": 22174, + "offset": 21907, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6e8d1b8", + "id": "0x7feb10eb1258", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22168, + "offset": 21901, "col": 16, "tokLen": 4 }, "end": { - "offset": 22174, + "offset": 21907, "col": 22, "tokLen": 7 } @@ -10105,7 +10105,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03f20", + "id": "0x37f35858", "kind": "EnumConstantDecl", "name": "MYTHEN3", "type": { @@ -10118,35 +10118,35 @@ ] }, { - "id": "0x7f0da6e8e528", + "id": "0x7feb10eb25c8", "kind": "IfStmt", "range": { "begin": { - "offset": 22187, - "line": 719, + "offset": 21920, + "line": 711, "col": 5, "tokLen": 2 }, "end": { - "offset": 22230, - "line": 720, + "offset": 21963, + "line": 712, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e8e478", + "id": "0x7feb10eb2518", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22191, - "line": 719, + "offset": 21924, + "line": 711, "col": 9, "tokLen": 1 }, "end": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 } @@ -10158,16 +10158,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8e460", + "id": "0x7feb10eb2500", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22193, + "offset": 21926, "col": 11, "tokLen": 2 }, "end": { - "offset": 22193, + "offset": 21926, "col": 11, "tokLen": 2 } @@ -10179,16 +10179,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8e440", + "id": "0x7feb10eb24e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22193, + "offset": 21926, "col": 11, "tokLen": 2 }, "end": { - "offset": 22193, + "offset": 21926, "col": 11, "tokLen": 2 } @@ -10198,7 +10198,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -10209,16 +10209,16 @@ ] }, { - "id": "0x7f0da6e8d218", + "id": "0x7feb10eb12b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22191, + "offset": 21924, "col": 9, "tokLen": 1 }, "end": { - "offset": 22191, + "offset": 21924, "col": 9, "tokLen": 1 } @@ -10226,11 +10226,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -10239,16 +10239,16 @@ } }, { - "id": "0x7f0da6e8e428", + "id": "0x7feb10eb24c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 }, "end": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 } @@ -10260,16 +10260,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8d238", + "id": "0x7feb10eb12d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 }, "end": { - "offset": 22196, + "offset": 21929, "col": 14, "tokLen": 11 } @@ -10285,33 +10285,33 @@ ] }, { - "id": "0x7f0da6e8e518", + "id": "0x7feb10eb25b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22217, - "line": 720, + "offset": 21950, + "line": 712, "col": 9, "tokLen": 6 }, "end": { - "offset": 22230, + "offset": 21963, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e8e4e8", + "id": "0x7feb10eb2588", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22224, + "offset": 21957, "col": 16, "tokLen": 4 }, "end": { - "offset": 22230, + "offset": 21963, "col": 22, "tokLen": 9 } @@ -10321,7 +10321,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03f70", + "id": "0x37f358a8", "kind": "EnumConstantDecl", "name": "GOTTHARD2", "type": { @@ -10334,35 +10334,35 @@ ] }, { - "id": "0x7f0da6e8f898", + "id": "0x7feb10eb3938", "kind": "IfStmt", "range": { "begin": { - "offset": 22245, - "line": 721, + "offset": 21978, + "line": 713, "col": 5, "tokLen": 2 }, "end": { - "offset": 22299, - "line": 722, + "offset": 22032, + "line": 714, "col": 22, "tokLen": 20 } }, "inner": [ { - "id": "0x7f0da6e8f7e8", + "id": "0x7feb10eb3888", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22249, - "line": 721, + "offset": 21982, + "line": 713, "col": 9, "tokLen": 1 }, "end": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 } @@ -10374,16 +10374,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8f7d0", + "id": "0x7feb10eb3870", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22251, + "offset": 21984, "col": 11, "tokLen": 2 }, "end": { - "offset": 22251, + "offset": 21984, "col": 11, "tokLen": 2 } @@ -10395,16 +10395,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8f7b0", + "id": "0x7feb10eb3850", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22251, + "offset": 21984, "col": 11, "tokLen": 2 }, "end": { - "offset": 22251, + "offset": 21984, "col": 11, "tokLen": 2 } @@ -10414,7 +10414,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -10425,16 +10425,16 @@ ] }, { - "id": "0x7f0da6e8e548", + "id": "0x7feb10eb25e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22249, + "offset": 21982, "col": 9, "tokLen": 1 }, "end": { - "offset": 22249, + "offset": 21982, "col": 9, "tokLen": 1 } @@ -10442,11 +10442,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -10455,16 +10455,16 @@ } }, { - "id": "0x7f0da6e8f798", + "id": "0x7feb10eb3838", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 }, "end": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 } @@ -10476,16 +10476,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8e568", + "id": "0x7feb10eb2608", "kind": "StringLiteral", "range": { "begin": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 }, "end": { - "offset": 22254, + "offset": 21987, "col": 14, "tokLen": 22 } @@ -10501,33 +10501,33 @@ ] }, { - "id": "0x7f0da6e8f888", + "id": "0x7feb10eb3928", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22286, - "line": 722, + "offset": 22019, + "line": 714, "col": 9, "tokLen": 6 }, "end": { - "offset": 22299, + "offset": 22032, "col": 22, "tokLen": 20 } }, "inner": [ { - "id": "0x7f0da6e8f858", + "id": "0x7feb10eb38f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22293, + "offset": 22026, "col": 16, "tokLen": 4 }, "end": { - "offset": 22299, + "offset": 22032, "col": 22, "tokLen": 20 } @@ -10537,7 +10537,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cd03fc0", + "id": "0x37f358f8", "kind": "EnumConstantDecl", "name": "XILINX_CHIPTESTBOARD", "type": { @@ -10550,17 +10550,17 @@ ] }, { - "id": "0x7f0da6e8ff60", + "id": "0x7feb10eb4000", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 22325, - "line": 723, + "offset": 22058, + "line": 715, "col": 5, "tokLen": 5 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10572,16 +10572,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e8ff48", + "id": "0x7feb10eb3fe8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 22325, + "offset": 22058, "col": 5, "tokLen": 5 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10592,16 +10592,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e8ff18", + "id": "0x7feb10eb3fb8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10619,16 +10619,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e8ff00", + "id": "0x7feb10eb3fa0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10641,16 +10641,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e8fed8", + "id": "0x7feb10eb3f78", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10662,7 +10662,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -10671,16 +10671,16 @@ }, "inner": [ { - "id": "0x7f0da6e8feb8", + "id": "0x7feb10eb3f58", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10690,9 +10690,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e8feb0", + "temp": "0x7feb10eb3f50", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -10701,16 +10701,16 @@ }, "inner": [ { - "id": "0x7f0da6e8fe80", + "id": "0x7feb10eb3f20", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 22331, + "offset": 22064, "col": 11, "tokLen": 12 }, "end": { - "offset": 22372, + "offset": 22105, "col": 52, "tokLen": 1 } @@ -10727,16 +10727,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e8fe68", + "id": "0x7feb10eb3f08", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10750,16 +10750,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e8fe50", + "id": "0x7feb10eb3ef0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10772,16 +10772,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e8fe30", + "id": "0x7feb10eb3ed0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10791,9 +10791,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e8fe28", + "temp": "0x7feb10eb3ec8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -10802,16 +10802,16 @@ }, "inner": [ { - "id": "0x7f0da6e8fdf0", + "id": "0x7feb10eb3e90", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10824,16 +10824,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e8fdd8", + "id": "0x7feb10eb3e78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22369, + "offset": 22102, "col": 49, "tokLen": 1 }, "end": { - "offset": 22369, + "offset": 22102, "col": 49, "tokLen": 1 } @@ -10845,16 +10845,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e8fdb8", + "id": "0x7feb10eb3e58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22369, + "offset": 22102, "col": 49, "tokLen": 1 }, "end": { - "offset": 22369, + "offset": 22102, "col": 49, "tokLen": 1 } @@ -10864,7 +10864,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -10875,16 +10875,16 @@ ] }, { - "id": "0x7f0da6e8fda0", + "id": "0x7feb10eb3e40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 } @@ -10896,16 +10896,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e8f8c8", + "id": "0x7feb10eb3968", "kind": "StringLiteral", "range": { "begin": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 }, "end": { - "offset": 22344, + "offset": 22077, "col": 24, "tokLen": 24 } @@ -10919,16 +10919,16 @@ ] }, { - "id": "0x7f0da6e8f8f8", + "id": "0x7feb10eb3998", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 }, "end": { - "offset": 22371, + "offset": 22104, "col": 51, "tokLen": 1 } @@ -10936,11 +10936,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e85c40", + "id": "0x7feb10ea9ce0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -10975,29 +10975,29 @@ ] }, { - "id": "0x7f0da6e90148", + "id": "0x7feb10eb41e8", "kind": "FunctionDecl", "loc": { - "offset": 22413, + "offset": 22146, "file": "ToString.cpp", - "line": 726, + "line": 718, "col": 36, "tokLen": 8 }, "range": { "begin": { - "offset": 22378, + "offset": 22111, "col": 1, "tokLen": 8 }, "end": { - "offset": 23662, - "line": 768, + "offset": 23395, + "line": 760, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d375f38", + "previousDecl": "0x385a6528", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16detectorSettingsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -11011,13 +11011,13 @@ }, "inner": [ { - "id": "0x2cdc0300", + "id": "0x37ff0eb0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::detectorSettings" }, "decl": { - "id": "0x2cdc0258", + "id": "0x37ff0e08", "kind": "EnumDecl", "name": "detectorSettings" } @@ -11025,22 +11025,22 @@ ] }, { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "loc": { - "offset": 22441, - "line": 726, + "offset": 22174, + "line": 718, "col": 64, "tokLen": 1 }, "range": { "begin": { - "offset": 22422, + "offset": 22155, "col": 45, "tokLen": 5 }, "end": { - "offset": 22441, + "offset": 22174, "col": 64, "tokLen": 1 } @@ -11052,52 +11052,52 @@ } }, { - "id": "0x7f0da6e67978", + "id": "0x38727888", "kind": "CompoundStmt", "range": { "begin": { - "offset": 22444, + "offset": 22177, "col": 67, "tokLen": 1 }, "end": { - "offset": 23662, - "line": 768, + "offset": 23395, + "line": 760, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e91638", + "id": "0x7feb10eb56d8", "kind": "IfStmt", "range": { "begin": { - "offset": 22450, - "line": 727, + "offset": 22183, + "line": 719, "col": 5, "tokLen": 2 }, "end": { - "offset": 22492, - "line": 728, + "offset": 22225, + "line": 720, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e91588", + "id": "0x7feb10eb5628", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22454, - "line": 727, + "offset": 22187, + "line": 719, "col": 9, "tokLen": 1 }, "end": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 } @@ -11109,16 +11109,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e91570", + "id": "0x7feb10eb5610", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22456, + "offset": 22189, "col": 11, "tokLen": 2 }, "end": { - "offset": 22456, + "offset": 22189, "col": 11, "tokLen": 2 } @@ -11130,16 +11130,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e91550", + "id": "0x7feb10eb55f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22456, + "offset": 22189, "col": 11, "tokLen": 2 }, "end": { - "offset": 22456, + "offset": 22189, "col": 11, "tokLen": 2 } @@ -11149,7 +11149,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -11160,16 +11160,16 @@ ] }, { - "id": "0x7f0da6e90330", + "id": "0x7feb10eb43d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22454, + "offset": 22187, "col": 9, "tokLen": 1 }, "end": { - "offset": 22454, + "offset": 22187, "col": 9, "tokLen": 1 } @@ -11177,11 +11177,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -11190,16 +11190,16 @@ } }, { - "id": "0x7f0da6e91538", + "id": "0x7feb10eb55d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 }, "end": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 } @@ -11211,16 +11211,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e90350", + "id": "0x7feb10eb43f0", "kind": "StringLiteral", "range": { "begin": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 }, "end": { - "offset": 22459, + "offset": 22192, "col": 14, "tokLen": 10 } @@ -11236,33 +11236,33 @@ ] }, { - "id": "0x7f0da6e91628", + "id": "0x7feb10eb56c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22479, - "line": 728, + "offset": 22212, + "line": 720, "col": 9, "tokLen": 6 }, "end": { - "offset": 22492, + "offset": 22225, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e915f8", + "id": "0x7feb10eb5698", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22486, + "offset": 22219, "col": 16, "tokLen": 4 }, "end": { - "offset": 22492, + "offset": 22225, "col": 22, "tokLen": 8 } @@ -11272,7 +11272,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0320", + "id": "0x37ff0ed0", "kind": "EnumConstantDecl", "name": "STANDARD", "type": { @@ -11285,35 +11285,35 @@ ] }, { - "id": "0x7f0da6e92968", + "id": "0x7feb10eb6a08", "kind": "IfStmt", "range": { "begin": { - "offset": 22506, - "line": 729, + "offset": 22239, + "line": 721, "col": 5, "tokLen": 2 }, "end": { - "offset": 22544, - "line": 730, + "offset": 22277, + "line": 722, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6e928b8", + "id": "0x7feb10eb6958", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22510, - "line": 729, + "offset": 22243, + "line": 721, "col": 9, "tokLen": 1 }, "end": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 } @@ -11325,16 +11325,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e928a0", + "id": "0x7feb10eb6940", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22512, + "offset": 22245, "col": 11, "tokLen": 2 }, "end": { - "offset": 22512, + "offset": 22245, "col": 11, "tokLen": 2 } @@ -11346,16 +11346,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e92880", + "id": "0x7feb10eb6920", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22512, + "offset": 22245, "col": 11, "tokLen": 2 }, "end": { - "offset": 22512, + "offset": 22245, "col": 11, "tokLen": 2 } @@ -11365,7 +11365,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -11376,16 +11376,16 @@ ] }, { - "id": "0x7f0da6e91658", + "id": "0x7feb10eb56f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22510, + "offset": 22243, "col": 9, "tokLen": 1 }, "end": { - "offset": 22510, + "offset": 22243, "col": 9, "tokLen": 1 } @@ -11393,11 +11393,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -11406,16 +11406,16 @@ } }, { - "id": "0x7f0da6e92868", + "id": "0x7feb10eb6908", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 }, "end": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 } @@ -11427,16 +11427,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e91678", + "id": "0x7feb10eb5718", "kind": "StringLiteral", "range": { "begin": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 }, "end": { - "offset": 22515, + "offset": 22248, "col": 14, "tokLen": 6 } @@ -11452,33 +11452,33 @@ ] }, { - "id": "0x7f0da6e92958", + "id": "0x7feb10eb69f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22531, - "line": 730, + "offset": 22264, + "line": 722, "col": 9, "tokLen": 6 }, "end": { - "offset": 22544, + "offset": 22277, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6e92928", + "id": "0x7feb10eb69c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22538, + "offset": 22271, "col": 16, "tokLen": 4 }, "end": { - "offset": 22544, + "offset": 22277, "col": 22, "tokLen": 4 } @@ -11488,7 +11488,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0370", + "id": "0x37ff0f20", "kind": "EnumConstantDecl", "name": "FAST", "type": { @@ -11501,35 +11501,35 @@ ] }, { - "id": "0x7f0da6e93c98", + "id": "0x7feb10eb7d38", "kind": "IfStmt", "range": { "begin": { - "offset": 22554, - "line": 731, + "offset": 22287, + "line": 723, "col": 5, "tokLen": 2 }, "end": { - "offset": 22596, - "line": 732, + "offset": 22329, + "line": 724, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e93be8", + "id": "0x7feb10eb7c88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22558, - "line": 731, + "offset": 22291, + "line": 723, "col": 9, "tokLen": 1 }, "end": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 } @@ -11541,16 +11541,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e93bd0", + "id": "0x7feb10eb7c70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22560, + "offset": 22293, "col": 11, "tokLen": 2 }, "end": { - "offset": 22560, + "offset": 22293, "col": 11, "tokLen": 2 } @@ -11562,16 +11562,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e93bb0", + "id": "0x7feb10eb7c50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22560, + "offset": 22293, "col": 11, "tokLen": 2 }, "end": { - "offset": 22560, + "offset": 22293, "col": 11, "tokLen": 2 } @@ -11581,7 +11581,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -11592,16 +11592,16 @@ ] }, { - "id": "0x7f0da6e92988", + "id": "0x7feb10eb6a28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22558, + "offset": 22291, "col": 9, "tokLen": 1 }, "end": { - "offset": 22558, + "offset": 22291, "col": 9, "tokLen": 1 } @@ -11609,11 +11609,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -11622,16 +11622,16 @@ } }, { - "id": "0x7f0da6e93b98", + "id": "0x7feb10eb7c38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 }, "end": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 } @@ -11643,16 +11643,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e929a8", + "id": "0x7feb10eb6a48", "kind": "StringLiteral", "range": { "begin": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 }, "end": { - "offset": 22563, + "offset": 22296, "col": 14, "tokLen": 10 } @@ -11668,33 +11668,33 @@ ] }, { - "id": "0x7f0da6e93c88", + "id": "0x7feb10eb7d28", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22583, - "line": 732, + "offset": 22316, + "line": 724, "col": 9, "tokLen": 6 }, "end": { - "offset": 22596, + "offset": 22329, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e93c58", + "id": "0x7feb10eb7cf8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22590, + "offset": 22323, "col": 16, "tokLen": 4 }, "end": { - "offset": 22596, + "offset": 22329, "col": 22, "tokLen": 8 } @@ -11704,7 +11704,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc03c0", + "id": "0x37ff0f70", "kind": "EnumConstantDecl", "name": "HIGHGAIN", "type": { @@ -11717,35 +11717,35 @@ ] }, { - "id": "0x7f0da6e94fc8", + "id": "0x7feb10eb9068", "kind": "IfStmt", "range": { "begin": { - "offset": 22610, - "line": 733, + "offset": 22343, + "line": 725, "col": 5, "tokLen": 2 }, "end": { - "offset": 22655, - "line": 734, + "offset": 22388, + "line": 726, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e94f18", + "id": "0x7feb10eb8fb8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22614, - "line": 733, + "offset": 22347, + "line": 725, "col": 9, "tokLen": 1 }, "end": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 } @@ -11757,16 +11757,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e94f00", + "id": "0x7feb10eb8fa0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22616, + "offset": 22349, "col": 11, "tokLen": 2 }, "end": { - "offset": 22616, + "offset": 22349, "col": 11, "tokLen": 2 } @@ -11778,16 +11778,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e94ee0", + "id": "0x7feb10eb8f80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22616, + "offset": 22349, "col": 11, "tokLen": 2 }, "end": { - "offset": 22616, + "offset": 22349, "col": 11, "tokLen": 2 } @@ -11797,7 +11797,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -11808,16 +11808,16 @@ ] }, { - "id": "0x7f0da6e93cb8", + "id": "0x7feb10eb7d58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22614, + "offset": 22347, "col": 9, "tokLen": 1 }, "end": { - "offset": 22614, + "offset": 22347, "col": 9, "tokLen": 1 } @@ -11825,11 +11825,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -11838,16 +11838,16 @@ } }, { - "id": "0x7f0da6e94ec8", + "id": "0x7feb10eb8f68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 }, "end": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 } @@ -11859,16 +11859,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e93cd8", + "id": "0x7feb10eb7d78", "kind": "StringLiteral", "range": { "begin": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 }, "end": { - "offset": 22619, + "offset": 22352, "col": 14, "tokLen": 13 } @@ -11884,33 +11884,33 @@ ] }, { - "id": "0x7f0da6e94fb8", + "id": "0x7feb10eb9058", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22642, - "line": 734, + "offset": 22375, + "line": 726, "col": 9, "tokLen": 6 }, "end": { - "offset": 22655, + "offset": 22388, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e94f88", + "id": "0x7feb10eb9028", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22649, + "offset": 22382, "col": 16, "tokLen": 4 }, "end": { - "offset": 22655, + "offset": 22388, "col": 22, "tokLen": 11 } @@ -11920,7 +11920,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0410", + "id": "0x37ff0fc0", "kind": "EnumConstantDecl", "name": "DYNAMICGAIN", "type": { @@ -11933,35 +11933,35 @@ ] }, { - "id": "0x7f0da6e962f8", + "id": "0x7feb10eba398", "kind": "IfStmt", "range": { "begin": { - "offset": 22672, - "line": 735, + "offset": 22405, + "line": 727, "col": 5, "tokLen": 2 }, "end": { - "offset": 22713, - "line": 736, + "offset": 22446, + "line": 728, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6e96248", + "id": "0x7feb10eba2e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22676, - "line": 735, + "offset": 22409, + "line": 727, "col": 9, "tokLen": 1 }, "end": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 } @@ -11973,16 +11973,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e96230", + "id": "0x7feb10eba2d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22678, + "offset": 22411, "col": 11, "tokLen": 2 }, "end": { - "offset": 22678, + "offset": 22411, "col": 11, "tokLen": 2 } @@ -11994,16 +11994,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e96210", + "id": "0x7feb10eba2b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22678, + "offset": 22411, "col": 11, "tokLen": 2 }, "end": { - "offset": 22678, + "offset": 22411, "col": 11, "tokLen": 2 } @@ -12013,7 +12013,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12024,16 +12024,16 @@ ] }, { - "id": "0x7f0da6e94fe8", + "id": "0x7feb10eb9088", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22676, + "offset": 22409, "col": 9, "tokLen": 1 }, "end": { - "offset": 22676, + "offset": 22409, "col": 9, "tokLen": 1 } @@ -12041,11 +12041,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12054,16 +12054,16 @@ } }, { - "id": "0x7f0da6e961f8", + "id": "0x7feb10eba298", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 }, "end": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 } @@ -12075,16 +12075,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e95008", + "id": "0x7feb10eb90a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 }, "end": { - "offset": 22681, + "offset": 22414, "col": 14, "tokLen": 9 } @@ -12100,33 +12100,33 @@ ] }, { - "id": "0x7f0da6e962e8", + "id": "0x7feb10eba388", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22700, - "line": 736, + "offset": 22433, + "line": 728, "col": 9, "tokLen": 6 }, "end": { - "offset": 22713, + "offset": 22446, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6e962b8", + "id": "0x7feb10eba358", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22707, + "offset": 22440, "col": 16, "tokLen": 4 }, "end": { - "offset": 22713, + "offset": 22446, "col": 22, "tokLen": 7 } @@ -12136,7 +12136,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0460", + "id": "0x37ff1010", "kind": "EnumConstantDecl", "name": "LOWGAIN", "type": { @@ -12149,35 +12149,35 @@ ] }, { - "id": "0x7f0da6e56638", + "id": "0x7feb10ebb6c8", "kind": "IfStmt", "range": { "begin": { - "offset": 22726, - "line": 737, + "offset": 22459, + "line": 729, "col": 5, "tokLen": 2 }, "end": { - "offset": 22770, - "line": 738, + "offset": 22503, + "line": 730, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e56588", + "id": "0x7feb10ebb618", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22730, - "line": 737, + "offset": 22463, + "line": 729, "col": 9, "tokLen": 1 }, "end": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 } @@ -12189,16 +12189,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e56570", + "id": "0x7feb10ebb600", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22732, + "offset": 22465, "col": 11, "tokLen": 2 }, "end": { - "offset": 22732, + "offset": 22465, "col": 11, "tokLen": 2 } @@ -12210,16 +12210,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e56550", + "id": "0x7feb10ebb5e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22732, + "offset": 22465, "col": 11, "tokLen": 2 }, "end": { - "offset": 22732, + "offset": 22465, "col": 11, "tokLen": 2 } @@ -12229,7 +12229,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12240,16 +12240,16 @@ ] }, { - "id": "0x7f0da6e96318", + "id": "0x7feb10eba3b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22730, + "offset": 22463, "col": 9, "tokLen": 1 }, "end": { - "offset": 22730, + "offset": 22463, "col": 9, "tokLen": 1 } @@ -12257,11 +12257,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12270,16 +12270,16 @@ } }, { - "id": "0x7f0da6e56538", + "id": "0x7feb10ebb5c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 }, "end": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 } @@ -12291,16 +12291,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e96338", + "id": "0x7feb10eba3d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 }, "end": { - "offset": 22735, + "offset": 22468, "col": 14, "tokLen": 12 } @@ -12316,33 +12316,33 @@ ] }, { - "id": "0x7f0da6e56628", + "id": "0x7feb10ebb6b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22757, - "line": 738, + "offset": 22490, + "line": 730, "col": 9, "tokLen": 6 }, "end": { - "offset": 22770, + "offset": 22503, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e565f8", + "id": "0x7feb10ebb688", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22764, + "offset": 22497, "col": 16, "tokLen": 4 }, "end": { - "offset": 22770, + "offset": 22503, "col": 22, "tokLen": 10 } @@ -12352,7 +12352,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc04b0", + "id": "0x37ff1060", "kind": "EnumConstantDecl", "name": "MEDIUMGAIN", "type": { @@ -12365,35 +12365,35 @@ ] }, { - "id": "0x7f0da6e57968", + "id": "0x38717878", "kind": "IfStmt", "range": { "begin": { - "offset": 22786, - "line": 739, + "offset": 22519, + "line": 731, "col": 5, "tokLen": 2 }, "end": { - "offset": 22832, - "line": 740, + "offset": 22565, + "line": 732, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e578b8", + "id": "0x387177c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22790, - "line": 739, + "offset": 22523, + "line": 731, "col": 9, "tokLen": 1 }, "end": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 } @@ -12405,16 +12405,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e578a0", + "id": "0x387177b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22792, + "offset": 22525, "col": 11, "tokLen": 2 }, "end": { - "offset": 22792, + "offset": 22525, "col": 11, "tokLen": 2 } @@ -12426,16 +12426,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e57880", + "id": "0x38717790", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22792, + "offset": 22525, "col": 11, "tokLen": 2 }, "end": { - "offset": 22792, + "offset": 22525, "col": 11, "tokLen": 2 } @@ -12445,7 +12445,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12456,16 +12456,16 @@ ] }, { - "id": "0x7f0da6e56658", + "id": "0x7feb10ebb6e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22790, + "offset": 22523, "col": 9, "tokLen": 1 }, "end": { - "offset": 22790, + "offset": 22523, "col": 9, "tokLen": 1 } @@ -12473,11 +12473,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12486,16 +12486,16 @@ } }, { - "id": "0x7f0da6e57868", + "id": "0x38717778", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 }, "end": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 } @@ -12507,16 +12507,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e56678", + "id": "0x7feb10ebb708", "kind": "StringLiteral", "range": { "begin": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 }, "end": { - "offset": 22795, + "offset": 22528, "col": 14, "tokLen": 14 } @@ -12532,33 +12532,33 @@ ] }, { - "id": "0x7f0da6e57958", + "id": "0x38717868", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22819, - "line": 740, + "offset": 22552, + "line": 732, "col": 9, "tokLen": 6 }, "end": { - "offset": 22832, + "offset": 22565, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e57928", + "id": "0x38717838", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22826, + "offset": 22559, "col": 16, "tokLen": 4 }, "end": { - "offset": 22832, + "offset": 22565, "col": 22, "tokLen": 12 } @@ -12568,7 +12568,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0500", + "id": "0x37ff10b0", "kind": "EnumConstantDecl", "name": "VERYHIGHGAIN", "type": { @@ -12581,35 +12581,35 @@ ] }, { - "id": "0x7f0da6e58c98", + "id": "0x38718ba8", "kind": "IfStmt", "range": { "begin": { - "offset": 22850, - "line": 741, + "offset": 22583, + "line": 733, "col": 5, "tokLen": 2 }, "end": { - "offset": 22893, - "line": 742, + "offset": 22626, + "line": 734, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e58be8", + "id": "0x38718af8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22854, - "line": 741, + "offset": 22587, + "line": 733, "col": 9, "tokLen": 1 }, "end": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 } @@ -12621,16 +12621,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e58bd0", + "id": "0x38718ae0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22856, + "offset": 22589, "col": 11, "tokLen": 2 }, "end": { - "offset": 22856, + "offset": 22589, "col": 11, "tokLen": 2 } @@ -12642,16 +12642,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e58bb0", + "id": "0x38718ac0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22856, + "offset": 22589, "col": 11, "tokLen": 2 }, "end": { - "offset": 22856, + "offset": 22589, "col": 11, "tokLen": 2 } @@ -12661,7 +12661,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12672,16 +12672,16 @@ ] }, { - "id": "0x7f0da6e57988", + "id": "0x38717898", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22854, + "offset": 22587, "col": 9, "tokLen": 1 }, "end": { - "offset": 22854, + "offset": 22587, "col": 9, "tokLen": 1 } @@ -12689,11 +12689,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12702,16 +12702,16 @@ } }, { - "id": "0x7f0da6e58b98", + "id": "0x38718aa8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 }, "end": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 } @@ -12723,16 +12723,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e579a8", + "id": "0x387178b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 }, "end": { - "offset": 22859, + "offset": 22592, "col": 14, "tokLen": 11 } @@ -12748,33 +12748,33 @@ ] }, { - "id": "0x7f0da6e58c88", + "id": "0x38718b98", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22880, - "line": 742, + "offset": 22613, + "line": 734, "col": 9, "tokLen": 6 }, "end": { - "offset": 22893, + "offset": 22626, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e58c58", + "id": "0x38718b68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22887, + "offset": 22620, "col": 16, "tokLen": 4 }, "end": { - "offset": 22893, + "offset": 22626, "col": 22, "tokLen": 9 } @@ -12784,7 +12784,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0550", + "id": "0x37ff1100", "kind": "EnumConstantDecl", "name": "HIGHGAIN0", "type": { @@ -12797,35 +12797,35 @@ ] }, { - "id": "0x7f0da6e59fc8", + "id": "0x38719ed8", "kind": "IfStmt", "range": { "begin": { - "offset": 22908, - "line": 743, + "offset": 22641, + "line": 735, "col": 5, "tokLen": 2 }, "end": { - "offset": 22950, - "line": 744, + "offset": 22683, + "line": 736, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e59f18", + "id": "0x38719e28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22912, - "line": 743, + "offset": 22645, + "line": 735, "col": 9, "tokLen": 1 }, "end": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 } @@ -12837,16 +12837,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e59f00", + "id": "0x38719e10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22914, + "offset": 22647, "col": 11, "tokLen": 2 }, "end": { - "offset": 22914, + "offset": 22647, "col": 11, "tokLen": 2 } @@ -12858,16 +12858,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e59ee0", + "id": "0x38719df0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22914, + "offset": 22647, "col": 11, "tokLen": 2 }, "end": { - "offset": 22914, + "offset": 22647, "col": 11, "tokLen": 2 } @@ -12877,7 +12877,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -12888,16 +12888,16 @@ ] }, { - "id": "0x7f0da6e58cb8", + "id": "0x38718bc8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22912, + "offset": 22645, "col": 9, "tokLen": 1 }, "end": { - "offset": 22912, + "offset": 22645, "col": 9, "tokLen": 1 } @@ -12905,11 +12905,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -12918,16 +12918,16 @@ } }, { - "id": "0x7f0da6e59ec8", + "id": "0x38719dd8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 }, "end": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 } @@ -12939,16 +12939,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e58cd8", + "id": "0x38718be8", "kind": "StringLiteral", "range": { "begin": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 }, "end": { - "offset": 22917, + "offset": 22650, "col": 14, "tokLen": 10 } @@ -12964,33 +12964,33 @@ ] }, { - "id": "0x7f0da6e59fb8", + "id": "0x38719ec8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22937, - "line": 744, + "offset": 22670, + "line": 736, "col": 9, "tokLen": 6 }, "end": { - "offset": 22950, + "offset": 22683, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e59f88", + "id": "0x38719e98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22944, + "offset": 22677, "col": 16, "tokLen": 4 }, "end": { - "offset": 22950, + "offset": 22683, "col": 22, "tokLen": 8 } @@ -13000,7 +13000,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc05a0", + "id": "0x37ff1150", "kind": "EnumConstantDecl", "name": "FIXGAIN1", "type": { @@ -13013,35 +13013,35 @@ ] }, { - "id": "0x7f0da6e5b2f8", + "id": "0x3871b208", "kind": "IfStmt", "range": { "begin": { - "offset": 22964, - "line": 745, + "offset": 22697, + "line": 737, "col": 5, "tokLen": 2 }, "end": { - "offset": 23006, - "line": 746, + "offset": 22739, + "line": 738, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e5b248", + "id": "0x3871b158", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 22968, - "line": 745, + "offset": 22701, + "line": 737, "col": 9, "tokLen": 1 }, "end": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 } @@ -13053,16 +13053,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5b230", + "id": "0x3871b140", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22970, + "offset": 22703, "col": 11, "tokLen": 2 }, "end": { - "offset": 22970, + "offset": 22703, "col": 11, "tokLen": 2 } @@ -13074,16 +13074,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5b210", + "id": "0x3871b120", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22970, + "offset": 22703, "col": 11, "tokLen": 2 }, "end": { - "offset": 22970, + "offset": 22703, "col": 11, "tokLen": 2 } @@ -13093,7 +13093,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13104,16 +13104,16 @@ ] }, { - "id": "0x7f0da6e59fe8", + "id": "0x38719ef8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 22968, + "offset": 22701, "col": 9, "tokLen": 1 }, "end": { - "offset": 22968, + "offset": 22701, "col": 9, "tokLen": 1 } @@ -13121,11 +13121,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13134,16 +13134,16 @@ } }, { - "id": "0x7f0da6e5b1f8", + "id": "0x3871b108", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 }, "end": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 } @@ -13155,16 +13155,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5a008", + "id": "0x38719f18", "kind": "StringLiteral", "range": { "begin": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 }, "end": { - "offset": 22973, + "offset": 22706, "col": 14, "tokLen": 10 } @@ -13180,33 +13180,33 @@ ] }, { - "id": "0x7f0da6e5b2e8", + "id": "0x3871b1f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 22993, - "line": 746, + "offset": 22726, + "line": 738, "col": 9, "tokLen": 6 }, "end": { - "offset": 23006, + "offset": 22739, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6e5b2b8", + "id": "0x3871b1c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23000, + "offset": 22733, "col": 16, "tokLen": 4 }, "end": { - "offset": 23006, + "offset": 22739, "col": 22, "tokLen": 8 } @@ -13216,7 +13216,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc05f0", + "id": "0x37ff11a0", "kind": "EnumConstantDecl", "name": "FIXGAIN2", "type": { @@ -13229,35 +13229,35 @@ ] }, { - "id": "0x7f0da6e5c628", + "id": "0x3871c538", "kind": "IfStmt", "range": { "begin": { - "offset": 23020, - "line": 747, + "offset": 22753, + "line": 739, "col": 5, "tokLen": 2 }, "end": { - "offset": 23065, - "line": 748, + "offset": 22798, + "line": 740, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e5c578", + "id": "0x3871c488", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23024, - "line": 747, + "offset": 22757, + "line": 739, "col": 9, "tokLen": 1 }, "end": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 } @@ -13269,16 +13269,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5c560", + "id": "0x3871c470", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23026, + "offset": 22759, "col": 11, "tokLen": 2 }, "end": { - "offset": 23026, + "offset": 22759, "col": 11, "tokLen": 2 } @@ -13290,16 +13290,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5c540", + "id": "0x3871c450", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23026, + "offset": 22759, "col": 11, "tokLen": 2 }, "end": { - "offset": 23026, + "offset": 22759, "col": 11, "tokLen": 2 } @@ -13309,7 +13309,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13320,16 +13320,16 @@ ] }, { - "id": "0x7f0da6e5b318", + "id": "0x3871b228", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23024, + "offset": 22757, "col": 9, "tokLen": 1 }, "end": { - "offset": 23024, + "offset": 22757, "col": 9, "tokLen": 1 } @@ -13337,11 +13337,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13350,16 +13350,16 @@ } }, { - "id": "0x7f0da6e5c528", + "id": "0x3871c438", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 }, "end": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 } @@ -13371,16 +13371,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5b338", + "id": "0x3871b248", "kind": "StringLiteral", "range": { "begin": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 }, "end": { - "offset": 23029, + "offset": 22762, "col": 14, "tokLen": 13 } @@ -13396,33 +13396,33 @@ ] }, { - "id": "0x7f0da6e5c618", + "id": "0x3871c528", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23052, - "line": 748, + "offset": 22785, + "line": 740, "col": 9, "tokLen": 6 }, "end": { - "offset": 23065, + "offset": 22798, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e5c5e8", + "id": "0x3871c4f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23059, + "offset": 22792, "col": 16, "tokLen": 4 }, "end": { - "offset": 23065, + "offset": 22798, "col": 22, "tokLen": 11 } @@ -13432,7 +13432,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0640", + "id": "0x37ff11f0", "kind": "EnumConstantDecl", "name": "VERYLOWGAIN", "type": { @@ -13445,35 +13445,35 @@ ] }, { - "id": "0x7f0da6e5d958", + "id": "0x3871d868", "kind": "IfStmt", "range": { "begin": { - "offset": 23082, - "line": 749, + "offset": 22815, + "line": 741, "col": 5, "tokLen": 2 }, "end": { - "offset": 23121, - "line": 750, + "offset": 22854, + "line": 742, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e5d8a8", + "id": "0x3871d7b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23086, - "line": 749, + "offset": 22819, + "line": 741, "col": 9, "tokLen": 1 }, "end": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 } @@ -13485,16 +13485,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5d890", + "id": "0x3871d7a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23088, + "offset": 22821, "col": 11, "tokLen": 2 }, "end": { - "offset": 23088, + "offset": 22821, "col": 11, "tokLen": 2 } @@ -13506,16 +13506,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5d870", + "id": "0x3871d780", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23088, + "offset": 22821, "col": 11, "tokLen": 2 }, "end": { - "offset": 23088, + "offset": 22821, "col": 11, "tokLen": 2 } @@ -13525,7 +13525,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13536,16 +13536,16 @@ ] }, { - "id": "0x7f0da6e5c648", + "id": "0x3871c558", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23086, + "offset": 22819, "col": 9, "tokLen": 1 }, "end": { - "offset": 23086, + "offset": 22819, "col": 9, "tokLen": 1 } @@ -13553,11 +13553,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13566,16 +13566,16 @@ } }, { - "id": "0x7f0da6e5d858", + "id": "0x3871d768", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 }, "end": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 } @@ -13587,16 +13587,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5c668", + "id": "0x3871c578", "kind": "StringLiteral", "range": { "begin": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 }, "end": { - "offset": 23091, + "offset": 22824, "col": 14, "tokLen": 7 } @@ -13612,33 +13612,33 @@ ] }, { - "id": "0x7f0da6e5d948", + "id": "0x3871d858", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23108, - "line": 750, + "offset": 22841, + "line": 742, "col": 9, "tokLen": 6 }, "end": { - "offset": 23121, + "offset": 22854, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e5d918", + "id": "0x3871d828", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23115, + "offset": 22848, "col": 16, "tokLen": 4 }, "end": { - "offset": 23121, + "offset": 22854, "col": 22, "tokLen": 11 } @@ -13648,7 +13648,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0690", + "id": "0x37ff1240", "kind": "EnumConstantDecl", "name": "G1_HIGHGAIN", "type": { @@ -13661,35 +13661,35 @@ ] }, { - "id": "0x7f0da6e5ec88", + "id": "0x3871eb98", "kind": "IfStmt", "range": { "begin": { - "offset": 23138, - "line": 751, + "offset": 22871, + "line": 743, "col": 5, "tokLen": 2 }, "end": { - "offset": 23177, - "line": 752, + "offset": 22910, + "line": 744, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e5ebd8", + "id": "0x3871eae8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23142, - "line": 751, + "offset": 22875, + "line": 743, "col": 9, "tokLen": 1 }, "end": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 } @@ -13701,16 +13701,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5ebc0", + "id": "0x3871ead0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23144, + "offset": 22877, "col": 11, "tokLen": 2 }, "end": { - "offset": 23144, + "offset": 22877, "col": 11, "tokLen": 2 } @@ -13722,16 +13722,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5eba0", + "id": "0x3871eab0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23144, + "offset": 22877, "col": 11, "tokLen": 2 }, "end": { - "offset": 23144, + "offset": 22877, "col": 11, "tokLen": 2 } @@ -13741,7 +13741,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13752,16 +13752,16 @@ ] }, { - "id": "0x7f0da6e5d978", + "id": "0x3871d888", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23142, + "offset": 22875, "col": 9, "tokLen": 1 }, "end": { - "offset": 23142, + "offset": 22875, "col": 9, "tokLen": 1 } @@ -13769,11 +13769,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13782,16 +13782,16 @@ } }, { - "id": "0x7f0da6e5eb88", + "id": "0x3871ea98", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 }, "end": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 } @@ -13803,16 +13803,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5d998", + "id": "0x3871d8a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 }, "end": { - "offset": 23147, + "offset": 22880, "col": 14, "tokLen": 7 } @@ -13828,33 +13828,33 @@ ] }, { - "id": "0x7f0da6e5ec78", + "id": "0x3871eb88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23164, - "line": 752, + "offset": 22897, + "line": 744, "col": 9, "tokLen": 6 }, "end": { - "offset": 23177, + "offset": 22910, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e5ec48", + "id": "0x3871eb58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23171, + "offset": 22904, "col": 16, "tokLen": 4 }, "end": { - "offset": 23177, + "offset": 22910, "col": 22, "tokLen": 10 } @@ -13864,7 +13864,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc06e0", + "id": "0x37ff1290", "kind": "EnumConstantDecl", "name": "G1_LOWGAIN", "type": { @@ -13877,35 +13877,35 @@ ] }, { - "id": "0x7f0da6e5ffb8", + "id": "0x3871fec8", "kind": "IfStmt", "range": { "begin": { - "offset": 23193, - "line": 753, + "offset": 22926, + "line": 745, "col": 5, "tokLen": 2 }, "end": { - "offset": 23235, - "line": 754, + "offset": 22968, + "line": 746, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6e5ff08", + "id": "0x3871fe18", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23197, - "line": 753, + "offset": 22930, + "line": 745, "col": 9, "tokLen": 1 }, "end": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 } @@ -13917,16 +13917,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e5fef0", + "id": "0x3871fe00", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23199, + "offset": 22932, "col": 11, "tokLen": 2 }, "end": { - "offset": 23199, + "offset": 22932, "col": 11, "tokLen": 2 } @@ -13938,16 +13938,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e5fed0", + "id": "0x3871fde0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23199, + "offset": 22932, "col": 11, "tokLen": 2 }, "end": { - "offset": 23199, + "offset": 22932, "col": 11, "tokLen": 2 } @@ -13957,7 +13957,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -13968,16 +13968,16 @@ ] }, { - "id": "0x7f0da6e5eca8", + "id": "0x3871ebb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23197, + "offset": 22930, "col": 9, "tokLen": 1 }, "end": { - "offset": 23197, + "offset": 22930, "col": 9, "tokLen": 1 } @@ -13985,11 +13985,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -13998,16 +13998,16 @@ } }, { - "id": "0x7f0da6e5feb8", + "id": "0x3871fdc8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 }, "end": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 } @@ -14019,16 +14019,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5ecc8", + "id": "0x3871ebd8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 }, "end": { - "offset": 23202, + "offset": 22935, "col": 14, "tokLen": 10 } @@ -14044,33 +14044,33 @@ ] }, { - "id": "0x7f0da6e5ffa8", + "id": "0x3871feb8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23222, - "line": 754, + "offset": 22955, + "line": 746, "col": 9, "tokLen": 6 }, "end": { - "offset": 23235, + "offset": 22968, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6e5ff78", + "id": "0x3871fe88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23229, + "offset": 22962, "col": 16, "tokLen": 4 }, "end": { - "offset": 23235, + "offset": 22968, "col": 22, "tokLen": 19 } @@ -14080,7 +14080,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0730", + "id": "0x37ff12e0", "kind": "EnumConstantDecl", "name": "G2_HIGHCAP_HIGHGAIN", "type": { @@ -14093,35 +14093,35 @@ ] }, { - "id": "0x7f0da6e612e8", + "id": "0x387211f8", "kind": "IfStmt", "range": { "begin": { - "offset": 23260, - "line": 755, + "offset": 22993, + "line": 747, "col": 5, "tokLen": 2 }, "end": { - "offset": 23302, - "line": 756, + "offset": 23035, + "line": 748, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e61238", + "id": "0x38721148", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23264, - "line": 755, + "offset": 22997, + "line": 747, "col": 9, "tokLen": 1 }, "end": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 } @@ -14133,16 +14133,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e61220", + "id": "0x38721130", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23266, + "offset": 22999, "col": 11, "tokLen": 2 }, "end": { - "offset": 23266, + "offset": 22999, "col": 11, "tokLen": 2 } @@ -14154,16 +14154,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e61200", + "id": "0x38721110", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23266, + "offset": 22999, "col": 11, "tokLen": 2 }, "end": { - "offset": 23266, + "offset": 22999, "col": 11, "tokLen": 2 } @@ -14173,7 +14173,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -14184,16 +14184,16 @@ ] }, { - "id": "0x7f0da6e5ffd8", + "id": "0x3871fee8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23264, + "offset": 22997, "col": 9, "tokLen": 1 }, "end": { - "offset": 23264, + "offset": 22997, "col": 9, "tokLen": 1 } @@ -14201,11 +14201,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -14214,16 +14214,16 @@ } }, { - "id": "0x7f0da6e611e8", + "id": "0x387210f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 }, "end": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 } @@ -14235,16 +14235,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e5fff8", + "id": "0x3871ff08", "kind": "StringLiteral", "range": { "begin": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 }, "end": { - "offset": 23269, + "offset": 23002, "col": 14, "tokLen": 10 } @@ -14260,33 +14260,33 @@ ] }, { - "id": "0x7f0da6e612d8", + "id": "0x387211e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23289, - "line": 756, + "offset": 23022, + "line": 748, "col": 9, "tokLen": 6 }, "end": { - "offset": 23302, + "offset": 23035, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e612a8", + "id": "0x387211b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23296, + "offset": 23029, "col": 16, "tokLen": 4 }, "end": { - "offset": 23302, + "offset": 23035, "col": 22, "tokLen": 18 } @@ -14296,7 +14296,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0780", + "id": "0x37ff1330", "kind": "EnumConstantDecl", "name": "G2_HIGHCAP_LOWGAIN", "type": { @@ -14309,35 +14309,35 @@ ] }, { - "id": "0x7f0da6e62618", + "id": "0x38722528", "kind": "IfStmt", "range": { "begin": { - "offset": 23326, - "line": 757, + "offset": 23059, + "line": 749, "col": 5, "tokLen": 2 }, "end": { - "offset": 23368, - "line": 758, + "offset": 23101, + "line": 750, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e62568", + "id": "0x38722478", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23330, - "line": 757, + "offset": 23063, + "line": 749, "col": 9, "tokLen": 1 }, "end": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 } @@ -14349,16 +14349,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e62550", + "id": "0x38722460", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23332, + "offset": 23065, "col": 11, "tokLen": 2 }, "end": { - "offset": 23332, + "offset": 23065, "col": 11, "tokLen": 2 } @@ -14370,16 +14370,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e62530", + "id": "0x38722440", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23332, + "offset": 23065, "col": 11, "tokLen": 2 }, "end": { - "offset": 23332, + "offset": 23065, "col": 11, "tokLen": 2 } @@ -14389,7 +14389,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -14400,16 +14400,16 @@ ] }, { - "id": "0x7f0da6e61308", + "id": "0x38721218", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23330, + "offset": 23063, "col": 9, "tokLen": 1 }, "end": { - "offset": 23330, + "offset": 23063, "col": 9, "tokLen": 1 } @@ -14417,11 +14417,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -14430,16 +14430,16 @@ } }, { - "id": "0x7f0da6e62518", + "id": "0x38722428", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 }, "end": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 } @@ -14451,16 +14451,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e61328", + "id": "0x38721238", "kind": "StringLiteral", "range": { "begin": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 }, "end": { - "offset": 23335, + "offset": 23068, "col": 14, "tokLen": 10 } @@ -14476,33 +14476,33 @@ ] }, { - "id": "0x7f0da6e62608", + "id": "0x38722518", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23355, - "line": 758, + "offset": 23088, + "line": 750, "col": 9, "tokLen": 6 }, "end": { - "offset": 23368, + "offset": 23101, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e625d8", + "id": "0x387224e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23362, + "offset": 23095, "col": 16, "tokLen": 4 }, "end": { - "offset": 23368, + "offset": 23101, "col": 22, "tokLen": 18 } @@ -14512,7 +14512,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc07d0", + "id": "0x37ff1380", "kind": "EnumConstantDecl", "name": "G2_LOWCAP_HIGHGAIN", "type": { @@ -14525,35 +14525,35 @@ ] }, { - "id": "0x7f0da6e63948", + "id": "0x38723858", "kind": "IfStmt", "range": { "begin": { - "offset": 23392, - "line": 759, + "offset": 23125, + "line": 751, "col": 5, "tokLen": 2 }, "end": { - "offset": 23434, - "line": 760, + "offset": 23167, + "line": 752, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6e63898", + "id": "0x387237a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23396, - "line": 759, + "offset": 23129, + "line": 751, "col": 9, "tokLen": 1 }, "end": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 } @@ -14565,16 +14565,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e63880", + "id": "0x38723790", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23398, + "offset": 23131, "col": 11, "tokLen": 2 }, "end": { - "offset": 23398, + "offset": 23131, "col": 11, "tokLen": 2 } @@ -14586,16 +14586,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e63860", + "id": "0x38723770", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23398, + "offset": 23131, "col": 11, "tokLen": 2 }, "end": { - "offset": 23398, + "offset": 23131, "col": 11, "tokLen": 2 } @@ -14605,7 +14605,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -14616,16 +14616,16 @@ ] }, { - "id": "0x7f0da6e62638", + "id": "0x38722548", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23396, + "offset": 23129, "col": 9, "tokLen": 1 }, "end": { - "offset": 23396, + "offset": 23129, "col": 9, "tokLen": 1 } @@ -14633,11 +14633,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -14646,16 +14646,16 @@ } }, { - "id": "0x7f0da6e63848", + "id": "0x38723758", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 }, "end": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 } @@ -14667,16 +14667,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e62658", + "id": "0x38722568", "kind": "StringLiteral", "range": { "begin": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 }, "end": { - "offset": 23401, + "offset": 23134, "col": 14, "tokLen": 10 } @@ -14692,33 +14692,33 @@ ] }, { - "id": "0x7f0da6e63938", + "id": "0x38723848", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23421, - "line": 760, + "offset": 23154, + "line": 752, "col": 9, "tokLen": 6 }, "end": { - "offset": 23434, + "offset": 23167, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6e63908", + "id": "0x38723818", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23428, + "offset": 23161, "col": 16, "tokLen": 4 }, "end": { - "offset": 23434, + "offset": 23167, "col": 22, "tokLen": 17 } @@ -14728,7 +14728,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0820", + "id": "0x37ff13d0", "kind": "EnumConstantDecl", "name": "G2_LOWCAP_LOWGAIN", "type": { @@ -14741,35 +14741,35 @@ ] }, { - "id": "0x7f0da6e64c78", + "id": "0x38724b88", "kind": "IfStmt", "range": { "begin": { - "offset": 23457, - "line": 761, + "offset": 23190, + "line": 753, "col": 5, "tokLen": 2 }, "end": { - "offset": 23496, - "line": 762, + "offset": 23229, + "line": 754, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e64bc8", + "id": "0x38724ad8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23461, - "line": 761, + "offset": 23194, + "line": 753, "col": 9, "tokLen": 1 }, "end": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 } @@ -14781,16 +14781,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e64bb0", + "id": "0x38724ac0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23463, + "offset": 23196, "col": 11, "tokLen": 2 }, "end": { - "offset": 23463, + "offset": 23196, "col": 11, "tokLen": 2 } @@ -14802,16 +14802,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e64b90", + "id": "0x38724aa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23463, + "offset": 23196, "col": 11, "tokLen": 2 }, "end": { - "offset": 23463, + "offset": 23196, "col": 11, "tokLen": 2 } @@ -14821,7 +14821,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -14832,16 +14832,16 @@ ] }, { - "id": "0x7f0da6e63968", + "id": "0x38723878", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23461, + "offset": 23194, "col": 9, "tokLen": 1 }, "end": { - "offset": 23461, + "offset": 23194, "col": 9, "tokLen": 1 } @@ -14849,11 +14849,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -14862,16 +14862,16 @@ } }, { - "id": "0x7f0da6e64b78", + "id": "0x38724a88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 }, "end": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 } @@ -14883,16 +14883,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e63988", + "id": "0x38723898", "kind": "StringLiteral", "range": { "begin": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 }, "end": { - "offset": 23466, + "offset": 23199, "col": 14, "tokLen": 7 } @@ -14908,33 +14908,33 @@ ] }, { - "id": "0x7f0da6e64c68", + "id": "0x38724b78", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23483, - "line": 762, + "offset": 23216, + "line": 754, "col": 9, "tokLen": 6 }, "end": { - "offset": 23496, + "offset": 23229, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e64c38", + "id": "0x38724b48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23490, + "offset": 23223, "col": 16, "tokLen": 4 }, "end": { - "offset": 23496, + "offset": 23229, "col": 22, "tokLen": 11 } @@ -14944,7 +14944,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0870", + "id": "0x37ff1420", "kind": "EnumConstantDecl", "name": "G4_HIGHGAIN", "type": { @@ -14957,35 +14957,35 @@ ] }, { - "id": "0x7f0da6e65fa8", + "id": "0x38725eb8", "kind": "IfStmt", "range": { "begin": { - "offset": 23513, - "line": 763, + "offset": 23246, + "line": 755, "col": 5, "tokLen": 2 }, "end": { - "offset": 23552, - "line": 764, + "offset": 23285, + "line": 756, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e65ef8", + "id": "0x38725e08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23517, - "line": 763, + "offset": 23250, + "line": 755, "col": 9, "tokLen": 1 }, "end": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 } @@ -14997,16 +14997,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e65ee0", + "id": "0x38725df0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23519, + "offset": 23252, "col": 11, "tokLen": 2 }, "end": { - "offset": 23519, + "offset": 23252, "col": 11, "tokLen": 2 } @@ -15018,16 +15018,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e65ec0", + "id": "0x38725dd0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23519, + "offset": 23252, "col": 11, "tokLen": 2 }, "end": { - "offset": 23519, + "offset": 23252, "col": 11, "tokLen": 2 } @@ -15037,7 +15037,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -15048,16 +15048,16 @@ ] }, { - "id": "0x7f0da6e64c98", + "id": "0x38724ba8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23517, + "offset": 23250, "col": 9, "tokLen": 1 }, "end": { - "offset": 23517, + "offset": 23250, "col": 9, "tokLen": 1 } @@ -15065,11 +15065,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -15078,16 +15078,16 @@ } }, { - "id": "0x7f0da6e65ea8", + "id": "0x38725db8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 }, "end": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 } @@ -15099,16 +15099,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e64cb8", + "id": "0x38724bc8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 }, "end": { - "offset": 23522, + "offset": 23255, "col": 14, "tokLen": 7 } @@ -15124,33 +15124,33 @@ ] }, { - "id": "0x7f0da6e65f98", + "id": "0x38725ea8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23539, - "line": 764, + "offset": 23272, + "line": 756, "col": 9, "tokLen": 6 }, "end": { - "offset": 23552, + "offset": 23285, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e65f68", + "id": "0x38725e78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23546, + "offset": 23279, "col": 16, "tokLen": 4 }, "end": { - "offset": 23552, + "offset": 23285, "col": 22, "tokLen": 5 } @@ -15160,7 +15160,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0910", + "id": "0x37ff14c0", "kind": "EnumConstantDecl", "name": "GAIN0", "type": { @@ -15173,35 +15173,35 @@ ] }, { - "id": "0x7f0da6e672d8", + "id": "0x387271e8", "kind": "IfStmt", "range": { "begin": { - "offset": 23563, - "line": 765, + "offset": 23296, + "line": 757, "col": 5, "tokLen": 2 }, "end": { - "offset": 23602, - "line": 766, + "offset": 23335, + "line": 758, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e67228", + "id": "0x38727138", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23567, - "line": 765, + "offset": 23300, + "line": 757, "col": 9, "tokLen": 1 }, "end": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 } @@ -15213,16 +15213,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e67210", + "id": "0x38727120", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23569, + "offset": 23302, "col": 11, "tokLen": 2 }, "end": { - "offset": 23569, + "offset": 23302, "col": 11, "tokLen": 2 } @@ -15234,16 +15234,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e671f0", + "id": "0x38727100", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23569, + "offset": 23302, "col": 11, "tokLen": 2 }, "end": { - "offset": 23569, + "offset": 23302, "col": 11, "tokLen": 2 } @@ -15253,7 +15253,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -15264,16 +15264,16 @@ ] }, { - "id": "0x7f0da6e65fc8", + "id": "0x38725ed8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23567, + "offset": 23300, "col": 9, "tokLen": 1 }, "end": { - "offset": 23567, + "offset": 23300, "col": 9, "tokLen": 1 } @@ -15281,11 +15281,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -15294,16 +15294,16 @@ } }, { - "id": "0x7f0da6e671d8", + "id": "0x387270e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 }, "end": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 } @@ -15315,16 +15315,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e65fe8", + "id": "0x38725ef8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 }, "end": { - "offset": 23572, + "offset": 23305, "col": 14, "tokLen": 7 } @@ -15340,33 +15340,33 @@ ] }, { - "id": "0x7f0da6e672c8", + "id": "0x387271d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23589, - "line": 766, + "offset": 23322, + "line": 758, "col": 9, "tokLen": 6 }, "end": { - "offset": 23602, + "offset": 23335, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e67298", + "id": "0x387271a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23596, + "offset": 23329, "col": 16, "tokLen": 4 }, "end": { - "offset": 23602, + "offset": 23335, "col": 22, "tokLen": 10 } @@ -15376,7 +15376,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc08c0", + "id": "0x37ff1470", "kind": "EnumConstantDecl", "name": "G4_LOWGAIN", "type": { @@ -15389,17 +15389,17 @@ ] }, { - "id": "0x7f0da6e67960", + "id": "0x38727870", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 23618, - "line": 767, + "offset": 23351, + "line": 759, "col": 5, "tokLen": 5 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15411,16 +15411,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e67948", + "id": "0x38727858", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 23618, + "offset": 23351, "col": 5, "tokLen": 5 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15431,16 +15431,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e67918", + "id": "0x38727828", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15458,16 +15458,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e67900", + "id": "0x38727810", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15480,16 +15480,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e678d8", + "id": "0x387277e8", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15501,7 +15501,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -15510,16 +15510,16 @@ }, "inner": [ { - "id": "0x7f0da6e678b8", + "id": "0x387277c8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15529,9 +15529,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e678b0", + "temp": "0x387277c0", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -15540,16 +15540,16 @@ }, "inner": [ { - "id": "0x7f0da6e67880", + "id": "0x38727790", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 23624, + "offset": 23357, "col": 11, "tokLen": 12 }, "end": { - "offset": 23659, + "offset": 23392, "col": 46, "tokLen": 1 } @@ -15566,16 +15566,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e67868", + "id": "0x38727778", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15589,16 +15589,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e67850", + "id": "0x38727760", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15611,16 +15611,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e67830", + "id": "0x38727740", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15630,9 +15630,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e67828", + "temp": "0x38727738", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -15641,16 +15641,16 @@ }, "inner": [ { - "id": "0x7f0da6e677f0", + "id": "0x38727700", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15663,16 +15663,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e677d8", + "id": "0x387276e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23656, + "offset": 23389, "col": 43, "tokLen": 1 }, "end": { - "offset": 23656, + "offset": 23389, "col": 43, "tokLen": 1 } @@ -15684,16 +15684,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e677b8", + "id": "0x387276c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23656, + "offset": 23389, "col": 43, "tokLen": 1 }, "end": { - "offset": 23656, + "offset": 23389, "col": 43, "tokLen": 1 } @@ -15703,7 +15703,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -15714,16 +15714,16 @@ ] }, { - "id": "0x7f0da6e677a0", + "id": "0x387276b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 } @@ -15735,16 +15735,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e67308", + "id": "0x38727218", "kind": "StringLiteral", "range": { "begin": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 }, "end": { - "offset": 23637, + "offset": 23370, "col": 24, "tokLen": 18 } @@ -15758,16 +15758,16 @@ ] }, { - "id": "0x7f0da6e67330", + "id": "0x38727240", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 }, "end": { - "offset": 23658, + "offset": 23391, "col": 45, "tokLen": 1 } @@ -15775,11 +15775,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e90078", + "id": "0x7feb10eb4118", "kind": "ParmVarDecl", "name": "s", "type": { @@ -15814,29 +15814,29 @@ ] }, { - "id": "0x7f0da6e67ba8", + "id": "0x38727ab8", "kind": "FunctionDecl", "loc": { - "offset": 23694, + "offset": 23427, "file": "ToString.cpp", - "line": 770, + "line": 762, "col": 30, "tokLen": 8 }, "range": { "begin": { - "offset": 23665, + "offset": 23398, "col": 1, "tokLen": 8 }, "end": { - "offset": 24219, - "line": 788, + "offset": 23952, + "line": 780, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d376488", + "previousDecl": "0x385a6a78", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10speedLevelEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -15850,13 +15850,13 @@ }, "inner": [ { - "id": "0x2cdc0fb0", + "id": "0x37ff1b60", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::speedLevel" }, "decl": { - "id": "0x2cdc0f08", + "id": "0x37ff1ab8", "kind": "EnumDecl", "name": "speedLevel" } @@ -15864,22 +15864,22 @@ ] }, { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "loc": { - "offset": 23722, - "line": 770, + "offset": 23455, + "line": 762, "col": 58, "tokLen": 1 }, "range": { "begin": { - "offset": 23703, + "offset": 23436, "col": 39, "tokLen": 5 }, "end": { - "offset": 23722, + "offset": 23455, "col": 58, "tokLen": 1 } @@ -15891,52 +15891,52 @@ } }, { - "id": "0x7f0da6e71d98", + "id": "0x38731ca8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 23725, + "offset": 23458, "col": 61, "tokLen": 1 }, "end": { - "offset": 24219, - "line": 788, + "offset": 23952, + "line": 780, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e690a8", + "id": "0x38728fb8", "kind": "IfStmt", "range": { "begin": { - "offset": 23731, - "line": 771, + "offset": 23464, + "line": 763, "col": 5, "tokLen": 2 }, "end": { - "offset": 23775, - "line": 772, + "offset": 23508, + "line": 764, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e68ff8", + "id": "0x38728f08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23735, - "line": 771, + "offset": 23468, + "line": 763, "col": 9, "tokLen": 1 }, "end": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 } @@ -15948,16 +15948,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e68fe0", + "id": "0x38728ef0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23737, + "offset": 23470, "col": 11, "tokLen": 2 }, "end": { - "offset": 23737, + "offset": 23470, "col": 11, "tokLen": 2 } @@ -15969,16 +15969,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e68fc0", + "id": "0x38728ed0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23737, + "offset": 23470, "col": 11, "tokLen": 2 }, "end": { - "offset": 23737, + "offset": 23470, "col": 11, "tokLen": 2 } @@ -15988,7 +15988,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -15999,16 +15999,16 @@ ] }, { - "id": "0x7f0da6e67d90", + "id": "0x38727ca0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23735, + "offset": 23468, "col": 9, "tokLen": 1 }, "end": { - "offset": 23735, + "offset": 23468, "col": 9, "tokLen": 1 } @@ -16016,11 +16016,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16029,16 +16029,16 @@ } }, { - "id": "0x7f0da6e68fa8", + "id": "0x38728eb8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 }, "end": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 } @@ -16050,16 +16050,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e67db0", + "id": "0x38727cc0", "kind": "StringLiteral", "range": { "begin": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 }, "end": { - "offset": 23740, + "offset": 23473, "col": 14, "tokLen": 12 } @@ -16075,33 +16075,33 @@ ] }, { - "id": "0x7f0da6e69098", + "id": "0x38728fa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23762, - "line": 772, + "offset": 23495, + "line": 764, "col": 9, "tokLen": 6 }, "end": { - "offset": 23775, + "offset": 23508, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e69068", + "id": "0x38728f78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23769, + "offset": 23502, "col": 16, "tokLen": 4 }, "end": { - "offset": 23775, + "offset": 23508, "col": 22, "tokLen": 10 } @@ -16111,7 +16111,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0fd0", + "id": "0x37ff1b80", "kind": "EnumConstantDecl", "name": "FULL_SPEED", "type": { @@ -16124,35 +16124,35 @@ ] }, { - "id": "0x7f0da6e6a3d8", + "id": "0x3872a2e8", "kind": "IfStmt", "range": { "begin": { - "offset": 23791, - "line": 773, + "offset": 23524, + "line": 765, "col": 5, "tokLen": 2 }, "end": { - "offset": 23826, - "line": 774, + "offset": 23559, + "line": 766, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6a328", + "id": "0x3872a238", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23795, - "line": 773, + "offset": 23528, + "line": 765, "col": 9, "tokLen": 1 }, "end": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 } @@ -16164,16 +16164,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6a310", + "id": "0x3872a220", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23797, + "offset": 23530, "col": 11, "tokLen": 2 }, "end": { - "offset": 23797, + "offset": 23530, "col": 11, "tokLen": 2 } @@ -16185,16 +16185,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6a2f0", + "id": "0x3872a200", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23797, + "offset": 23530, "col": 11, "tokLen": 2 }, "end": { - "offset": 23797, + "offset": 23530, "col": 11, "tokLen": 2 } @@ -16204,7 +16204,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -16215,16 +16215,16 @@ ] }, { - "id": "0x7f0da6e690c8", + "id": "0x38728fd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23795, + "offset": 23528, "col": 9, "tokLen": 1 }, "end": { - "offset": 23795, + "offset": 23528, "col": 9, "tokLen": 1 } @@ -16232,11 +16232,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16245,16 +16245,16 @@ } }, { - "id": "0x7f0da6e6a2d8", + "id": "0x3872a1e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 }, "end": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 } @@ -16266,16 +16266,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e690e8", + "id": "0x38728ff8", "kind": "StringLiteral", "range": { "begin": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 }, "end": { - "offset": 23800, + "offset": 23533, "col": 14, "tokLen": 3 } @@ -16291,33 +16291,33 @@ ] }, { - "id": "0x7f0da6e6a3c8", + "id": "0x3872a2d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23813, - "line": 774, + "offset": 23546, + "line": 766, "col": 9, "tokLen": 6 }, "end": { - "offset": 23826, + "offset": 23559, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6a398", + "id": "0x3872a2a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23820, + "offset": 23553, "col": 16, "tokLen": 4 }, "end": { - "offset": 23826, + "offset": 23559, "col": 22, "tokLen": 10 } @@ -16327,7 +16327,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0fd0", + "id": "0x37ff1b80", "kind": "EnumConstantDecl", "name": "FULL_SPEED", "type": { @@ -16340,35 +16340,35 @@ ] }, { - "id": "0x7f0da6e6b708", + "id": "0x3872b618", "kind": "IfStmt", "range": { "begin": { - "offset": 23842, - "line": 775, + "offset": 23575, + "line": 767, "col": 5, "tokLen": 2 }, "end": { - "offset": 23886, - "line": 776, + "offset": 23619, + "line": 768, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6b658", + "id": "0x3872b568", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23846, - "line": 775, + "offset": 23579, + "line": 767, "col": 9, "tokLen": 1 }, "end": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 } @@ -16380,16 +16380,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6b640", + "id": "0x3872b550", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23848, + "offset": 23581, "col": 11, "tokLen": 2 }, "end": { - "offset": 23848, + "offset": 23581, "col": 11, "tokLen": 2 } @@ -16401,16 +16401,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6b620", + "id": "0x3872b530", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23848, + "offset": 23581, "col": 11, "tokLen": 2 }, "end": { - "offset": 23848, + "offset": 23581, "col": 11, "tokLen": 2 } @@ -16420,7 +16420,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -16431,16 +16431,16 @@ ] }, { - "id": "0x7f0da6e6a3f8", + "id": "0x3872a308", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23846, + "offset": 23579, "col": 9, "tokLen": 1 }, "end": { - "offset": 23846, + "offset": 23579, "col": 9, "tokLen": 1 } @@ -16448,11 +16448,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16461,16 +16461,16 @@ } }, { - "id": "0x7f0da6e6b608", + "id": "0x3872b518", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 }, "end": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 } @@ -16482,16 +16482,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6a418", + "id": "0x3872a328", "kind": "StringLiteral", "range": { "begin": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 }, "end": { - "offset": 23851, + "offset": 23584, "col": 14, "tokLen": 12 } @@ -16507,33 +16507,33 @@ ] }, { - "id": "0x7f0da6e6b6f8", + "id": "0x3872b608", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23873, - "line": 776, + "offset": 23606, + "line": 768, "col": 9, "tokLen": 6 }, "end": { - "offset": 23886, + "offset": 23619, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6b6c8", + "id": "0x3872b5d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23880, + "offset": 23613, "col": 16, "tokLen": 4 }, "end": { - "offset": 23886, + "offset": 23619, "col": 22, "tokLen": 10 } @@ -16543,7 +16543,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1020", + "id": "0x37ff1bd0", "kind": "EnumConstantDecl", "name": "HALF_SPEED", "type": { @@ -16556,35 +16556,35 @@ ] }, { - "id": "0x7f0da6e6ca38", + "id": "0x3872c948", "kind": "IfStmt", "range": { "begin": { - "offset": 23902, - "line": 777, + "offset": 23635, + "line": 769, "col": 5, "tokLen": 2 }, "end": { - "offset": 23937, - "line": 778, + "offset": 23670, + "line": 770, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6c988", + "id": "0x3872c898", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23906, - "line": 777, + "offset": 23639, + "line": 769, "col": 9, "tokLen": 1 }, "end": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 } @@ -16596,16 +16596,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6c970", + "id": "0x3872c880", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23908, + "offset": 23641, "col": 11, "tokLen": 2 }, "end": { - "offset": 23908, + "offset": 23641, "col": 11, "tokLen": 2 } @@ -16617,16 +16617,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6c950", + "id": "0x3872c860", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23908, + "offset": 23641, "col": 11, "tokLen": 2 }, "end": { - "offset": 23908, + "offset": 23641, "col": 11, "tokLen": 2 } @@ -16636,7 +16636,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -16647,16 +16647,16 @@ ] }, { - "id": "0x7f0da6e6b728", + "id": "0x3872b638", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23906, + "offset": 23639, "col": 9, "tokLen": 1 }, "end": { - "offset": 23906, + "offset": 23639, "col": 9, "tokLen": 1 } @@ -16664,11 +16664,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16677,16 +16677,16 @@ } }, { - "id": "0x7f0da6e6c938", + "id": "0x3872c848", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 }, "end": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 } @@ -16698,16 +16698,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6b748", + "id": "0x3872b658", "kind": "StringLiteral", "range": { "begin": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 }, "end": { - "offset": 23911, + "offset": 23644, "col": 14, "tokLen": 3 } @@ -16723,33 +16723,33 @@ ] }, { - "id": "0x7f0da6e6ca28", + "id": "0x3872c938", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23924, - "line": 778, + "offset": 23657, + "line": 770, "col": 9, "tokLen": 6 }, "end": { - "offset": 23937, + "offset": 23670, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e6c9f8", + "id": "0x3872c908", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23931, + "offset": 23664, "col": 16, "tokLen": 4 }, "end": { - "offset": 23937, + "offset": 23670, "col": 22, "tokLen": 10 } @@ -16759,7 +16759,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1020", + "id": "0x37ff1bd0", "kind": "EnumConstantDecl", "name": "HALF_SPEED", "type": { @@ -16772,35 +16772,35 @@ ] }, { - "id": "0x7f0da6e6dd68", + "id": "0x3872dc78", "kind": "IfStmt", "range": { "begin": { - "offset": 23953, - "line": 779, + "offset": 23686, + "line": 771, "col": 5, "tokLen": 2 }, "end": { - "offset": 24000, - "line": 780, + "offset": 23733, + "line": 772, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e6dcb8", + "id": "0x3872dbc8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 23957, - "line": 779, + "offset": 23690, + "line": 771, "col": 9, "tokLen": 1 }, "end": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 } @@ -16812,16 +16812,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6dca0", + "id": "0x3872dbb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23959, + "offset": 23692, "col": 11, "tokLen": 2 }, "end": { - "offset": 23959, + "offset": 23692, "col": 11, "tokLen": 2 } @@ -16833,16 +16833,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6dc80", + "id": "0x3872db90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23959, + "offset": 23692, "col": 11, "tokLen": 2 }, "end": { - "offset": 23959, + "offset": 23692, "col": 11, "tokLen": 2 } @@ -16852,7 +16852,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -16863,16 +16863,16 @@ ] }, { - "id": "0x7f0da6e6ca58", + "id": "0x3872c968", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23957, + "offset": 23690, "col": 9, "tokLen": 1 }, "end": { - "offset": 23957, + "offset": 23690, "col": 9, "tokLen": 1 } @@ -16880,11 +16880,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -16893,16 +16893,16 @@ } }, { - "id": "0x7f0da6e6dc68", + "id": "0x3872db78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 }, "end": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 } @@ -16914,16 +16914,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6ca78", + "id": "0x3872c988", "kind": "StringLiteral", "range": { "begin": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 }, "end": { - "offset": 23962, + "offset": 23695, "col": 14, "tokLen": 15 } @@ -16939,33 +16939,33 @@ ] }, { - "id": "0x7f0da6e6dd58", + "id": "0x3872dc68", "kind": "ReturnStmt", "range": { "begin": { - "offset": 23987, - "line": 780, + "offset": 23720, + "line": 772, "col": 9, "tokLen": 6 }, "end": { - "offset": 24000, + "offset": 23733, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e6dd28", + "id": "0x3872dc38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 23994, + "offset": 23727, "col": 16, "tokLen": 4 }, "end": { - "offset": 24000, + "offset": 23733, "col": 22, "tokLen": 13 } @@ -16975,7 +16975,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1070", + "id": "0x37ff1c20", "kind": "EnumConstantDecl", "name": "QUARTER_SPEED", "type": { @@ -16988,35 +16988,35 @@ ] }, { - "id": "0x7f0da6e6f098", + "id": "0x3872efa8", "kind": "IfStmt", "range": { "begin": { - "offset": 24019, - "line": 781, + "offset": 23752, + "line": 773, "col": 5, "tokLen": 2 }, "end": { - "offset": 24054, - "line": 782, + "offset": 23787, + "line": 774, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e6efe8", + "id": "0x3872eef8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24023, - "line": 781, + "offset": 23756, + "line": 773, "col": 9, "tokLen": 1 }, "end": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 } @@ -17028,16 +17028,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e6efd0", + "id": "0x3872eee0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24025, + "offset": 23758, "col": 11, "tokLen": 2 }, "end": { - "offset": 24025, + "offset": 23758, "col": 11, "tokLen": 2 } @@ -17049,16 +17049,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e6efb0", + "id": "0x3872eec0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24025, + "offset": 23758, "col": 11, "tokLen": 2 }, "end": { - "offset": 24025, + "offset": 23758, "col": 11, "tokLen": 2 } @@ -17068,7 +17068,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -17079,16 +17079,16 @@ ] }, { - "id": "0x7f0da6e6dd88", + "id": "0x3872dc98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24023, + "offset": 23756, "col": 9, "tokLen": 1 }, "end": { - "offset": 24023, + "offset": 23756, "col": 9, "tokLen": 1 } @@ -17096,11 +17096,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -17109,16 +17109,16 @@ } }, { - "id": "0x7f0da6e6ef98", + "id": "0x3872eea8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 }, "end": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 } @@ -17130,16 +17130,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6dda8", + "id": "0x3872dcb8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 }, "end": { - "offset": 24028, + "offset": 23761, "col": 14, "tokLen": 3 } @@ -17155,33 +17155,33 @@ ] }, { - "id": "0x7f0da6e6f088", + "id": "0x3872ef98", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24041, - "line": 782, + "offset": 23774, + "line": 774, "col": 9, "tokLen": 6 }, "end": { - "offset": 24054, + "offset": 23787, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e6f058", + "id": "0x3872ef68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24048, + "offset": 23781, "col": 16, "tokLen": 4 }, "end": { - "offset": 24054, + "offset": 23787, "col": 22, "tokLen": 13 } @@ -17191,7 +17191,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1070", + "id": "0x37ff1c20", "kind": "EnumConstantDecl", "name": "QUARTER_SPEED", "type": { @@ -17204,35 +17204,35 @@ ] }, { - "id": "0x7f0da6e703c8", + "id": "0x387302d8", "kind": "IfStmt", "range": { "begin": { - "offset": 24073, - "line": 783, + "offset": 23806, + "line": 775, "col": 5, "tokLen": 2 }, "end": { - "offset": 24110, - "line": 784, + "offset": 23843, + "line": 776, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e70318", + "id": "0x38730228", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24077, - "line": 783, + "offset": 23810, + "line": 775, "col": 9, "tokLen": 1 }, "end": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 } @@ -17244,16 +17244,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e70300", + "id": "0x38730210", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24079, + "offset": 23812, "col": 11, "tokLen": 2 }, "end": { - "offset": 24079, + "offset": 23812, "col": 11, "tokLen": 2 } @@ -17265,16 +17265,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e702e0", + "id": "0x387301f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24079, + "offset": 23812, "col": 11, "tokLen": 2 }, "end": { - "offset": 24079, + "offset": 23812, "col": 11, "tokLen": 2 } @@ -17284,7 +17284,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -17295,16 +17295,16 @@ ] }, { - "id": "0x7f0da6e6f0b8", + "id": "0x3872efc8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24077, + "offset": 23810, "col": 9, "tokLen": 1 }, "end": { - "offset": 24077, + "offset": 23810, "col": 9, "tokLen": 1 } @@ -17312,11 +17312,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -17325,16 +17325,16 @@ } }, { - "id": "0x7f0da6e702c8", + "id": "0x387301d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 }, "end": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 } @@ -17346,16 +17346,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e6f0d8", + "id": "0x3872efe8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 }, "end": { - "offset": 24082, + "offset": 23815, "col": 14, "tokLen": 5 } @@ -17371,33 +17371,33 @@ ] }, { - "id": "0x7f0da6e703b8", + "id": "0x387302c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24097, - "line": 784, + "offset": 23830, + "line": 776, "col": 9, "tokLen": 6 }, "end": { - "offset": 24110, + "offset": 23843, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e70388", + "id": "0x38730298", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24104, + "offset": 23837, "col": 16, "tokLen": 4 }, "end": { - "offset": 24110, + "offset": 23843, "col": 22, "tokLen": 9 } @@ -17407,7 +17407,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc10c0", + "id": "0x37ff1c70", "kind": "EnumConstantDecl", "name": "G2_108MHZ", "type": { @@ -17420,35 +17420,35 @@ ] }, { - "id": "0x7f0da6e716f8", + "id": "0x38731608", "kind": "IfStmt", "range": { "begin": { - "offset": 24125, - "line": 785, + "offset": 23858, + "line": 777, "col": 5, "tokLen": 2 }, "end": { - "offset": 24162, - "line": 786, + "offset": 23895, + "line": 778, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e71648", + "id": "0x38731558", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24129, - "line": 785, + "offset": 23862, + "line": 777, "col": 9, "tokLen": 1 }, "end": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 } @@ -17460,16 +17460,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e71630", + "id": "0x38731540", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24131, + "offset": 23864, "col": 11, "tokLen": 2 }, "end": { - "offset": 24131, + "offset": 23864, "col": 11, "tokLen": 2 } @@ -17481,16 +17481,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e71610", + "id": "0x38731520", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24131, + "offset": 23864, "col": 11, "tokLen": 2 }, "end": { - "offset": 24131, + "offset": 23864, "col": 11, "tokLen": 2 } @@ -17500,7 +17500,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -17511,16 +17511,16 @@ ] }, { - "id": "0x7f0da6e703e8", + "id": "0x387302f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24129, + "offset": 23862, "col": 9, "tokLen": 1 }, "end": { - "offset": 24129, + "offset": 23862, "col": 9, "tokLen": 1 } @@ -17528,11 +17528,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -17541,16 +17541,16 @@ } }, { - "id": "0x7f0da6e715f8", + "id": "0x38731508", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 }, "end": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 } @@ -17562,16 +17562,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e70408", + "id": "0x38730318", "kind": "StringLiteral", "range": { "begin": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 }, "end": { - "offset": 24134, + "offset": 23867, "col": 14, "tokLen": 5 } @@ -17587,33 +17587,33 @@ ] }, { - "id": "0x7f0da6e716e8", + "id": "0x387315f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24149, - "line": 786, + "offset": 23882, + "line": 778, "col": 9, "tokLen": 6 }, "end": { - "offset": 24162, + "offset": 23895, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6e716b8", + "id": "0x387315c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24156, + "offset": 23889, "col": 16, "tokLen": 4 }, "end": { - "offset": 24162, + "offset": 23895, "col": 22, "tokLen": 9 } @@ -17623,7 +17623,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1110", + "id": "0x37ff1cc0", "kind": "EnumConstantDecl", "name": "G2_144MHZ", "type": { @@ -17636,17 +17636,17 @@ ] }, { - "id": "0x7f0da6e71d80", + "id": "0x38731c90", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 24177, - "line": 787, + "offset": 23910, + "line": 779, "col": 5, "tokLen": 5 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17658,16 +17658,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e71d68", + "id": "0x38731c78", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 24177, + "offset": 23910, "col": 5, "tokLen": 5 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17678,16 +17678,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e71d38", + "id": "0x38731c48", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17705,16 +17705,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e71d20", + "id": "0x38731c30", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17727,16 +17727,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e71cf8", + "id": "0x38731c08", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17748,7 +17748,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -17757,16 +17757,16 @@ }, "inner": [ { - "id": "0x7f0da6e71cd8", + "id": "0x38731be8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17776,9 +17776,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e71cd0", + "temp": "0x38731be0", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -17787,16 +17787,16 @@ }, "inner": [ { - "id": "0x7f0da6e71ca0", + "id": "0x38731bb0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24183, + "offset": 23916, "col": 11, "tokLen": 12 }, "end": { - "offset": 24216, + "offset": 23949, "col": 44, "tokLen": 1 } @@ -17813,16 +17813,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e71c88", + "id": "0x38731b98", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -17836,16 +17836,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e71c70", + "id": "0x38731b80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -17858,16 +17858,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e71c50", + "id": "0x38731b60", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -17877,9 +17877,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e71c48", + "temp": "0x38731b58", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -17888,16 +17888,16 @@ }, "inner": [ { - "id": "0x7f0da6e71c10", + "id": "0x38731b20", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -17910,16 +17910,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e71bf8", + "id": "0x38731b08", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24213, + "offset": 23946, "col": 41, "tokLen": 1 }, "end": { - "offset": 24213, + "offset": 23946, "col": 41, "tokLen": 1 } @@ -17931,16 +17931,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e71bd8", + "id": "0x38731ae8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24213, + "offset": 23946, "col": 41, "tokLen": 1 }, "end": { - "offset": 24213, + "offset": 23946, "col": 41, "tokLen": 1 } @@ -17950,7 +17950,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -17961,16 +17961,16 @@ ] }, { - "id": "0x7f0da6e71bc0", + "id": "0x38731ad0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 } @@ -17982,16 +17982,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e71728", + "id": "0x38731638", "kind": "StringLiteral", "range": { "begin": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 }, "end": { - "offset": 24196, + "offset": 23929, "col": 24, "tokLen": 16 } @@ -18005,16 +18005,16 @@ ] }, { - "id": "0x7f0da6e71750", + "id": "0x38731660", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 }, "end": { - "offset": 24215, + "offset": 23948, "col": 43, "tokLen": 1 } @@ -18022,11 +18022,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e67ad8", + "id": "0x387279e8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18061,29 +18061,29 @@ ] }, { - "id": "0x7f0da6e71f68", + "id": "0x38731e78", "kind": "FunctionDecl", "loc": { - "offset": 24251, + "offset": 23984, "file": "ToString.cpp", - "line": 790, + "line": 782, "col": 30, "tokLen": 8 }, "range": { "begin": { - "offset": 24222, + "offset": 23955, "col": 1, "tokLen": 8 }, "end": { - "offset": 24638, - "line": 802, + "offset": 24371, + "line": 794, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3769d8", + "previousDecl": "0x385a6fc8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10timingModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -18097,13 +18097,13 @@ }, "inner": [ { - "id": "0x2cdbd770", + "id": "0x37fee460", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingMode" }, "decl": { - "id": "0x2cdbd6c8", + "id": "0x37fee3b8", "kind": "EnumDecl", "name": "timingMode" } @@ -18111,22 +18111,22 @@ ] }, { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "loc": { - "offset": 24279, - "line": 790, + "offset": 24012, + "line": 782, "col": 58, "tokLen": 1 }, "range": { "begin": { - "offset": 24260, + "offset": 23993, "col": 39, "tokLen": 5 }, "end": { - "offset": 24279, + "offset": 24012, "col": 58, "tokLen": 1 } @@ -18138,52 +18138,52 @@ } }, { - "id": "0x7f0da6e377d0", + "id": "0x7feb10e7c860", "kind": "CompoundStmt", "range": { "begin": { - "offset": 24282, + "offset": 24015, "col": 61, "tokLen": 1 }, "end": { - "offset": 24638, - "line": 802, + "offset": 24371, + "line": 794, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e73458", + "id": "0x38733368", "kind": "IfStmt", "range": { "begin": { - "offset": 24288, - "line": 791, + "offset": 24021, + "line": 783, "col": 5, "tokLen": 2 }, "end": { - "offset": 24326, - "line": 792, + "offset": 24059, + "line": 784, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e733a8", + "id": "0x387332b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24292, - "line": 791, + "offset": 24025, + "line": 783, "col": 9, "tokLen": 1 }, "end": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 } @@ -18195,16 +18195,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e73390", + "id": "0x387332a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24294, + "offset": 24027, "col": 11, "tokLen": 2 }, "end": { - "offset": 24294, + "offset": 24027, "col": 11, "tokLen": 2 } @@ -18216,16 +18216,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e73370", + "id": "0x38733280", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24294, + "offset": 24027, "col": 11, "tokLen": 2 }, "end": { - "offset": 24294, + "offset": 24027, "col": 11, "tokLen": 2 } @@ -18235,7 +18235,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -18246,16 +18246,16 @@ ] }, { - "id": "0x7f0da6e72150", + "id": "0x38732060", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24292, + "offset": 24025, "col": 9, "tokLen": 1 }, "end": { - "offset": 24292, + "offset": 24025, "col": 9, "tokLen": 1 } @@ -18263,11 +18263,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18276,16 +18276,16 @@ } }, { - "id": "0x7f0da6e73358", + "id": "0x38733268", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 }, "end": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 } @@ -18297,16 +18297,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e72170", + "id": "0x38732080", "kind": "StringLiteral", "range": { "begin": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 }, "end": { - "offset": 24297, + "offset": 24030, "col": 14, "tokLen": 6 } @@ -18322,33 +18322,33 @@ ] }, { - "id": "0x7f0da6e73448", + "id": "0x38733358", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24313, - "line": 792, + "offset": 24046, + "line": 784, "col": 9, "tokLen": 6 }, "end": { - "offset": 24326, + "offset": 24059, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e73418", + "id": "0x38733328", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24320, + "offset": 24053, "col": 16, "tokLen": 4 }, "end": { - "offset": 24326, + "offset": 24059, "col": 22, "tokLen": 11 } @@ -18358,7 +18358,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd790", + "id": "0x37fee480", "kind": "EnumConstantDecl", "name": "AUTO_TIMING", "type": { @@ -18371,35 +18371,35 @@ ] }, { - "id": "0x7f0da6e74788", + "id": "0x38734698", "kind": "IfStmt", "range": { "begin": { - "offset": 24343, - "line": 793, + "offset": 24076, + "line": 785, "col": 5, "tokLen": 2 }, "end": { - "offset": 24384, - "line": 794, + "offset": 24117, + "line": 786, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6e746d8", + "id": "0x387345e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24347, - "line": 793, + "offset": 24080, + "line": 785, "col": 9, "tokLen": 1 }, "end": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 } @@ -18411,16 +18411,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e746c0", + "id": "0x387345d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24349, + "offset": 24082, "col": 11, "tokLen": 2 }, "end": { - "offset": 24349, + "offset": 24082, "col": 11, "tokLen": 2 } @@ -18432,16 +18432,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e746a0", + "id": "0x387345b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24349, + "offset": 24082, "col": 11, "tokLen": 2 }, "end": { - "offset": 24349, + "offset": 24082, "col": 11, "tokLen": 2 } @@ -18451,7 +18451,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -18462,16 +18462,16 @@ ] }, { - "id": "0x7f0da6e73478", + "id": "0x38733388", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24347, + "offset": 24080, "col": 9, "tokLen": 1 }, "end": { - "offset": 24347, + "offset": 24080, "col": 9, "tokLen": 1 } @@ -18479,11 +18479,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18492,16 +18492,16 @@ } }, { - "id": "0x7f0da6e74688", + "id": "0x38734598", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 }, "end": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 } @@ -18513,16 +18513,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e73498", + "id": "0x387333a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 }, "end": { - "offset": 24352, + "offset": 24085, "col": 14, "tokLen": 9 } @@ -18538,33 +18538,33 @@ ] }, { - "id": "0x7f0da6e74778", + "id": "0x38734688", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24371, - "line": 794, + "offset": 24104, + "line": 786, "col": 9, "tokLen": 6 }, "end": { - "offset": 24384, + "offset": 24117, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6e74748", + "id": "0x38734658", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24378, + "offset": 24111, "col": 16, "tokLen": 4 }, "end": { - "offset": 24384, + "offset": 24117, "col": 22, "tokLen": 16 } @@ -18574,7 +18574,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd7e0", + "id": "0x37fee4d0", "kind": "EnumConstantDecl", "name": "TRIGGER_EXPOSURE", "type": { @@ -18587,35 +18587,35 @@ ] }, { - "id": "0x7f0da6e75ab8", + "id": "0x387359c8", "kind": "IfStmt", "range": { "begin": { - "offset": 24406, - "line": 795, + "offset": 24139, + "line": 787, "col": 5, "tokLen": 2 }, "end": { - "offset": 24446, - "line": 796, + "offset": 24179, + "line": 788, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e75a08", + "id": "0x38735918", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24410, - "line": 795, + "offset": 24143, + "line": 787, "col": 9, "tokLen": 1 }, "end": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 } @@ -18627,16 +18627,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e759f0", + "id": "0x38735900", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24412, + "offset": 24145, "col": 11, "tokLen": 2 }, "end": { - "offset": 24412, + "offset": 24145, "col": 11, "tokLen": 2 } @@ -18648,16 +18648,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e759d0", + "id": "0x387358e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24412, + "offset": 24145, "col": 11, "tokLen": 2 }, "end": { - "offset": 24412, + "offset": 24145, "col": 11, "tokLen": 2 } @@ -18667,7 +18667,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -18678,16 +18678,16 @@ ] }, { - "id": "0x7f0da6e747a8", + "id": "0x387346b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24410, + "offset": 24143, "col": 9, "tokLen": 1 }, "end": { - "offset": 24410, + "offset": 24143, "col": 9, "tokLen": 1 } @@ -18695,11 +18695,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18708,16 +18708,16 @@ } }, { - "id": "0x7f0da6e759b8", + "id": "0x387358c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 }, "end": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 } @@ -18729,16 +18729,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e747c8", + "id": "0x387346d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 }, "end": { - "offset": 24415, + "offset": 24148, "col": 14, "tokLen": 8 } @@ -18754,33 +18754,33 @@ ] }, { - "id": "0x7f0da6e75aa8", + "id": "0x387359b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24433, - "line": 796, + "offset": 24166, + "line": 788, "col": 9, "tokLen": 6 }, "end": { - "offset": 24446, + "offset": 24179, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e75a78", + "id": "0x38735988", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24440, + "offset": 24173, "col": 16, "tokLen": 4 }, "end": { - "offset": 24446, + "offset": 24179, "col": 22, "tokLen": 5 } @@ -18790,7 +18790,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd830", + "id": "0x37fee520", "kind": "EnumConstantDecl", "name": "GATED", "type": { @@ -18803,35 +18803,35 @@ ] }, { - "id": "0x7f0da6e35df8", + "id": "0x38736cf8", "kind": "IfStmt", "range": { "begin": { - "offset": 24457, - "line": 797, + "offset": 24190, + "line": 789, "col": 5, "tokLen": 2 }, "end": { - "offset": 24504, - "line": 798, + "offset": 24237, + "line": 790, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e35d48", + "id": "0x38736c48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24461, - "line": 797, + "offset": 24194, + "line": 789, "col": 9, "tokLen": 1 }, "end": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 } @@ -18843,16 +18843,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e35d30", + "id": "0x38736c30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24463, + "offset": 24196, "col": 11, "tokLen": 2 }, "end": { - "offset": 24463, + "offset": 24196, "col": 11, "tokLen": 2 } @@ -18864,16 +18864,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e35d10", + "id": "0x38736c10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24463, + "offset": 24196, "col": 11, "tokLen": 2 }, "end": { - "offset": 24463, + "offset": 24196, "col": 11, "tokLen": 2 } @@ -18883,7 +18883,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -18894,16 +18894,16 @@ ] }, { - "id": "0x7f0da6e75ad8", + "id": "0x387359e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24461, + "offset": 24194, "col": 9, "tokLen": 1 }, "end": { - "offset": 24461, + "offset": 24194, "col": 9, "tokLen": 1 } @@ -18911,11 +18911,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -18924,16 +18924,16 @@ } }, { - "id": "0x7f0da6e35cf8", + "id": "0x38736bf8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 }, "end": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 } @@ -18945,16 +18945,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e75af8", + "id": "0x38735a08", "kind": "StringLiteral", "range": { "begin": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 }, "end": { - "offset": 24466, + "offset": 24199, "col": 14, "tokLen": 15 } @@ -18970,33 +18970,33 @@ ] }, { - "id": "0x7f0da6e35de8", + "id": "0x38736ce8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24491, - "line": 798, + "offset": 24224, + "line": 790, "col": 9, "tokLen": 6 }, "end": { - "offset": 24504, + "offset": 24237, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e35db8", + "id": "0x38736cb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24498, + "offset": 24231, "col": 16, "tokLen": 4 }, "end": { - "offset": 24504, + "offset": 24237, "col": 22, "tokLen": 13 } @@ -19006,7 +19006,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd880", + "id": "0x37fee570", "kind": "EnumConstantDecl", "name": "BURST_TRIGGER", "type": { @@ -19019,35 +19019,35 @@ ] }, { - "id": "0x7f0da6e37128", + "id": "0x7feb10e7c1b8", "kind": "IfStmt", "range": { "begin": { - "offset": 24523, - "line": 799, + "offset": 24256, + "line": 791, "col": 5, "tokLen": 2 }, "end": { - "offset": 24571, - "line": 800, + "offset": 24304, + "line": 792, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e37078", + "id": "0x7feb10e7c108", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24527, - "line": 799, + "offset": 24260, + "line": 791, "col": 9, "tokLen": 1 }, "end": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 } @@ -19059,16 +19059,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e37060", + "id": "0x7feb10e7c0f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24529, + "offset": 24262, "col": 11, "tokLen": 2 }, "end": { - "offset": 24529, + "offset": 24262, "col": 11, "tokLen": 2 } @@ -19080,16 +19080,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e37040", + "id": "0x7feb10e7c0d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24529, + "offset": 24262, "col": 11, "tokLen": 2 }, "end": { - "offset": 24529, + "offset": 24262, "col": 11, "tokLen": 2 } @@ -19099,7 +19099,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -19110,16 +19110,16 @@ ] }, { - "id": "0x7f0da6e35e18", + "id": "0x38736d18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24527, + "offset": 24260, "col": 9, "tokLen": 1 }, "end": { - "offset": 24527, + "offset": 24260, "col": 9, "tokLen": 1 } @@ -19127,11 +19127,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -19140,16 +19140,16 @@ } }, { - "id": "0x7f0da6e37028", + "id": "0x7feb10e7c0b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 }, "end": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 } @@ -19161,16 +19161,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e35e38", + "id": "0x38736d38", "kind": "StringLiteral", "range": { "begin": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 }, "end": { - "offset": 24532, + "offset": 24265, "col": 14, "tokLen": 16 } @@ -19186,33 +19186,33 @@ ] }, { - "id": "0x7f0da6e37118", + "id": "0x7feb10e7c1a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24558, - "line": 800, + "offset": 24291, + "line": 792, "col": 9, "tokLen": 6 }, "end": { - "offset": 24571, + "offset": 24304, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e370e8", + "id": "0x7feb10e7c178", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24565, + "offset": 24298, "col": 16, "tokLen": 4 }, "end": { - "offset": 24571, + "offset": 24304, "col": 22, "tokLen": 13 } @@ -19222,7 +19222,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd8d0", + "id": "0x37fee5c0", "kind": "EnumConstantDecl", "name": "TRIGGER_GATED", "type": { @@ -19235,17 +19235,17 @@ ] }, { - "id": "0x7f0da6e377b8", + "id": "0x7feb10e7c848", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 24590, - "line": 801, + "offset": 24323, + "line": 793, "col": 5, "tokLen": 5 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19257,16 +19257,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e377a0", + "id": "0x7feb10e7c830", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 24590, + "offset": 24323, "col": 5, "tokLen": 5 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19277,16 +19277,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e37770", + "id": "0x7feb10e7c800", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19304,16 +19304,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e37758", + "id": "0x7feb10e7c7e8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19326,16 +19326,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e37730", + "id": "0x7feb10e7c7c0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19347,7 +19347,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -19356,16 +19356,16 @@ }, "inner": [ { - "id": "0x7f0da6e37710", + "id": "0x7feb10e7c7a0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19375,9 +19375,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e37708", + "temp": "0x7feb10e7c798", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -19386,16 +19386,16 @@ }, "inner": [ { - "id": "0x7f0da6e376d8", + "id": "0x7feb10e7c768", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24596, + "offset": 24329, "col": 11, "tokLen": 12 }, "end": { - "offset": 24635, + "offset": 24368, "col": 50, "tokLen": 1 } @@ -19412,16 +19412,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e376c0", + "id": "0x7feb10e7c750", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19435,16 +19435,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e376a8", + "id": "0x7feb10e7c738", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19457,16 +19457,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e37688", + "id": "0x7feb10e7c718", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19476,9 +19476,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e37680", + "temp": "0x7feb10e7c710", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -19487,16 +19487,16 @@ }, "inner": [ { - "id": "0x7f0da6e37648", + "id": "0x7feb10e7c6d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19509,16 +19509,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e37630", + "id": "0x7feb10e7c6c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24632, + "offset": 24365, "col": 47, "tokLen": 1 }, "end": { - "offset": 24632, + "offset": 24365, "col": 47, "tokLen": 1 } @@ -19530,16 +19530,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e37610", + "id": "0x7feb10e7c6a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24632, + "offset": 24365, "col": 47, "tokLen": 1 }, "end": { - "offset": 24632, + "offset": 24365, "col": 47, "tokLen": 1 } @@ -19549,7 +19549,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -19560,16 +19560,16 @@ ] }, { - "id": "0x7f0da6e375f8", + "id": "0x7feb10e7c688", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 } @@ -19581,16 +19581,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e37158", + "id": "0x7feb10e7c1e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 }, "end": { - "offset": 24609, + "offset": 24342, "col": 24, "tokLen": 22 } @@ -19604,16 +19604,16 @@ ] }, { - "id": "0x7f0da6e37188", + "id": "0x7feb10e7c218", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 }, "end": { - "offset": 24634, + "offset": 24367, "col": 49, "tokLen": 1 } @@ -19621,11 +19621,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e71e98", + "id": "0x38731da8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -19660,29 +19660,29 @@ ] }, { - "id": "0x7f0da6e37988", + "id": "0x7feb10e7ca18", "kind": "FunctionDecl", "loc": { - "offset": 24678, + "offset": 24411, "file": "ToString.cpp", - "line": 804, + "line": 796, "col": 38, "tokLen": 8 }, "range": { "begin": { - "offset": 24641, + "offset": 24374, "col": 1, "tokLen": 8 }, "end": { - "offset": 24979, - "line": 812, + "offset": 24712, + "line": 804, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d376f28", + "previousDecl": "0x385a7518", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18frameDiscardPolicyEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -19696,13 +19696,13 @@ }, "inner": [ { - "id": "0x2cdb87d0", + "id": "0x37fe94c0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::frameDiscardPolicy" }, "decl": { - "id": "0x2cdb8730", + "id": "0x37fe9420", "kind": "EnumDecl", "name": "frameDiscardPolicy" } @@ -19710,22 +19710,22 @@ ] }, { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "loc": { - "offset": 24706, - "line": 804, + "offset": 24439, + "line": 796, "col": 66, "tokLen": 1 }, "range": { "begin": { - "offset": 24687, + "offset": 24420, "col": 47, "tokLen": 5 }, "end": { - "offset": 24706, + "offset": 24439, "col": 66, "tokLen": 1 } @@ -19737,52 +19737,52 @@ } }, { - "id": "0x7f0da6e3bbc8", + "id": "0x7feb10e80c58", "kind": "CompoundStmt", "range": { "begin": { - "offset": 24709, + "offset": 24442, "col": 69, "tokLen": 1 }, "end": { - "offset": 24979, - "line": 812, + "offset": 24712, + "line": 804, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e38e88", + "id": "0x7feb10e7df18", "kind": "IfStmt", "range": { "begin": { - "offset": 24715, - "line": 805, + "offset": 24448, + "line": 797, "col": 5, "tokLen": 2 }, "end": { - "offset": 24758, - "line": 806, + "offset": 24491, + "line": 798, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e38dd8", + "id": "0x7feb10e7de68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24719, - "line": 805, + "offset": 24452, + "line": 797, "col": 9, "tokLen": 1 }, "end": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 } @@ -19794,16 +19794,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e38dc0", + "id": "0x7feb10e7de50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24721, + "offset": 24454, "col": 11, "tokLen": 2 }, "end": { - "offset": 24721, + "offset": 24454, "col": 11, "tokLen": 2 } @@ -19815,16 +19815,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e38da0", + "id": "0x7feb10e7de30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24721, + "offset": 24454, "col": 11, "tokLen": 2 }, "end": { - "offset": 24721, + "offset": 24454, "col": 11, "tokLen": 2 } @@ -19834,7 +19834,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -19845,16 +19845,16 @@ ] }, { - "id": "0x7f0da6e37b70", + "id": "0x7feb10e7cc00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24719, + "offset": 24452, "col": 9, "tokLen": 1 }, "end": { - "offset": 24719, + "offset": 24452, "col": 9, "tokLen": 1 } @@ -19862,11 +19862,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "name": "s", "type": { @@ -19875,16 +19875,16 @@ } }, { - "id": "0x7f0da6e38d88", + "id": "0x7feb10e7de18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 }, "end": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 } @@ -19896,16 +19896,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e37b90", + "id": "0x7feb10e7cc20", "kind": "StringLiteral", "range": { "begin": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 }, "end": { - "offset": 24724, + "offset": 24457, "col": 14, "tokLen": 11 } @@ -19921,33 +19921,33 @@ ] }, { - "id": "0x7f0da6e38e78", + "id": "0x7feb10e7df08", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24745, - "line": 806, + "offset": 24478, + "line": 798, "col": 9, "tokLen": 6 }, "end": { - "offset": 24758, + "offset": 24491, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6e38e48", + "id": "0x7feb10e7ded8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24752, + "offset": 24485, "col": 16, "tokLen": 4 }, "end": { - "offset": 24758, + "offset": 24491, "col": 22, "tokLen": 10 } @@ -19957,7 +19957,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdb87f0", + "id": "0x37fe94e0", "kind": "EnumConstantDecl", "name": "NO_DISCARD", "type": { @@ -19970,35 +19970,35 @@ ] }, { - "id": "0x7f0da6e3a1b8", + "id": "0x7feb10e7f248", "kind": "IfStmt", "range": { "begin": { - "offset": 24774, - "line": 807, + "offset": 24507, + "line": 799, "col": 5, "tokLen": 2 }, "end": { - "offset": 24820, - "line": 808, + "offset": 24553, + "line": 800, "col": 22, "tokLen": 20 } }, "inner": [ { - "id": "0x7f0da6e3a108", + "id": "0x7feb10e7f198", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24778, - "line": 807, + "offset": 24511, + "line": 799, "col": 9, "tokLen": 1 }, "end": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 } @@ -20010,16 +20010,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3a0f0", + "id": "0x7feb10e7f180", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24780, + "offset": 24513, "col": 11, "tokLen": 2 }, "end": { - "offset": 24780, + "offset": 24513, "col": 11, "tokLen": 2 } @@ -20031,16 +20031,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3a0d0", + "id": "0x7feb10e7f160", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24780, + "offset": 24513, "col": 11, "tokLen": 2 }, "end": { - "offset": 24780, + "offset": 24513, "col": 11, "tokLen": 2 } @@ -20050,7 +20050,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -20061,16 +20061,16 @@ ] }, { - "id": "0x7f0da6e38ea8", + "id": "0x7feb10e7df38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24778, + "offset": 24511, "col": 9, "tokLen": 1 }, "end": { - "offset": 24778, + "offset": 24511, "col": 9, "tokLen": 1 } @@ -20078,11 +20078,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "name": "s", "type": { @@ -20091,16 +20091,16 @@ } }, { - "id": "0x7f0da6e3a0b8", + "id": "0x7feb10e7f148", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 }, "end": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 } @@ -20112,16 +20112,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e38ec8", + "id": "0x7feb10e7df58", "kind": "StringLiteral", "range": { "begin": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 }, "end": { - "offset": 24783, + "offset": 24516, "col": 14, "tokLen": 14 } @@ -20137,33 +20137,33 @@ ] }, { - "id": "0x7f0da6e3a1a8", + "id": "0x7feb10e7f238", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24807, - "line": 808, + "offset": 24540, + "line": 800, "col": 9, "tokLen": 6 }, "end": { - "offset": 24820, + "offset": 24553, "col": 22, "tokLen": 20 } }, "inner": [ { - "id": "0x7f0da6e3a178", + "id": "0x7feb10e7f208", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24814, + "offset": 24547, "col": 16, "tokLen": 4 }, "end": { - "offset": 24820, + "offset": 24553, "col": 22, "tokLen": 20 } @@ -20173,7 +20173,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdb8840", + "id": "0x37fe9530", "kind": "EnumConstantDecl", "name": "DISCARD_EMPTY_FRAMES", "type": { @@ -20186,35 +20186,35 @@ ] }, { - "id": "0x7f0da6e3b4e8", + "id": "0x7feb10e80578", "kind": "IfStmt", "range": { "begin": { - "offset": 24846, - "line": 809, + "offset": 24579, + "line": 801, "col": 5, "tokLen": 2 }, "end": { - "offset": 24894, - "line": 810, + "offset": 24627, + "line": 802, "col": 22, "tokLen": 22 } }, "inner": [ { - "id": "0x7f0da6e3b438", + "id": "0x7feb10e804c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24850, - "line": 809, + "offset": 24583, + "line": 801, "col": 9, "tokLen": 1 }, "end": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 } @@ -20226,16 +20226,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3b420", + "id": "0x7feb10e804b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24852, + "offset": 24585, "col": 11, "tokLen": 2 }, "end": { - "offset": 24852, + "offset": 24585, "col": 11, "tokLen": 2 } @@ -20247,16 +20247,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3b400", + "id": "0x7feb10e80490", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24852, + "offset": 24585, "col": 11, "tokLen": 2 }, "end": { - "offset": 24852, + "offset": 24585, "col": 11, "tokLen": 2 } @@ -20266,7 +20266,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -20277,16 +20277,16 @@ ] }, { - "id": "0x7f0da6e3a1d8", + "id": "0x7feb10e7f268", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24850, + "offset": 24583, "col": 9, "tokLen": 1 }, "end": { - "offset": 24850, + "offset": 24583, "col": 9, "tokLen": 1 } @@ -20294,11 +20294,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "name": "s", "type": { @@ -20307,16 +20307,16 @@ } }, { - "id": "0x7f0da6e3b3e8", + "id": "0x7feb10e80478", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 }, "end": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 } @@ -20328,16 +20328,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3a1f8", + "id": "0x7feb10e7f288", "kind": "StringLiteral", "range": { "begin": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 }, "end": { - "offset": 24855, + "offset": 24588, "col": 14, "tokLen": 16 } @@ -20353,33 +20353,33 @@ ] }, { - "id": "0x7f0da6e3b4d8", + "id": "0x7feb10e80568", "kind": "ReturnStmt", "range": { "begin": { - "offset": 24881, - "line": 810, + "offset": 24614, + "line": 802, "col": 9, "tokLen": 6 }, "end": { - "offset": 24894, + "offset": 24627, "col": 22, "tokLen": 22 } }, "inner": [ { - "id": "0x7f0da6e3b4a8", + "id": "0x7feb10e80538", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24888, + "offset": 24621, "col": 16, "tokLen": 4 }, "end": { - "offset": 24894, + "offset": 24627, "col": 22, "tokLen": 22 } @@ -20389,7 +20389,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdb8890", + "id": "0x37fe9580", "kind": "EnumConstantDecl", "name": "DISCARD_PARTIAL_FRAMES", "type": { @@ -20402,17 +20402,17 @@ ] }, { - "id": "0x7f0da6e3bbb0", + "id": "0x7feb10e80c40", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 24922, - "line": 811, + "offset": 24655, + "line": 803, "col": 5, "tokLen": 5 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20424,16 +20424,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e3bb98", + "id": "0x7feb10e80c28", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 24922, + "offset": 24655, "col": 5, "tokLen": 5 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20444,16 +20444,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e3bb68", + "id": "0x7feb10e80bf8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20471,16 +20471,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e3bb50", + "id": "0x7feb10e80be0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20493,16 +20493,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e3bb28", + "id": "0x7feb10e80bb8", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20514,7 +20514,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -20523,16 +20523,16 @@ }, "inner": [ { - "id": "0x7f0da6e3bb08", + "id": "0x7feb10e80b98", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20542,9 +20542,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e3bb00", + "temp": "0x7feb10e80b90", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -20553,16 +20553,16 @@ }, "inner": [ { - "id": "0x7f0da6e3bad0", + "id": "0x7feb10e80b60", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 24928, + "offset": 24661, "col": 11, "tokLen": 12 }, "end": { - "offset": 24976, + "offset": 24709, "col": 59, "tokLen": 1 } @@ -20579,16 +20579,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e3bab8", + "id": "0x7feb10e80b48", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20602,16 +20602,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e3baa0", + "id": "0x7feb10e80b30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20624,16 +20624,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e3ba80", + "id": "0x7feb10e80b10", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20643,9 +20643,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e3ba78", + "temp": "0x7feb10e80b08", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -20654,16 +20654,16 @@ }, "inner": [ { - "id": "0x7f0da6e3ba40", + "id": "0x7feb10e80ad0", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20676,16 +20676,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3ba28", + "id": "0x7feb10e80ab8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24973, + "offset": 24706, "col": 56, "tokLen": 1 }, "end": { - "offset": 24973, + "offset": 24706, "col": 56, "tokLen": 1 } @@ -20697,16 +20697,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3ba08", + "id": "0x7feb10e80a98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24973, + "offset": 24706, "col": 56, "tokLen": 1 }, "end": { - "offset": 24973, + "offset": 24706, "col": 56, "tokLen": 1 } @@ -20716,7 +20716,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -20727,16 +20727,16 @@ ] }, { - "id": "0x7f0da6e3b9f0", + "id": "0x7feb10e80a80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 } @@ -20748,16 +20748,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3b518", + "id": "0x7feb10e805a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 }, "end": { - "offset": 24941, + "offset": 24674, "col": 24, "tokLen": 31 } @@ -20771,16 +20771,16 @@ ] }, { - "id": "0x7f0da6e3b550", + "id": "0x7feb10e805e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 }, "end": { - "offset": 24975, + "offset": 24708, "col": 58, "tokLen": 1 } @@ -20788,11 +20788,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e378b8", + "id": "0x7feb10e7c948", "kind": "ParmVarDecl", "name": "s", "type": { @@ -20827,29 +20827,29 @@ ] }, { - "id": "0x7f0da6e3bd78", + "id": "0x7feb10e80e08", "kind": "FunctionDecl", "loc": { - "offset": 25011, + "offset": 24744, "file": "ToString.cpp", - "line": 814, + "line": 806, "col": 30, "tokLen": 8 }, "range": { "begin": { - "offset": 24982, + "offset": 24715, "col": 1, "tokLen": 8 }, "end": { - "offset": 25196, - "line": 820, + "offset": 24929, + "line": 812, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d377478", + "previousDecl": "0x385a7a68", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs10fileFormatEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -20863,13 +20863,13 @@ }, "inner": [ { - "id": "0x2cdbbda0", + "id": "0x37feca90", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::fileFormat" }, "decl": { - "id": "0x2cdbbd00", + "id": "0x37fec9f0", "kind": "EnumDecl", "name": "fileFormat" } @@ -20877,22 +20877,22 @@ ] }, { - "id": "0x7f0da6e3bca0", + "id": "0x7feb10e80d30", "kind": "ParmVarDecl", "loc": { - "offset": 25039, - "line": 814, + "offset": 24772, + "line": 806, "col": 58, "tokLen": 1 }, "range": { "begin": { - "offset": 25020, + "offset": 24753, "col": 39, "tokLen": 5 }, "end": { - "offset": 25039, + "offset": 24772, "col": 58, "tokLen": 1 } @@ -20904,52 +20904,52 @@ } }, { - "id": "0x7f0da6e3ec40", + "id": "0x7feb10e83cd0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 25042, + "offset": 24775, "col": 61, "tokLen": 1 }, "end": { - "offset": 25196, - "line": 820, + "offset": 24929, + "line": 812, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e3d268", + "id": "0x7feb10e822f8", "kind": "IfStmt", "range": { "begin": { - "offset": 25048, - "line": 815, + "offset": 24781, + "line": 807, "col": 5, "tokLen": 2 }, "end": { - "offset": 25086, - "line": 816, + "offset": 24819, + "line": 808, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6e3d1b8", + "id": "0x7feb10e82248", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25052, - "line": 815, + "offset": 24785, + "line": 807, "col": 9, "tokLen": 1 }, "end": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 } @@ -20961,16 +20961,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3d1a0", + "id": "0x7feb10e82230", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25054, + "offset": 24787, "col": 11, "tokLen": 2 }, "end": { - "offset": 25054, + "offset": 24787, "col": 11, "tokLen": 2 } @@ -20982,16 +20982,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3d180", + "id": "0x7feb10e82210", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25054, + "offset": 24787, "col": 11, "tokLen": 2 }, "end": { - "offset": 25054, + "offset": 24787, "col": 11, "tokLen": 2 } @@ -21001,7 +21001,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -21012,16 +21012,16 @@ ] }, { - "id": "0x7f0da6e3bf60", + "id": "0x7feb10e80ff0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25052, + "offset": 24785, "col": 9, "tokLen": 1 }, "end": { - "offset": 25052, + "offset": 24785, "col": 9, "tokLen": 1 } @@ -21029,11 +21029,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3bca0", + "id": "0x7feb10e80d30", "kind": "ParmVarDecl", "name": "s", "type": { @@ -21042,16 +21042,16 @@ } }, { - "id": "0x7f0da6e3d168", + "id": "0x7feb10e821f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 }, "end": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 } @@ -21063,16 +21063,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3bf80", + "id": "0x7feb10e81010", "kind": "StringLiteral", "range": { "begin": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 }, "end": { - "offset": 25057, + "offset": 24790, "col": 14, "tokLen": 6 } @@ -21088,33 +21088,33 @@ ] }, { - "id": "0x7f0da6e3d258", + "id": "0x7feb10e822e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25073, - "line": 816, + "offset": 24806, + "line": 808, "col": 9, "tokLen": 6 }, "end": { - "offset": 25086, + "offset": 24819, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6e3d228", + "id": "0x7feb10e822b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25080, + "offset": 24813, "col": 16, "tokLen": 4 }, "end": { - "offset": 25086, + "offset": 24819, "col": 22, "tokLen": 4 } @@ -21124,7 +21124,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbbe10", + "id": "0x37fecb00", "kind": "EnumConstantDecl", "name": "HDF5", "type": { @@ -21137,35 +21137,35 @@ ] }, { - "id": "0x7f0da6e3e598", + "id": "0x7feb10e83628", "kind": "IfStmt", "range": { "begin": { - "offset": 25096, - "line": 817, + "offset": 24829, + "line": 809, "col": 5, "tokLen": 2 }, "end": { - "offset": 25136, - "line": 818, + "offset": 24869, + "line": 810, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6e3e4e8", + "id": "0x7feb10e83578", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25100, - "line": 817, + "offset": 24833, + "line": 809, "col": 9, "tokLen": 1 }, "end": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 } @@ -21177,16 +21177,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3e4d0", + "id": "0x7feb10e83560", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25102, + "offset": 24835, "col": 11, "tokLen": 2 }, "end": { - "offset": 25102, + "offset": 24835, "col": 11, "tokLen": 2 } @@ -21198,16 +21198,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3e4b0", + "id": "0x7feb10e83540", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25102, + "offset": 24835, "col": 11, "tokLen": 2 }, "end": { - "offset": 25102, + "offset": 24835, "col": 11, "tokLen": 2 } @@ -21217,7 +21217,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -21228,16 +21228,16 @@ ] }, { - "id": "0x7f0da6e3d288", + "id": "0x7feb10e82318", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25100, + "offset": 24833, "col": 9, "tokLen": 1 }, "end": { - "offset": 25100, + "offset": 24833, "col": 9, "tokLen": 1 } @@ -21245,11 +21245,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3bca0", + "id": "0x7feb10e80d30", "kind": "ParmVarDecl", "name": "s", "type": { @@ -21258,16 +21258,16 @@ } }, { - "id": "0x7f0da6e3e498", + "id": "0x7feb10e83528", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 }, "end": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 } @@ -21279,16 +21279,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3d2a8", + "id": "0x7feb10e82338", "kind": "StringLiteral", "range": { "begin": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 }, "end": { - "offset": 25105, + "offset": 24838, "col": 14, "tokLen": 8 } @@ -21304,33 +21304,33 @@ ] }, { - "id": "0x7f0da6e3e588", + "id": "0x7feb10e83618", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25123, - "line": 818, + "offset": 24856, + "line": 810, "col": 9, "tokLen": 6 }, "end": { - "offset": 25136, + "offset": 24869, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6e3e558", + "id": "0x7feb10e835e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25130, + "offset": 24863, "col": 16, "tokLen": 4 }, "end": { - "offset": 25136, + "offset": 24869, "col": 22, "tokLen": 6 } @@ -21340,7 +21340,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbbdc0", + "id": "0x37fecab0", "kind": "EnumConstantDecl", "name": "BINARY", "type": { @@ -21353,17 +21353,17 @@ ] }, { - "id": "0x7f0da6e3ec28", + "id": "0x7feb10e83cb8", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 25148, - "line": 819, + "offset": 24881, + "line": 811, "col": 5, "tokLen": 5 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21375,16 +21375,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e3ec10", + "id": "0x7feb10e83ca0", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 25148, + "offset": 24881, "col": 5, "tokLen": 5 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21395,16 +21395,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e3ebe0", + "id": "0x7feb10e83c70", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21422,16 +21422,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e3ebc8", + "id": "0x7feb10e83c58", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21444,16 +21444,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e3eba0", + "id": "0x7feb10e83c30", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21465,7 +21465,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -21474,16 +21474,16 @@ }, "inner": [ { - "id": "0x7f0da6e3eb80", + "id": "0x7feb10e83c10", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21493,9 +21493,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e3eb78", + "temp": "0x7feb10e83c08", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -21504,16 +21504,16 @@ }, "inner": [ { - "id": "0x7f0da6e3eb48", + "id": "0x7feb10e83bd8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 25154, + "offset": 24887, "col": 11, "tokLen": 12 }, "end": { - "offset": 25193, + "offset": 24926, "col": 50, "tokLen": 1 } @@ -21530,16 +21530,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e3eb30", + "id": "0x7feb10e83bc0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21553,16 +21553,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e3eb18", + "id": "0x7feb10e83ba8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21575,16 +21575,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e3eaf8", + "id": "0x7feb10e83b88", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21594,9 +21594,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e3eaf0", + "temp": "0x7feb10e83b80", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -21605,16 +21605,16 @@ }, "inner": [ { - "id": "0x7f0da6e3eab8", + "id": "0x7feb10e83b48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21627,16 +21627,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e3eaa0", + "id": "0x7feb10e83b30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25190, + "offset": 24923, "col": 47, "tokLen": 1 }, "end": { - "offset": 25190, + "offset": 24923, "col": 47, "tokLen": 1 } @@ -21648,16 +21648,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e3ea80", + "id": "0x7feb10e83b10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25190, + "offset": 24923, "col": 47, "tokLen": 1 }, "end": { - "offset": 25190, + "offset": 24923, "col": 47, "tokLen": 1 } @@ -21667,7 +21667,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -21678,16 +21678,16 @@ ] }, { - "id": "0x7f0da6e3ea68", + "id": "0x7feb10e83af8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 } @@ -21699,16 +21699,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3e5c8", + "id": "0x7feb10e83658", "kind": "StringLiteral", "range": { "begin": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 }, "end": { - "offset": 25167, + "offset": 24900, "col": 24, "tokLen": 22 } @@ -21722,16 +21722,16 @@ ] }, { - "id": "0x7f0da6e3e5f8", + "id": "0x7feb10e83688", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 }, "end": { - "offset": 25192, + "offset": 24925, "col": 49, "tokLen": 1 } @@ -21739,11 +21739,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3bca0", + "id": "0x7feb10e80d30", "kind": "ParmVarDecl", "name": "s", "type": { @@ -21778,29 +21778,29 @@ ] }, { - "id": "0x7f0da6e3ede8", + "id": "0x7feb10e83e78", "kind": "FunctionDecl", "loc": { - "offset": 25236, + "offset": 24969, "file": "ToString.cpp", - "line": 822, + "line": 814, "col": 38, "tokLen": 8 }, "range": { "begin": { - "offset": 25199, + "offset": 24932, "col": 1, "tokLen": 8 }, "end": { - "offset": 25630, - "line": 832, + "offset": 25363, + "line": 824, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3779c8", + "previousDecl": "0x385a7fb8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18externalSignalFlagEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -21814,13 +21814,13 @@ }, "inner": [ { - "id": "0x2cdbd540", + "id": "0x37fee230", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::externalSignalFlag" }, "decl": { - "id": "0x2cdbd498", + "id": "0x37fee188", "kind": "EnumDecl", "name": "externalSignalFlag" } @@ -21828,22 +21828,22 @@ ] }, { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "loc": { - "offset": 25264, - "line": 822, + "offset": 24997, + "line": 814, "col": 66, "tokLen": 1 }, "range": { "begin": { - "offset": 25245, + "offset": 24978, "col": 47, "tokLen": 5 }, "end": { - "offset": 25264, + "offset": 24997, "col": 66, "tokLen": 1 } @@ -21855,52 +21855,52 @@ } }, { - "id": "0x7f0da6e44338", + "id": "0x7feb10e893c8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 25267, + "offset": 25000, "col": 69, "tokLen": 1 }, "end": { - "offset": 25630, - "line": 832, + "offset": 25363, + "line": 824, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e402e8", + "id": "0x7feb10e85378", "kind": "IfStmt", "range": { "begin": { - "offset": 25273, - "line": 823, + "offset": 25006, + "line": 815, "col": 5, "tokLen": 2 }, "end": { - "offset": 25329, - "line": 824, + "offset": 25062, + "line": 816, "col": 22, "tokLen": 22 } }, "inner": [ { - "id": "0x7f0da6e40238", + "id": "0x7feb10e852c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25277, - "line": 823, + "offset": 25010, + "line": 815, "col": 9, "tokLen": 1 }, "end": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 } @@ -21912,16 +21912,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e40220", + "id": "0x7feb10e852b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25279, + "offset": 25012, "col": 11, "tokLen": 2 }, "end": { - "offset": 25279, + "offset": 25012, "col": 11, "tokLen": 2 } @@ -21933,16 +21933,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e40200", + "id": "0x7feb10e85290", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25279, + "offset": 25012, "col": 11, "tokLen": 2 }, "end": { - "offset": 25279, + "offset": 25012, "col": 11, "tokLen": 2 } @@ -21952,7 +21952,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -21963,16 +21963,16 @@ ] }, { - "id": "0x7f0da6e3efd0", + "id": "0x7feb10e84060", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25277, + "offset": 25010, "col": 9, "tokLen": 1 }, "end": { - "offset": 25277, + "offset": 25010, "col": 9, "tokLen": 1 } @@ -21980,11 +21980,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -21993,16 +21993,16 @@ } }, { - "id": "0x7f0da6e401e8", + "id": "0x7feb10e85278", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 }, "end": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 } @@ -22014,16 +22014,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e3eff0", + "id": "0x7feb10e84080", "kind": "StringLiteral", "range": { "begin": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 }, "end": { - "offset": 25282, + "offset": 25015, "col": 14, "tokLen": 24 } @@ -22039,33 +22039,33 @@ ] }, { - "id": "0x7f0da6e402d8", + "id": "0x7feb10e85368", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25316, - "line": 824, + "offset": 25049, + "line": 816, "col": 9, "tokLen": 6 }, "end": { - "offset": 25329, + "offset": 25062, "col": 22, "tokLen": 22 } }, "inner": [ { - "id": "0x7f0da6e402a8", + "id": "0x7feb10e85338", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25323, + "offset": 25056, "col": 16, "tokLen": 4 }, "end": { - "offset": 25329, + "offset": 25062, "col": 22, "tokLen": 22 } @@ -22075,7 +22075,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd560", + "id": "0x37fee250", "kind": "EnumConstantDecl", "name": "TRIGGER_IN_RISING_EDGE", "type": { @@ -22088,35 +22088,35 @@ ] }, { - "id": "0x7f0da6e41628", + "id": "0x7feb10e866b8", "kind": "IfStmt", "range": { "begin": { - "offset": 25357, - "line": 825, + "offset": 25090, + "line": 817, "col": 5, "tokLen": 2 }, "end": { - "offset": 25414, - "line": 826, + "offset": 25147, + "line": 818, "col": 22, "tokLen": 23 } }, "inner": [ { - "id": "0x7f0da6e41578", + "id": "0x7feb10e86608", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25361, - "line": 825, + "offset": 25094, + "line": 817, "col": 9, "tokLen": 1 }, "end": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 } @@ -22128,16 +22128,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e41560", + "id": "0x7feb10e865f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25363, + "offset": 25096, "col": 11, "tokLen": 2 }, "end": { - "offset": 25363, + "offset": 25096, "col": 11, "tokLen": 2 } @@ -22149,16 +22149,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e41540", + "id": "0x7feb10e865d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25363, + "offset": 25096, "col": 11, "tokLen": 2 }, "end": { - "offset": 25363, + "offset": 25096, "col": 11, "tokLen": 2 } @@ -22168,7 +22168,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -22179,16 +22179,16 @@ ] }, { - "id": "0x7f0da6e40308", + "id": "0x7feb10e85398", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25361, + "offset": 25094, "col": 9, "tokLen": 1 }, "end": { - "offset": 25361, + "offset": 25094, "col": 9, "tokLen": 1 } @@ -22196,11 +22196,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -22209,16 +22209,16 @@ } }, { - "id": "0x7f0da6e41528", + "id": "0x7feb10e865b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 }, "end": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 } @@ -22230,16 +22230,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e40328", + "id": "0x7feb10e853b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 }, "end": { - "offset": 25366, + "offset": 25099, "col": 14, "tokLen": 25 } @@ -22255,33 +22255,33 @@ ] }, { - "id": "0x7f0da6e41618", + "id": "0x7feb10e866a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25401, - "line": 826, + "offset": 25134, + "line": 818, "col": 9, "tokLen": 6 }, "end": { - "offset": 25414, + "offset": 25147, "col": 22, "tokLen": 23 } }, "inner": [ { - "id": "0x7f0da6e415e8", + "id": "0x7feb10e86678", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25408, + "offset": 25141, "col": 16, "tokLen": 4 }, "end": { - "offset": 25414, + "offset": 25147, "col": 22, "tokLen": 23 } @@ -22291,7 +22291,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd5b0", + "id": "0x37fee2a0", "kind": "EnumConstantDecl", "name": "TRIGGER_IN_FALLING_EDGE", "type": { @@ -22304,35 +22304,35 @@ ] }, { - "id": "0x7f0da6e42958", + "id": "0x7feb10e879e8", "kind": "IfStmt", "range": { "begin": { - "offset": 25443, - "line": 827, + "offset": 25176, + "line": 819, "col": 5, "tokLen": 2 }, "end": { - "offset": 25489, - "line": 828, + "offset": 25222, + "line": 820, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e428a8", + "id": "0x7feb10e87938", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25447, - "line": 827, + "offset": 25180, + "line": 819, "col": 9, "tokLen": 1 }, "end": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 } @@ -22344,16 +22344,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e42890", + "id": "0x7feb10e87920", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25449, + "offset": 25182, "col": 11, "tokLen": 2 }, "end": { - "offset": 25449, + "offset": 25182, "col": 11, "tokLen": 2 } @@ -22365,16 +22365,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e42870", + "id": "0x7feb10e87900", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25449, + "offset": 25182, "col": 11, "tokLen": 2 }, "end": { - "offset": 25449, + "offset": 25182, "col": 11, "tokLen": 2 } @@ -22384,7 +22384,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -22395,16 +22395,16 @@ ] }, { - "id": "0x7f0da6e41648", + "id": "0x7feb10e866d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25447, + "offset": 25180, "col": 9, "tokLen": 1 }, "end": { - "offset": 25447, + "offset": 25180, "col": 9, "tokLen": 1 } @@ -22412,11 +22412,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -22425,16 +22425,16 @@ } }, { - "id": "0x7f0da6e42858", + "id": "0x7feb10e878e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 }, "end": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 } @@ -22446,16 +22446,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e41668", + "id": "0x7feb10e866f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 }, "end": { - "offset": 25452, + "offset": 25185, "col": 14, "tokLen": 14 } @@ -22471,33 +22471,33 @@ ] }, { - "id": "0x7f0da6e42948", + "id": "0x7feb10e879d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25476, - "line": 828, + "offset": 25209, + "line": 820, "col": 9, "tokLen": 6 }, "end": { - "offset": 25489, + "offset": 25222, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e42918", + "id": "0x7feb10e879a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25483, + "offset": 25216, "col": 16, "tokLen": 4 }, "end": { - "offset": 25489, + "offset": 25222, "col": 22, "tokLen": 12 } @@ -22507,7 +22507,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd600", + "id": "0x37fee2f0", "kind": "EnumConstantDecl", "name": "INVERSION_ON", "type": { @@ -22520,35 +22520,35 @@ ] }, { - "id": "0x7f0da6e43c88", + "id": "0x7feb10e88d18", "kind": "IfStmt", "range": { "begin": { - "offset": 25507, - "line": 829, + "offset": 25240, + "line": 821, "col": 5, "tokLen": 2 }, "end": { - "offset": 25554, - "line": 830, + "offset": 25287, + "line": 822, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e43bd8", + "id": "0x7feb10e88c68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25511, - "line": 829, + "offset": 25244, + "line": 821, "col": 9, "tokLen": 1 }, "end": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 } @@ -22560,16 +22560,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e43bc0", + "id": "0x7feb10e88c50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25513, + "offset": 25246, "col": 11, "tokLen": 2 }, "end": { - "offset": 25513, + "offset": 25246, "col": 11, "tokLen": 2 } @@ -22581,16 +22581,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e43ba0", + "id": "0x7feb10e88c30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25513, + "offset": 25246, "col": 11, "tokLen": 2 }, "end": { - "offset": 25513, + "offset": 25246, "col": 11, "tokLen": 2 } @@ -22600,7 +22600,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -22611,16 +22611,16 @@ ] }, { - "id": "0x7f0da6e42978", + "id": "0x7feb10e87a08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25511, + "offset": 25244, "col": 9, "tokLen": 1 }, "end": { - "offset": 25511, + "offset": 25244, "col": 9, "tokLen": 1 } @@ -22628,11 +22628,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -22641,16 +22641,16 @@ } }, { - "id": "0x7f0da6e43b88", + "id": "0x7feb10e88c18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 }, "end": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 } @@ -22662,16 +22662,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e42998", + "id": "0x7feb10e87a28", "kind": "StringLiteral", "range": { "begin": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 }, "end": { - "offset": 25516, + "offset": 25249, "col": 14, "tokLen": 15 } @@ -22687,33 +22687,33 @@ ] }, { - "id": "0x7f0da6e43c78", + "id": "0x7feb10e88d08", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25541, - "line": 830, + "offset": 25274, + "line": 822, "col": 9, "tokLen": 6 }, "end": { - "offset": 25554, + "offset": 25287, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6e43c48", + "id": "0x7feb10e88cd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25548, + "offset": 25281, "col": 16, "tokLen": 4 }, "end": { - "offset": 25554, + "offset": 25287, "col": 22, "tokLen": 13 } @@ -22723,7 +22723,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbd650", + "id": "0x37fee340", "kind": "EnumConstantDecl", "name": "INVERSION_OFF", "type": { @@ -22736,17 +22736,17 @@ ] }, { - "id": "0x7f0da6e44320", + "id": "0x7feb10e893b0", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 25573, - "line": 831, + "offset": 25306, + "line": 823, "col": 5, "tokLen": 5 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22758,16 +22758,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e44308", + "id": "0x7feb10e89398", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 25573, + "offset": 25306, "col": 5, "tokLen": 5 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22778,16 +22778,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e442d8", + "id": "0x7feb10e89368", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22805,16 +22805,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e442c0", + "id": "0x7feb10e89350", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22827,16 +22827,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e44298", + "id": "0x7feb10e89328", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22848,7 +22848,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -22857,16 +22857,16 @@ }, "inner": [ { - "id": "0x7f0da6e44278", + "id": "0x7feb10e89308", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22876,9 +22876,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e44270", + "temp": "0x7feb10e89300", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -22887,16 +22887,16 @@ }, "inner": [ { - "id": "0x7f0da6e44240", + "id": "0x7feb10e892d0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 25579, + "offset": 25312, "col": 11, "tokLen": 12 }, "end": { - "offset": 25627, + "offset": 25360, "col": 59, "tokLen": 1 } @@ -22913,16 +22913,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e44228", + "id": "0x7feb10e892b8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -22936,16 +22936,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e44210", + "id": "0x7feb10e892a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -22958,16 +22958,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e441f0", + "id": "0x7feb10e89280", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -22977,9 +22977,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e441e8", + "temp": "0x7feb10e89278", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -22988,16 +22988,16 @@ }, "inner": [ { - "id": "0x7f0da6e441b0", + "id": "0x7feb10e89240", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -23010,16 +23010,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e44198", + "id": "0x7feb10e89228", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25624, + "offset": 25357, "col": 56, "tokLen": 1 }, "end": { - "offset": 25624, + "offset": 25357, "col": 56, "tokLen": 1 } @@ -23031,16 +23031,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e44178", + "id": "0x7feb10e89208", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25624, + "offset": 25357, "col": 56, "tokLen": 1 }, "end": { - "offset": 25624, + "offset": 25357, "col": 56, "tokLen": 1 } @@ -23050,7 +23050,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -23061,16 +23061,16 @@ ] }, { - "id": "0x7f0da6e44160", + "id": "0x7feb10e891f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 } @@ -23082,16 +23082,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e43cb8", + "id": "0x7feb10e88d48", "kind": "StringLiteral", "range": { "begin": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 }, "end": { - "offset": 25592, + "offset": 25325, "col": 24, "tokLen": 31 } @@ -23105,16 +23105,16 @@ ] }, { - "id": "0x7f0da6e43cf0", + "id": "0x7feb10e88d80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 }, "end": { - "offset": 25626, + "offset": 25359, "col": 58, "tokLen": 1 } @@ -23122,11 +23122,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e3ed10", + "id": "0x7feb10e83da0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -23161,29 +23161,29 @@ ] }, { - "id": "0x7f0da6e444e8", + "id": "0x7feb10e89578", "kind": "FunctionDecl", "loc": { - "offset": 25663, + "offset": 25396, "file": "ToString.cpp", - "line": 834, + "line": 826, "col": 31, "tokLen": 8 }, "range": { "begin": { - "offset": 25633, + "offset": 25366, "col": 1, "tokLen": 8 }, "end": { - "offset": 26086, - "line": 846, + "offset": 25819, + "line": 838, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d377f18", + "previousDecl": "0x385a8508", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11readoutModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -23197,13 +23197,13 @@ }, "inner": [ { - "id": "0x2cdc0d30", + "id": "0x37ff18e0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::readoutMode" }, "decl": { - "id": "0x2cdc0c88", + "id": "0x37ff1838", "kind": "EnumDecl", "name": "readoutMode" } @@ -23211,22 +23211,22 @@ ] }, { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "loc": { - "offset": 25691, - "line": 834, + "offset": 25424, + "line": 826, "col": 59, "tokLen": 1 }, "range": { "begin": { - "offset": 25672, + "offset": 25405, "col": 40, "tokLen": 5 }, "end": { - "offset": 25691, + "offset": 25424, "col": 59, "tokLen": 1 } @@ -23238,52 +23238,52 @@ } }, { - "id": "0x7f0da6e4ad88", + "id": "0x7feb10e8fe18", "kind": "CompoundStmt", "range": { "begin": { - "offset": 25694, + "offset": 25427, "col": 62, "tokLen": 1 }, "end": { - "offset": 26086, - "line": 846, + "offset": 25819, + "line": 838, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e459d8", + "id": "0x7feb10e8aa68", "kind": "IfStmt", "range": { "begin": { - "offset": 25700, - "line": 835, + "offset": 25433, + "line": 827, "col": 5, "tokLen": 2 }, "end": { - "offset": 25740, - "line": 836, + "offset": 25473, + "line": 828, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e45928", + "id": "0x7feb10e8a9b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25704, - "line": 835, + "offset": 25437, + "line": 827, "col": 9, "tokLen": 1 }, "end": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 } @@ -23295,16 +23295,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e45910", + "id": "0x7feb10e8a9a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25706, + "offset": 25439, "col": 11, "tokLen": 2 }, "end": { - "offset": 25706, + "offset": 25439, "col": 11, "tokLen": 2 } @@ -23316,16 +23316,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e458f0", + "id": "0x7feb10e8a980", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25706, + "offset": 25439, "col": 11, "tokLen": 2 }, "end": { - "offset": 25706, + "offset": 25439, "col": 11, "tokLen": 2 } @@ -23335,7 +23335,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -23346,16 +23346,16 @@ ] }, { - "id": "0x7f0da6e446d0", + "id": "0x7feb10e89760", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25704, + "offset": 25437, "col": 9, "tokLen": 1 }, "end": { - "offset": 25704, + "offset": 25437, "col": 9, "tokLen": 1 } @@ -23363,11 +23363,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -23376,16 +23376,16 @@ } }, { - "id": "0x7f0da6e458d8", + "id": "0x7feb10e8a968", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 }, "end": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 } @@ -23397,16 +23397,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e446f0", + "id": "0x7feb10e89780", "kind": "StringLiteral", "range": { "begin": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 }, "end": { - "offset": 25709, + "offset": 25442, "col": 14, "tokLen": 8 } @@ -23422,33 +23422,33 @@ ] }, { - "id": "0x7f0da6e459c8", + "id": "0x7feb10e8aa58", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25727, - "line": 836, + "offset": 25460, + "line": 828, "col": 9, "tokLen": 6 }, "end": { - "offset": 25740, + "offset": 25473, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6e45998", + "id": "0x7feb10e8aa28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25734, + "offset": 25467, "col": 16, "tokLen": 4 }, "end": { - "offset": 25740, + "offset": 25473, "col": 22, "tokLen": 11 } @@ -23458,7 +23458,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0d50", + "id": "0x37ff1900", "kind": "EnumConstantDecl", "name": "ANALOG_ONLY", "type": { @@ -23471,35 +23471,35 @@ ] }, { - "id": "0x7f0da6e46d08", + "id": "0x7feb10e8bd98", "kind": "IfStmt", "range": { "begin": { - "offset": 25757, - "line": 837, + "offset": 25490, + "line": 829, "col": 5, "tokLen": 2 }, "end": { - "offset": 25798, - "line": 838, + "offset": 25531, + "line": 830, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e46c58", + "id": "0x7feb10e8bce8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25761, - "line": 837, + "offset": 25494, + "line": 829, "col": 9, "tokLen": 1 }, "end": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 } @@ -23511,16 +23511,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e46c40", + "id": "0x7feb10e8bcd0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25763, + "offset": 25496, "col": 11, "tokLen": 2 }, "end": { - "offset": 25763, + "offset": 25496, "col": 11, "tokLen": 2 } @@ -23532,16 +23532,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e46c20", + "id": "0x7feb10e8bcb0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25763, + "offset": 25496, "col": 11, "tokLen": 2 }, "end": { - "offset": 25763, + "offset": 25496, "col": 11, "tokLen": 2 } @@ -23551,7 +23551,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -23562,16 +23562,16 @@ ] }, { - "id": "0x7f0da6e459f8", + "id": "0x7feb10e8aa88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25761, + "offset": 25494, "col": 9, "tokLen": 1 }, "end": { - "offset": 25761, + "offset": 25494, "col": 9, "tokLen": 1 } @@ -23579,11 +23579,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -23592,16 +23592,16 @@ } }, { - "id": "0x7f0da6e46c08", + "id": "0x7feb10e8bc98", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 }, "end": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 } @@ -23613,16 +23613,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e45a18", + "id": "0x7feb10e8aaa8", "kind": "StringLiteral", "range": { "begin": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 }, "end": { - "offset": 25766, + "offset": 25499, "col": 14, "tokLen": 9 } @@ -23638,33 +23638,33 @@ ] }, { - "id": "0x7f0da6e46cf8", + "id": "0x7feb10e8bd88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25785, - "line": 838, + "offset": 25518, + "line": 830, "col": 9, "tokLen": 6 }, "end": { - "offset": 25798, + "offset": 25531, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6e46cc8", + "id": "0x7feb10e8bd58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25792, + "offset": 25525, "col": 16, "tokLen": 4 }, "end": { - "offset": 25798, + "offset": 25531, "col": 22, "tokLen": 12 } @@ -23674,7 +23674,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0da0", + "id": "0x37ff1950", "kind": "EnumConstantDecl", "name": "DIGITAL_ONLY", "type": { @@ -23687,35 +23687,35 @@ ] }, { - "id": "0x7f0da6e48038", + "id": "0x7feb10e8d0c8", "kind": "IfStmt", "range": { "begin": { - "offset": 25816, - "line": 839, + "offset": 25549, + "line": 831, "col": 5, "tokLen": 2 }, "end": { - "offset": 25864, - "line": 840, + "offset": 25597, + "line": 832, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e47f88", + "id": "0x7feb10e8d018", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25820, - "line": 839, + "offset": 25553, + "line": 831, "col": 9, "tokLen": 1 }, "end": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 } @@ -23727,16 +23727,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e47f70", + "id": "0x7feb10e8d000", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25822, + "offset": 25555, "col": 11, "tokLen": 2 }, "end": { - "offset": 25822, + "offset": 25555, "col": 11, "tokLen": 2 } @@ -23748,16 +23748,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e47f50", + "id": "0x7feb10e8cfe0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25822, + "offset": 25555, "col": 11, "tokLen": 2 }, "end": { - "offset": 25822, + "offset": 25555, "col": 11, "tokLen": 2 } @@ -23767,7 +23767,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -23778,16 +23778,16 @@ ] }, { - "id": "0x7f0da6e46d28", + "id": "0x7feb10e8bdb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25820, + "offset": 25553, "col": 9, "tokLen": 1 }, "end": { - "offset": 25820, + "offset": 25553, "col": 9, "tokLen": 1 } @@ -23795,11 +23795,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -23808,16 +23808,16 @@ } }, { - "id": "0x7f0da6e47f38", + "id": "0x7feb10e8cfc8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 }, "end": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 } @@ -23829,16 +23829,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e46d48", + "id": "0x7feb10e8bdd8", "kind": "StringLiteral", "range": { "begin": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 }, "end": { - "offset": 25825, + "offset": 25558, "col": 14, "tokLen": 16 } @@ -23854,33 +23854,33 @@ ] }, { - "id": "0x7f0da6e48028", + "id": "0x7feb10e8d0b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25851, - "line": 840, + "offset": 25584, + "line": 832, "col": 9, "tokLen": 6 }, "end": { - "offset": 25864, + "offset": 25597, "col": 22, "tokLen": 18 } }, "inner": [ { - "id": "0x7f0da6e47ff8", + "id": "0x7feb10e8d088", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25858, + "offset": 25591, "col": 16, "tokLen": 4 }, "end": { - "offset": 25864, + "offset": 25597, "col": 22, "tokLen": 18 } @@ -23890,7 +23890,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0df0", + "id": "0x37ff19a0", "kind": "EnumConstantDecl", "name": "ANALOG_AND_DIGITAL", "type": { @@ -23903,35 +23903,35 @@ ] }, { - "id": "0x7f0da6e49368", + "id": "0x7feb10e8e3f8", "kind": "IfStmt", "range": { "begin": { - "offset": 25888, - "line": 841, + "offset": 25621, + "line": 833, "col": 5, "tokLen": 2 }, "end": { - "offset": 25933, - "line": 842, + "offset": 25666, + "line": 834, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6e492b8", + "id": "0x7feb10e8e348", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25892, - "line": 841, + "offset": 25625, + "line": 833, "col": 9, "tokLen": 1 }, "end": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 } @@ -23943,16 +23943,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e492a0", + "id": "0x7feb10e8e330", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25894, + "offset": 25627, "col": 11, "tokLen": 2 }, "end": { - "offset": 25894, + "offset": 25627, "col": 11, "tokLen": 2 } @@ -23964,16 +23964,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e49280", + "id": "0x7feb10e8e310", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25894, + "offset": 25627, "col": 11, "tokLen": 2 }, "end": { - "offset": 25894, + "offset": 25627, "col": 11, "tokLen": 2 } @@ -23983,7 +23983,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -23994,16 +23994,16 @@ ] }, { - "id": "0x7f0da6e48058", + "id": "0x7feb10e8d0e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25892, + "offset": 25625, "col": 9, "tokLen": 1 }, "end": { - "offset": 25892, + "offset": 25625, "col": 9, "tokLen": 1 } @@ -24011,11 +24011,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -24024,16 +24024,16 @@ } }, { - "id": "0x7f0da6e49268", + "id": "0x7feb10e8e2f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 }, "end": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 } @@ -24045,16 +24045,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e48078", + "id": "0x7feb10e8d108", "kind": "StringLiteral", "range": { "begin": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 }, "end": { - "offset": 25897, + "offset": 25630, "col": 14, "tokLen": 13 } @@ -24070,33 +24070,33 @@ ] }, { - "id": "0x7f0da6e49358", + "id": "0x7feb10e8e3e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25920, - "line": 842, + "offset": 25653, + "line": 834, "col": 9, "tokLen": 6 }, "end": { - "offset": 25933, + "offset": 25666, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6e49328", + "id": "0x7feb10e8e3b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25927, + "offset": 25660, "col": 16, "tokLen": 4 }, "end": { - "offset": 25933, + "offset": 25666, "col": 22, "tokLen": 16 } @@ -24106,7 +24106,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0e40", + "id": "0x37ff19f0", "kind": "EnumConstantDecl", "name": "TRANSCEIVER_ONLY", "type": { @@ -24119,35 +24119,35 @@ ] }, { - "id": "0x7f0da6e4a6a8", + "id": "0x7feb10e8f738", "kind": "IfStmt", "range": { "begin": { - "offset": 25955, - "line": 843, + "offset": 25688, + "line": 835, "col": 5, "tokLen": 2 }, "end": { - "offset": 26008, - "line": 844, + "offset": 25741, + "line": 836, "col": 22, "tokLen": 23 } }, "inner": [ { - "id": "0x7f0da6e4a5f8", + "id": "0x7feb10e8f688", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 25959, - "line": 843, + "offset": 25692, + "line": 835, "col": 9, "tokLen": 1 }, "end": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 } @@ -24159,16 +24159,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4a5e0", + "id": "0x7feb10e8f670", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25961, + "offset": 25694, "col": 11, "tokLen": 2 }, "end": { - "offset": 25961, + "offset": 25694, "col": 11, "tokLen": 2 } @@ -24180,16 +24180,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4a5c0", + "id": "0x7feb10e8f650", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25961, + "offset": 25694, "col": 11, "tokLen": 2 }, "end": { - "offset": 25961, + "offset": 25694, "col": 11, "tokLen": 2 } @@ -24199,7 +24199,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -24210,16 +24210,16 @@ ] }, { - "id": "0x7f0da6e49388", + "id": "0x7feb10e8e418", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 25959, + "offset": 25692, "col": 9, "tokLen": 1 }, "end": { - "offset": 25959, + "offset": 25692, "col": 9, "tokLen": 1 } @@ -24227,11 +24227,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -24240,16 +24240,16 @@ } }, { - "id": "0x7f0da6e4a5a8", + "id": "0x7feb10e8f638", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 }, "end": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 } @@ -24261,16 +24261,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e493a8", + "id": "0x7feb10e8e438", "kind": "StringLiteral", "range": { "begin": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 }, "end": { - "offset": 25964, + "offset": 25697, "col": 14, "tokLen": 21 } @@ -24286,33 +24286,33 @@ ] }, { - "id": "0x7f0da6e4a698", + "id": "0x7feb10e8f728", "kind": "ReturnStmt", "range": { "begin": { - "offset": 25995, - "line": 844, + "offset": 25728, + "line": 836, "col": 9, "tokLen": 6 }, "end": { - "offset": 26008, + "offset": 25741, "col": 22, "tokLen": 23 } }, "inner": [ { - "id": "0x7f0da6e4a668", + "id": "0x7feb10e8f6f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26002, + "offset": 25735, "col": 16, "tokLen": 4 }, "end": { - "offset": 26008, + "offset": 25741, "col": 22, "tokLen": 23 } @@ -24322,7 +24322,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc0e90", + "id": "0x37ff1a40", "kind": "EnumConstantDecl", "name": "DIGITAL_AND_TRANSCEIVER", "type": { @@ -24335,17 +24335,17 @@ ] }, { - "id": "0x7f0da6e4ad70", + "id": "0x7feb10e8fe00", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 26037, - "line": 845, + "offset": 25770, + "line": 837, "col": 5, "tokLen": 5 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24357,16 +24357,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6e4ad58", + "id": "0x7feb10e8fde8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 26037, + "offset": 25770, "col": 5, "tokLen": 5 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24377,16 +24377,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6e4ad28", + "id": "0x7feb10e8fdb8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24404,16 +24404,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e4ad10", + "id": "0x7feb10e8fda0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24426,16 +24426,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6e4ace8", + "id": "0x7feb10e8fd78", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24447,7 +24447,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -24456,16 +24456,16 @@ }, "inner": [ { - "id": "0x7f0da6e4acc8", + "id": "0x7feb10e8fd58", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24475,9 +24475,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e4acc0", + "temp": "0x7feb10e8fd50", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -24486,16 +24486,16 @@ }, "inner": [ { - "id": "0x7f0da6e4ac90", + "id": "0x7feb10e8fd20", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 26043, + "offset": 25776, "col": 11, "tokLen": 12 }, "end": { - "offset": 26083, + "offset": 25816, "col": 51, "tokLen": 1 } @@ -24512,16 +24512,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6e4ac78", + "id": "0x7feb10e8fd08", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24535,16 +24535,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6e4ac60", + "id": "0x7feb10e8fcf0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24557,16 +24557,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6e4ac40", + "id": "0x7feb10e8fcd0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24576,9 +24576,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6e4ac38", + "temp": "0x7feb10e8fcc8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -24587,16 +24587,16 @@ }, "inner": [ { - "id": "0x7f0da6e4ac00", + "id": "0x7feb10e8fc90", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24609,16 +24609,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4abe8", + "id": "0x7feb10e8fc78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26080, + "offset": 25813, "col": 48, "tokLen": 1 }, "end": { - "offset": 26080, + "offset": 25813, "col": 48, "tokLen": 1 } @@ -24630,16 +24630,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4abc8", + "id": "0x7feb10e8fc58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26080, + "offset": 25813, "col": 48, "tokLen": 1 }, "end": { - "offset": 26080, + "offset": 25813, "col": 48, "tokLen": 1 } @@ -24649,7 +24649,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -24660,16 +24660,16 @@ ] }, { - "id": "0x7f0da6e4abb0", + "id": "0x7feb10e8fc40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 } @@ -24681,16 +24681,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4a6d8", + "id": "0x7feb10e8f768", "kind": "StringLiteral", "range": { "begin": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 }, "end": { - "offset": 26056, + "offset": 25789, "col": 24, "tokLen": 23 } @@ -24704,16 +24704,16 @@ ] }, { - "id": "0x7f0da6e4a708", + "id": "0x7feb10e8f798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 }, "end": { - "offset": 26082, + "offset": 25815, "col": 50, "tokLen": 1 } @@ -24721,11 +24721,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e44418", + "id": "0x7feb10e894a8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -24760,29 +24760,29 @@ ] }, { - "id": "0x7f0da6e4af48", + "id": "0x7feb10e8ffd8", "kind": "FunctionDecl", "loc": { - "offset": 26116, + "offset": 25849, "file": "ToString.cpp", - "line": 848, + "line": 840, "col": 28, "tokLen": 8 }, "range": { "begin": { - "offset": 26089, + "offset": 25822, "col": 1, "tokLen": 8 }, "end": { - "offset": 31510, - "line": 1034, + "offset": 31012, + "line": 1018, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d378468", + "previousDecl": "0x385a8a58", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8dacIndexEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -24796,13 +24796,13 @@ }, "inner": [ { - "id": "0x2cdbda40", + "id": "0x37fee730", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::dacIndex" }, "decl": { - "id": "0x2cdbd998", + "id": "0x37fee688", "kind": "EnumDecl", "name": "dacIndex" } @@ -24810,22 +24810,22 @@ ] }, { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "loc": { - "offset": 26144, - "line": 848, + "offset": 25877, + "line": 840, "col": 56, "tokLen": 1 }, "range": { "begin": { - "offset": 26125, + "offset": 25858, "col": 37, "tokLen": 5 }, "end": { - "offset": 26144, + "offset": 25877, "col": 56, "tokLen": 1 } @@ -24837,52 +24837,52 @@ } }, { - "id": "0x7f0da6b95d80", + "id": "0x7feb10e0b140", "kind": "CompoundStmt", "range": { "begin": { - "offset": 26147, + "offset": 25880, "col": 59, "tokLen": 1 }, "end": { - "offset": 31510, - "line": 1034, + "offset": 31012, + "line": 1018, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6e4d6e8", + "id": "0x7feb10e92778", "kind": "IfStmt", "range": { "begin": { - "offset": 26153, - "line": 849, + "offset": 25886, + "line": 841, "col": 5, "tokLen": 2 }, "end": { - "offset": 26204, - "line": 850, + "offset": 25937, + "line": 842, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e4d650", + "id": "0x7feb10e926e0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26157, - "line": 849, + "offset": 25890, + "line": 841, "col": 9, "tokLen": 1 }, "end": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 } @@ -24894,16 +24894,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6e4c388", + "id": "0x7feb10e91418", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26157, + "offset": 25890, "col": 9, "tokLen": 1 }, "end": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 } @@ -24915,16 +24915,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4c370", + "id": "0x7feb10e91400", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26159, + "offset": 25892, "col": 11, "tokLen": 2 }, "end": { - "offset": 26159, + "offset": 25892, "col": 11, "tokLen": 2 } @@ -24936,16 +24936,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4c350", + "id": "0x7feb10e913e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26159, + "offset": 25892, "col": 11, "tokLen": 2 }, "end": { - "offset": 26159, + "offset": 25892, "col": 11, "tokLen": 2 } @@ -24955,7 +24955,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -24966,16 +24966,16 @@ ] }, { - "id": "0x7f0da6e4b130", + "id": "0x7feb10e901c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26157, + "offset": 25890, "col": 9, "tokLen": 1 }, "end": { - "offset": 26157, + "offset": 25890, "col": 9, "tokLen": 1 } @@ -24983,11 +24983,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -24996,16 +24996,16 @@ } }, { - "id": "0x7f0da6e4c338", + "id": "0x7feb10e913c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 }, "end": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 } @@ -25017,16 +25017,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4b150", + "id": "0x7feb10e901e0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 }, "end": { - "offset": 26162, + "offset": 25895, "col": 14, "tokLen": 7 } @@ -25042,16 +25042,16 @@ ] }, { - "id": "0x7f0da6e4d618", + "id": "0x7feb10e926a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26173, + "offset": 25906, "col": 25, "tokLen": 1 }, "end": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 } @@ -25063,16 +25063,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4d600", + "id": "0x7feb10e92690", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26175, + "offset": 25908, "col": 27, "tokLen": 2 }, "end": { - "offset": 26175, + "offset": 25908, "col": 27, "tokLen": 2 } @@ -25084,16 +25084,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4d5e0", + "id": "0x7feb10e92670", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26175, + "offset": 25908, "col": 27, "tokLen": 2 }, "end": { - "offset": 26175, + "offset": 25908, "col": 27, "tokLen": 2 } @@ -25103,7 +25103,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25114,16 +25114,16 @@ ] }, { - "id": "0x7f0da6e4c3c0", + "id": "0x7feb10e91450", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26173, + "offset": 25906, "col": 25, "tokLen": 1 }, "end": { - "offset": 26173, + "offset": 25906, "col": 25, "tokLen": 1 } @@ -25131,11 +25131,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25144,16 +25144,16 @@ } }, { - "id": "0x7f0da6e4d5c8", + "id": "0x7feb10e92658", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 }, "end": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 } @@ -25165,16 +25165,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4c3e0", + "id": "0x7feb10e91470", "kind": "StringLiteral", "range": { "begin": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 }, "end": { - "offset": 26178, + "offset": 25911, "col": 30, "tokLen": 3 } @@ -25192,33 +25192,33 @@ ] }, { - "id": "0x7f0da6e4d6d8", + "id": "0x7feb10e92768", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26191, - "line": 850, + "offset": 25924, + "line": 842, "col": 9, "tokLen": 6 }, "end": { - "offset": 26204, + "offset": 25937, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e4d6a8", + "id": "0x7feb10e92738", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26198, + "offset": 25931, "col": 16, "tokLen": 4 }, "end": { - "offset": 26204, + "offset": 25937, "col": 22, "tokLen": 5 } @@ -25228,7 +25228,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbda60", + "id": "0x37fee750", "kind": "EnumConstantDecl", "name": "DAC_0", "type": { @@ -25241,35 +25241,35 @@ ] }, { - "id": "0x7f0da6e4fcc8", + "id": "0x7feb10e94d58", "kind": "IfStmt", "range": { "begin": { - "offset": 26215, - "line": 851, + "offset": 25948, + "line": 843, "col": 5, "tokLen": 2 }, "end": { - "offset": 26266, - "line": 852, + "offset": 25999, + "line": 844, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e4fc30", + "id": "0x7feb10e94cc0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26219, - "line": 851, + "offset": 25952, + "line": 843, "col": 9, "tokLen": 1 }, "end": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 } @@ -25281,16 +25281,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6e4e968", + "id": "0x7feb10e939f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26219, + "offset": 25952, "col": 9, "tokLen": 1 }, "end": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 } @@ -25302,16 +25302,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4e950", + "id": "0x7feb10e939e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26221, + "offset": 25954, "col": 11, "tokLen": 2 }, "end": { - "offset": 26221, + "offset": 25954, "col": 11, "tokLen": 2 } @@ -25323,16 +25323,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4e930", + "id": "0x7feb10e939c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26221, + "offset": 25954, "col": 11, "tokLen": 2 }, "end": { - "offset": 26221, + "offset": 25954, "col": 11, "tokLen": 2 } @@ -25342,7 +25342,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25353,16 +25353,16 @@ ] }, { - "id": "0x7f0da6e4d708", + "id": "0x7feb10e92798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26219, + "offset": 25952, "col": 9, "tokLen": 1 }, "end": { - "offset": 26219, + "offset": 25952, "col": 9, "tokLen": 1 } @@ -25370,11 +25370,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25383,16 +25383,16 @@ } }, { - "id": "0x7f0da6e4e918", + "id": "0x7feb10e939a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 }, "end": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 } @@ -25404,16 +25404,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4d728", + "id": "0x7feb10e927b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 }, "end": { - "offset": 26224, + "offset": 25957, "col": 14, "tokLen": 7 } @@ -25429,16 +25429,16 @@ ] }, { - "id": "0x7f0da6e4fbf8", + "id": "0x7feb10e94c88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26235, + "offset": 25968, "col": 25, "tokLen": 1 }, "end": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 } @@ -25450,16 +25450,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e4fbe0", + "id": "0x7feb10e94c70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26237, + "offset": 25970, "col": 27, "tokLen": 2 }, "end": { - "offset": 26237, + "offset": 25970, "col": 27, "tokLen": 2 } @@ -25471,16 +25471,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e4fbc0", + "id": "0x7feb10e94c50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26237, + "offset": 25970, "col": 27, "tokLen": 2 }, "end": { - "offset": 26237, + "offset": 25970, "col": 27, "tokLen": 2 } @@ -25490,7 +25490,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25501,16 +25501,16 @@ ] }, { - "id": "0x7f0da6e4e9a0", + "id": "0x7feb10e93a30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26235, + "offset": 25968, "col": 25, "tokLen": 1 }, "end": { - "offset": 26235, + "offset": 25968, "col": 25, "tokLen": 1 } @@ -25518,11 +25518,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25531,16 +25531,16 @@ } }, { - "id": "0x7f0da6e4fba8", + "id": "0x7feb10e94c38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 }, "end": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 } @@ -25552,16 +25552,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4e9c0", + "id": "0x7feb10e93a50", "kind": "StringLiteral", "range": { "begin": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 }, "end": { - "offset": 26240, + "offset": 25973, "col": 30, "tokLen": 3 } @@ -25579,33 +25579,33 @@ ] }, { - "id": "0x7f0da6e4fcb8", + "id": "0x7feb10e94d48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26253, - "line": 852, + "offset": 25986, + "line": 844, "col": 9, "tokLen": 6 }, "end": { - "offset": 26266, + "offset": 25999, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e4fc88", + "id": "0x7feb10e94d18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26260, + "offset": 25993, "col": 16, "tokLen": 4 }, "end": { - "offset": 26266, + "offset": 25999, "col": 22, "tokLen": 5 } @@ -25615,7 +25615,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdab0", + "id": "0x37fee7a0", "kind": "EnumConstantDecl", "name": "DAC_1", "type": { @@ -25628,35 +25628,35 @@ ] }, { - "id": "0x7f0da6e522a8", + "id": "0x7feb10e97338", "kind": "IfStmt", "range": { "begin": { - "offset": 26277, - "line": 853, + "offset": 26010, + "line": 845, "col": 5, "tokLen": 2 }, "end": { - "offset": 26328, - "line": 854, + "offset": 26061, + "line": 846, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e52210", + "id": "0x7feb10e972a0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26281, - "line": 853, + "offset": 26014, + "line": 845, "col": 9, "tokLen": 1 }, "end": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 } @@ -25668,16 +25668,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6e50f48", + "id": "0x7feb10e95fd8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26281, + "offset": 26014, "col": 9, "tokLen": 1 }, "end": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 } @@ -25689,16 +25689,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e50f30", + "id": "0x7feb10e95fc0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26283, + "offset": 26016, "col": 11, "tokLen": 2 }, "end": { - "offset": 26283, + "offset": 26016, "col": 11, "tokLen": 2 } @@ -25710,16 +25710,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e50f10", + "id": "0x7feb10e95fa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26283, + "offset": 26016, "col": 11, "tokLen": 2 }, "end": { - "offset": 26283, + "offset": 26016, "col": 11, "tokLen": 2 } @@ -25729,7 +25729,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25740,16 +25740,16 @@ ] }, { - "id": "0x7f0da6e4fce8", + "id": "0x7feb10e94d78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26281, + "offset": 26014, "col": 9, "tokLen": 1 }, "end": { - "offset": 26281, + "offset": 26014, "col": 9, "tokLen": 1 } @@ -25757,11 +25757,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25770,16 +25770,16 @@ } }, { - "id": "0x7f0da6e50ef8", + "id": "0x7feb10e95f88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 }, "end": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 } @@ -25791,16 +25791,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e4fd08", + "id": "0x7feb10e94d98", "kind": "StringLiteral", "range": { "begin": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 }, "end": { - "offset": 26286, + "offset": 26019, "col": 14, "tokLen": 7 } @@ -25816,16 +25816,16 @@ ] }, { - "id": "0x7f0da6e521d8", + "id": "0x7feb10e97268", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26297, + "offset": 26030, "col": 25, "tokLen": 1 }, "end": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 } @@ -25837,16 +25837,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e521c0", + "id": "0x7feb10e97250", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26299, + "offset": 26032, "col": 27, "tokLen": 2 }, "end": { - "offset": 26299, + "offset": 26032, "col": 27, "tokLen": 2 } @@ -25858,16 +25858,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e521a0", + "id": "0x7feb10e97230", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26299, + "offset": 26032, "col": 27, "tokLen": 2 }, "end": { - "offset": 26299, + "offset": 26032, "col": 27, "tokLen": 2 } @@ -25877,7 +25877,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -25888,16 +25888,16 @@ ] }, { - "id": "0x7f0da6e50f80", + "id": "0x7feb10e96010", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26297, + "offset": 26030, "col": 25, "tokLen": 1 }, "end": { - "offset": 26297, + "offset": 26030, "col": 25, "tokLen": 1 } @@ -25905,11 +25905,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -25918,16 +25918,16 @@ } }, { - "id": "0x7f0da6e52188", + "id": "0x7feb10e97218", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 }, "end": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 } @@ -25939,16 +25939,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e50fa0", + "id": "0x7feb10e96030", "kind": "StringLiteral", "range": { "begin": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 }, "end": { - "offset": 26302, + "offset": 26035, "col": 30, "tokLen": 3 } @@ -25966,33 +25966,33 @@ ] }, { - "id": "0x7f0da6e52298", + "id": "0x7feb10e97328", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26315, - "line": 854, + "offset": 26048, + "line": 846, "col": 9, "tokLen": 6 }, "end": { - "offset": 26328, + "offset": 26061, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e52268", + "id": "0x7feb10e972f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26322, + "offset": 26055, "col": 16, "tokLen": 4 }, "end": { - "offset": 26328, + "offset": 26061, "col": 22, "tokLen": 5 } @@ -26002,7 +26002,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdb00", + "id": "0x37fee7f0", "kind": "EnumConstantDecl", "name": "DAC_2", "type": { @@ -26015,35 +26015,35 @@ ] }, { - "id": "0x7f0da6e54888", + "id": "0x7feb10e99918", "kind": "IfStmt", "range": { "begin": { - "offset": 26339, - "line": 855, + "offset": 26072, + "line": 847, "col": 5, "tokLen": 2 }, "end": { - "offset": 26390, - "line": 856, + "offset": 26123, + "line": 848, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e547f0", + "id": "0x7feb10e99880", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26343, - "line": 855, + "offset": 26076, + "line": 847, "col": 9, "tokLen": 1 }, "end": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 } @@ -26055,16 +26055,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6e53528", + "id": "0x7feb10e985b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26343, + "offset": 26076, "col": 9, "tokLen": 1 }, "end": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 } @@ -26076,16 +26076,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e53510", + "id": "0x7feb10e985a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26345, + "offset": 26078, "col": 11, "tokLen": 2 }, "end": { - "offset": 26345, + "offset": 26078, "col": 11, "tokLen": 2 } @@ -26097,16 +26097,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e534f0", + "id": "0x7feb10e98580", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26345, + "offset": 26078, "col": 11, "tokLen": 2 }, "end": { - "offset": 26345, + "offset": 26078, "col": 11, "tokLen": 2 } @@ -26116,7 +26116,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26127,16 +26127,16 @@ ] }, { - "id": "0x7f0da6e522c8", + "id": "0x7feb10e97358", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26343, + "offset": 26076, "col": 9, "tokLen": 1 }, "end": { - "offset": 26343, + "offset": 26076, "col": 9, "tokLen": 1 } @@ -26144,11 +26144,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26157,16 +26157,16 @@ } }, { - "id": "0x7f0da6e534d8", + "id": "0x7feb10e98568", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 }, "end": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 } @@ -26178,16 +26178,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e522e8", + "id": "0x7feb10e97378", "kind": "StringLiteral", "range": { "begin": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 }, "end": { - "offset": 26348, + "offset": 26081, "col": 14, "tokLen": 7 } @@ -26203,16 +26203,16 @@ ] }, { - "id": "0x7f0da6e547b8", + "id": "0x7feb10e99848", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26359, + "offset": 26092, "col": 25, "tokLen": 1 }, "end": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 } @@ -26224,16 +26224,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6e547a0", + "id": "0x7feb10e99830", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26361, + "offset": 26094, "col": 27, "tokLen": 2 }, "end": { - "offset": 26361, + "offset": 26094, "col": 27, "tokLen": 2 } @@ -26245,16 +26245,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6e54780", + "id": "0x7feb10e99810", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26361, + "offset": 26094, "col": 27, "tokLen": 2 }, "end": { - "offset": 26361, + "offset": 26094, "col": 27, "tokLen": 2 } @@ -26264,7 +26264,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26275,16 +26275,16 @@ ] }, { - "id": "0x7f0da6e53560", + "id": "0x7feb10e985f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26359, + "offset": 26092, "col": 25, "tokLen": 1 }, "end": { - "offset": 26359, + "offset": 26092, "col": 25, "tokLen": 1 } @@ -26292,11 +26292,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26305,16 +26305,16 @@ } }, { - "id": "0x7f0da6e54768", + "id": "0x7feb10e997f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 }, "end": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 } @@ -26326,16 +26326,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e53580", + "id": "0x7feb10e98610", "kind": "StringLiteral", "range": { "begin": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 }, "end": { - "offset": 26364, + "offset": 26097, "col": 30, "tokLen": 3 } @@ -26353,33 +26353,33 @@ ] }, { - "id": "0x7f0da6e54878", + "id": "0x7feb10e99908", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26377, - "line": 856, + "offset": 26110, + "line": 848, "col": 9, "tokLen": 6 }, "end": { - "offset": 26390, + "offset": 26123, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6e54848", + "id": "0x7feb10e998d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26384, + "offset": 26117, "col": 16, "tokLen": 4 }, "end": { - "offset": 26390, + "offset": 26123, "col": 22, "tokLen": 5 } @@ -26389,7 +26389,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdb50", + "id": "0x37fee840", "kind": "EnumConstantDecl", "name": "DAC_3", "type": { @@ -26402,35 +26402,35 @@ ] }, { - "id": "0x7f0da6be0e68", + "id": "0x7feb10e5aef8", "kind": "IfStmt", "range": { "begin": { - "offset": 26401, - "line": 857, + "offset": 26134, + "line": 849, "col": 5, "tokLen": 2 }, "end": { - "offset": 26452, - "line": 858, + "offset": 26185, + "line": 850, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be0dd0", + "id": "0x7feb10e5ae60", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26405, - "line": 857, + "offset": 26138, + "line": 849, "col": 9, "tokLen": 1 }, "end": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 } @@ -26442,16 +26442,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bdfb08", + "id": "0x7feb10e9ab98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26405, + "offset": 26138, "col": 9, "tokLen": 1 }, "end": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 } @@ -26463,16 +26463,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bdfaf0", + "id": "0x7feb10e9ab80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26407, + "offset": 26140, "col": 11, "tokLen": 2 }, "end": { - "offset": 26407, + "offset": 26140, "col": 11, "tokLen": 2 } @@ -26484,16 +26484,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bdfad0", + "id": "0x7feb10e9ab60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26407, + "offset": 26140, "col": 11, "tokLen": 2 }, "end": { - "offset": 26407, + "offset": 26140, "col": 11, "tokLen": 2 } @@ -26503,7 +26503,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26514,16 +26514,16 @@ ] }, { - "id": "0x7f0da6e548a8", + "id": "0x7feb10e99938", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26405, + "offset": 26138, "col": 9, "tokLen": 1 }, "end": { - "offset": 26405, + "offset": 26138, "col": 9, "tokLen": 1 } @@ -26531,11 +26531,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26544,16 +26544,16 @@ } }, { - "id": "0x7f0da6bdfab8", + "id": "0x7feb10e9ab48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 }, "end": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 } @@ -26565,16 +26565,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6e548c8", + "id": "0x7feb10e99958", "kind": "StringLiteral", "range": { "begin": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 }, "end": { - "offset": 26410, + "offset": 26143, "col": 14, "tokLen": 7 } @@ -26590,16 +26590,16 @@ ] }, { - "id": "0x7f0da6be0d98", + "id": "0x7feb10e5ae28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26421, + "offset": 26154, "col": 25, "tokLen": 1 }, "end": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 } @@ -26611,16 +26611,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be0d80", + "id": "0x7feb10e5ae10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26423, + "offset": 26156, "col": 27, "tokLen": 2 }, "end": { - "offset": 26423, + "offset": 26156, "col": 27, "tokLen": 2 } @@ -26632,16 +26632,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be0d60", + "id": "0x7feb10e5adf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26423, + "offset": 26156, "col": 27, "tokLen": 2 }, "end": { - "offset": 26423, + "offset": 26156, "col": 27, "tokLen": 2 } @@ -26651,7 +26651,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26662,16 +26662,16 @@ ] }, { - "id": "0x7f0da6bdfb40", + "id": "0x7feb10e9abd0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26421, + "offset": 26154, "col": 25, "tokLen": 1 }, "end": { - "offset": 26421, + "offset": 26154, "col": 25, "tokLen": 1 } @@ -26679,11 +26679,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26692,16 +26692,16 @@ } }, { - "id": "0x7f0da6be0d48", + "id": "0x7feb10e5add8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 }, "end": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 } @@ -26713,16 +26713,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bdfb60", + "id": "0x7feb10e9abf0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 }, "end": { - "offset": 26426, + "offset": 26159, "col": 30, "tokLen": 3 } @@ -26740,33 +26740,33 @@ ] }, { - "id": "0x7f0da6be0e58", + "id": "0x7feb10e5aee8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26439, - "line": 858, + "offset": 26172, + "line": 850, "col": 9, "tokLen": 6 }, "end": { - "offset": 26452, + "offset": 26185, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be0e28", + "id": "0x7feb10e5aeb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26446, + "offset": 26179, "col": 16, "tokLen": 4 }, "end": { - "offset": 26452, + "offset": 26185, "col": 22, "tokLen": 5 } @@ -26776,7 +26776,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdba0", + "id": "0x37fee890", "kind": "EnumConstantDecl", "name": "DAC_4", "type": { @@ -26789,35 +26789,35 @@ ] }, { - "id": "0x7f0da6be3448", + "id": "0x7feb10e5d4d8", "kind": "IfStmt", "range": { "begin": { - "offset": 26463, - "line": 859, + "offset": 26196, + "line": 851, "col": 5, "tokLen": 2 }, "end": { - "offset": 26514, - "line": 860, + "offset": 26247, + "line": 852, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be33b0", + "id": "0x7feb10e5d440", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26467, - "line": 859, + "offset": 26200, + "line": 851, "col": 9, "tokLen": 1 }, "end": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 } @@ -26829,16 +26829,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6be20e8", + "id": "0x7feb10e5c178", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26467, + "offset": 26200, "col": 9, "tokLen": 1 }, "end": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 } @@ -26850,16 +26850,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be20d0", + "id": "0x7feb10e5c160", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26469, + "offset": 26202, "col": 11, "tokLen": 2 }, "end": { - "offset": 26469, + "offset": 26202, "col": 11, "tokLen": 2 } @@ -26871,16 +26871,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be20b0", + "id": "0x7feb10e5c140", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26469, + "offset": 26202, "col": 11, "tokLen": 2 }, "end": { - "offset": 26469, + "offset": 26202, "col": 11, "tokLen": 2 } @@ -26890,7 +26890,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -26901,16 +26901,16 @@ ] }, { - "id": "0x7f0da6be0e88", + "id": "0x7feb10e5af18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26467, + "offset": 26200, "col": 9, "tokLen": 1 }, "end": { - "offset": 26467, + "offset": 26200, "col": 9, "tokLen": 1 } @@ -26918,11 +26918,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -26931,16 +26931,16 @@ } }, { - "id": "0x7f0da6be2098", + "id": "0x7feb10e5c128", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 }, "end": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 } @@ -26952,16 +26952,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be0ea8", + "id": "0x7feb10e5af38", "kind": "StringLiteral", "range": { "begin": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 }, "end": { - "offset": 26472, + "offset": 26205, "col": 14, "tokLen": 7 } @@ -26977,16 +26977,16 @@ ] }, { - "id": "0x7f0da6be3378", + "id": "0x7feb10e5d408", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26483, + "offset": 26216, "col": 25, "tokLen": 1 }, "end": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 } @@ -26998,16 +26998,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be3360", + "id": "0x7feb10e5d3f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26485, + "offset": 26218, "col": 27, "tokLen": 2 }, "end": { - "offset": 26485, + "offset": 26218, "col": 27, "tokLen": 2 } @@ -27019,16 +27019,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be3340", + "id": "0x7feb10e5d3d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26485, + "offset": 26218, "col": 27, "tokLen": 2 }, "end": { - "offset": 26485, + "offset": 26218, "col": 27, "tokLen": 2 } @@ -27038,7 +27038,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27049,16 +27049,16 @@ ] }, { - "id": "0x7f0da6be2120", + "id": "0x7feb10e5c1b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26483, + "offset": 26216, "col": 25, "tokLen": 1 }, "end": { - "offset": 26483, + "offset": 26216, "col": 25, "tokLen": 1 } @@ -27066,11 +27066,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27079,16 +27079,16 @@ } }, { - "id": "0x7f0da6be3328", + "id": "0x7feb10e5d3b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 }, "end": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 } @@ -27100,16 +27100,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be2140", + "id": "0x7feb10e5c1d0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 }, "end": { - "offset": 26488, + "offset": 26221, "col": 30, "tokLen": 3 } @@ -27127,33 +27127,33 @@ ] }, { - "id": "0x7f0da6be3438", + "id": "0x7feb10e5d4c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26501, - "line": 860, + "offset": 26234, + "line": 852, "col": 9, "tokLen": 6 }, "end": { - "offset": 26514, + "offset": 26247, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be3408", + "id": "0x7feb10e5d498", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26508, + "offset": 26241, "col": 16, "tokLen": 4 }, "end": { - "offset": 26514, + "offset": 26247, "col": 22, "tokLen": 5 } @@ -27163,7 +27163,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdbf0", + "id": "0x37fee8e0", "kind": "EnumConstantDecl", "name": "DAC_5", "type": { @@ -27176,35 +27176,35 @@ ] }, { - "id": "0x7f0da6be5a28", + "id": "0x7feb10e5fab8", "kind": "IfStmt", "range": { "begin": { - "offset": 26525, - "line": 861, + "offset": 26258, + "line": 853, "col": 5, "tokLen": 2 }, "end": { - "offset": 26576, - "line": 862, + "offset": 26309, + "line": 854, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be5990", + "id": "0x7feb10e5fa20", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26529, - "line": 861, + "offset": 26262, + "line": 853, "col": 9, "tokLen": 1 }, "end": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 } @@ -27216,16 +27216,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6be46c8", + "id": "0x7feb10e5e758", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26529, + "offset": 26262, "col": 9, "tokLen": 1 }, "end": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 } @@ -27237,16 +27237,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be46b0", + "id": "0x7feb10e5e740", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26531, + "offset": 26264, "col": 11, "tokLen": 2 }, "end": { - "offset": 26531, + "offset": 26264, "col": 11, "tokLen": 2 } @@ -27258,16 +27258,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be4690", + "id": "0x7feb10e5e720", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26531, + "offset": 26264, "col": 11, "tokLen": 2 }, "end": { - "offset": 26531, + "offset": 26264, "col": 11, "tokLen": 2 } @@ -27277,7 +27277,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27288,16 +27288,16 @@ ] }, { - "id": "0x7f0da6be3468", + "id": "0x7feb10e5d4f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26529, + "offset": 26262, "col": 9, "tokLen": 1 }, "end": { - "offset": 26529, + "offset": 26262, "col": 9, "tokLen": 1 } @@ -27305,11 +27305,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27318,16 +27318,16 @@ } }, { - "id": "0x7f0da6be4678", + "id": "0x7feb10e5e708", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 }, "end": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 } @@ -27339,16 +27339,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be3488", + "id": "0x7feb10e5d518", "kind": "StringLiteral", "range": { "begin": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 }, "end": { - "offset": 26534, + "offset": 26267, "col": 14, "tokLen": 7 } @@ -27364,16 +27364,16 @@ ] }, { - "id": "0x7f0da6be5958", + "id": "0x7feb10e5f9e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26545, + "offset": 26278, "col": 25, "tokLen": 1 }, "end": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 } @@ -27385,16 +27385,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be5940", + "id": "0x7feb10e5f9d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26547, + "offset": 26280, "col": 27, "tokLen": 2 }, "end": { - "offset": 26547, + "offset": 26280, "col": 27, "tokLen": 2 } @@ -27406,16 +27406,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be5920", + "id": "0x7feb10e5f9b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26547, + "offset": 26280, "col": 27, "tokLen": 2 }, "end": { - "offset": 26547, + "offset": 26280, "col": 27, "tokLen": 2 } @@ -27425,7 +27425,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27436,16 +27436,16 @@ ] }, { - "id": "0x7f0da6be4700", + "id": "0x7feb10e5e790", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26545, + "offset": 26278, "col": 25, "tokLen": 1 }, "end": { - "offset": 26545, + "offset": 26278, "col": 25, "tokLen": 1 } @@ -27453,11 +27453,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27466,16 +27466,16 @@ } }, { - "id": "0x7f0da6be5908", + "id": "0x7feb10e5f998", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 }, "end": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 } @@ -27487,16 +27487,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be4720", + "id": "0x7feb10e5e7b0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 }, "end": { - "offset": 26550, + "offset": 26283, "col": 30, "tokLen": 3 } @@ -27514,33 +27514,33 @@ ] }, { - "id": "0x7f0da6be5a18", + "id": "0x7feb10e5faa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26563, - "line": 862, + "offset": 26296, + "line": 854, "col": 9, "tokLen": 6 }, "end": { - "offset": 26576, + "offset": 26309, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be59e8", + "id": "0x7feb10e5fa78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26570, + "offset": 26303, "col": 16, "tokLen": 4 }, "end": { - "offset": 26576, + "offset": 26309, "col": 22, "tokLen": 5 } @@ -27550,7 +27550,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdc40", + "id": "0x37fee930", "kind": "EnumConstantDecl", "name": "DAC_6", "type": { @@ -27563,35 +27563,35 @@ ] }, { - "id": "0x7f0da6be8008", + "id": "0x7feb10e62098", "kind": "IfStmt", "range": { "begin": { - "offset": 26587, - "line": 863, + "offset": 26320, + "line": 855, "col": 5, "tokLen": 2 }, "end": { - "offset": 26638, - "line": 864, + "offset": 26371, + "line": 856, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be7f70", + "id": "0x7feb10e62000", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26591, - "line": 863, + "offset": 26324, + "line": 855, "col": 9, "tokLen": 1 }, "end": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 } @@ -27603,16 +27603,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6be6ca8", + "id": "0x7feb10e60d38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26591, + "offset": 26324, "col": 9, "tokLen": 1 }, "end": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 } @@ -27624,16 +27624,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be6c90", + "id": "0x7feb10e60d20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26593, + "offset": 26326, "col": 11, "tokLen": 2 }, "end": { - "offset": 26593, + "offset": 26326, "col": 11, "tokLen": 2 } @@ -27645,16 +27645,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be6c70", + "id": "0x7feb10e60d00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26593, + "offset": 26326, "col": 11, "tokLen": 2 }, "end": { - "offset": 26593, + "offset": 26326, "col": 11, "tokLen": 2 } @@ -27664,7 +27664,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27675,16 +27675,16 @@ ] }, { - "id": "0x7f0da6be5a48", + "id": "0x7feb10e5fad8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26591, + "offset": 26324, "col": 9, "tokLen": 1 }, "end": { - "offset": 26591, + "offset": 26324, "col": 9, "tokLen": 1 } @@ -27692,11 +27692,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27705,16 +27705,16 @@ } }, { - "id": "0x7f0da6be6c58", + "id": "0x7feb10e60ce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 }, "end": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 } @@ -27726,16 +27726,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be5a68", + "id": "0x7feb10e5faf8", "kind": "StringLiteral", "range": { "begin": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 }, "end": { - "offset": 26596, + "offset": 26329, "col": 14, "tokLen": 7 } @@ -27751,16 +27751,16 @@ ] }, { - "id": "0x7f0da6be7f38", + "id": "0x7feb10e61fc8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26607, + "offset": 26340, "col": 25, "tokLen": 1 }, "end": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 } @@ -27772,16 +27772,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be7f20", + "id": "0x7feb10e61fb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26609, + "offset": 26342, "col": 27, "tokLen": 2 }, "end": { - "offset": 26609, + "offset": 26342, "col": 27, "tokLen": 2 } @@ -27793,16 +27793,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be7f00", + "id": "0x7feb10e61f90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26609, + "offset": 26342, "col": 27, "tokLen": 2 }, "end": { - "offset": 26609, + "offset": 26342, "col": 27, "tokLen": 2 } @@ -27812,7 +27812,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -27823,16 +27823,16 @@ ] }, { - "id": "0x7f0da6be6ce0", + "id": "0x7feb10e60d70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26607, + "offset": 26340, "col": 25, "tokLen": 1 }, "end": { - "offset": 26607, + "offset": 26340, "col": 25, "tokLen": 1 } @@ -27840,11 +27840,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -27853,16 +27853,16 @@ } }, { - "id": "0x7f0da6be7ee8", + "id": "0x7feb10e61f78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 }, "end": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 } @@ -27874,16 +27874,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be6d00", + "id": "0x7feb10e60d90", "kind": "StringLiteral", "range": { "begin": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 }, "end": { - "offset": 26612, + "offset": 26345, "col": 30, "tokLen": 3 } @@ -27901,33 +27901,33 @@ ] }, { - "id": "0x7f0da6be7ff8", + "id": "0x7feb10e62088", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26625, - "line": 864, + "offset": 26358, + "line": 856, "col": 9, "tokLen": 6 }, "end": { - "offset": 26638, + "offset": 26371, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6be7fc8", + "id": "0x7feb10e62058", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26632, + "offset": 26365, "col": 16, "tokLen": 4 }, "end": { - "offset": 26638, + "offset": 26371, "col": 22, "tokLen": 5 } @@ -27937,7 +27937,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdc90", + "id": "0x37fee980", "kind": "EnumConstantDecl", "name": "DAC_7", "type": { @@ -27950,35 +27950,35 @@ ] }, { - "id": "0x7f0da6bea5e8", + "id": "0x7feb10e64678", "kind": "IfStmt", "range": { "begin": { - "offset": 26649, - "line": 865, + "offset": 26382, + "line": 857, "col": 5, "tokLen": 2 }, "end": { - "offset": 26700, - "line": 866, + "offset": 26433, + "line": 858, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bea550", + "id": "0x7feb10e645e0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26653, - "line": 865, + "offset": 26386, + "line": 857, "col": 9, "tokLen": 1 }, "end": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 } @@ -27990,16 +27990,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6be9288", + "id": "0x7feb10e63318", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26653, + "offset": 26386, "col": 9, "tokLen": 1 }, "end": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 } @@ -28011,16 +28011,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6be9270", + "id": "0x7feb10e63300", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26655, + "offset": 26388, "col": 11, "tokLen": 2 }, "end": { - "offset": 26655, + "offset": 26388, "col": 11, "tokLen": 2 } @@ -28032,16 +28032,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6be9250", + "id": "0x7feb10e632e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26655, + "offset": 26388, "col": 11, "tokLen": 2 }, "end": { - "offset": 26655, + "offset": 26388, "col": 11, "tokLen": 2 } @@ -28051,7 +28051,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28062,16 +28062,16 @@ ] }, { - "id": "0x7f0da6be8028", + "id": "0x7feb10e620b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26653, + "offset": 26386, "col": 9, "tokLen": 1 }, "end": { - "offset": 26653, + "offset": 26386, "col": 9, "tokLen": 1 } @@ -28079,11 +28079,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28092,16 +28092,16 @@ } }, { - "id": "0x7f0da6be9238", + "id": "0x7feb10e632c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 }, "end": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 } @@ -28113,16 +28113,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be8048", + "id": "0x7feb10e620d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 }, "end": { - "offset": 26658, + "offset": 26391, "col": 14, "tokLen": 7 } @@ -28138,16 +28138,16 @@ ] }, { - "id": "0x7f0da6bea518", + "id": "0x7feb10e645a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26669, + "offset": 26402, "col": 25, "tokLen": 1 }, "end": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 } @@ -28159,16 +28159,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bea500", + "id": "0x7feb10e64590", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26671, + "offset": 26404, "col": 27, "tokLen": 2 }, "end": { - "offset": 26671, + "offset": 26404, "col": 27, "tokLen": 2 } @@ -28180,16 +28180,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bea4e0", + "id": "0x7feb10e64570", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26671, + "offset": 26404, "col": 27, "tokLen": 2 }, "end": { - "offset": 26671, + "offset": 26404, "col": 27, "tokLen": 2 } @@ -28199,7 +28199,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28210,16 +28210,16 @@ ] }, { - "id": "0x7f0da6be92c0", + "id": "0x7feb10e63350", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26669, + "offset": 26402, "col": 25, "tokLen": 1 }, "end": { - "offset": 26669, + "offset": 26402, "col": 25, "tokLen": 1 } @@ -28227,11 +28227,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28240,16 +28240,16 @@ } }, { - "id": "0x7f0da6bea4c8", + "id": "0x7feb10e64558", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 }, "end": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 } @@ -28261,16 +28261,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6be92e0", + "id": "0x7feb10e63370", "kind": "StringLiteral", "range": { "begin": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 }, "end": { - "offset": 26674, + "offset": 26407, "col": 30, "tokLen": 3 } @@ -28288,33 +28288,33 @@ ] }, { - "id": "0x7f0da6bea5d8", + "id": "0x7feb10e64668", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26687, - "line": 866, + "offset": 26420, + "line": 858, "col": 9, "tokLen": 6 }, "end": { - "offset": 26700, + "offset": 26433, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bea5a8", + "id": "0x7feb10e64638", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26694, + "offset": 26427, "col": 16, "tokLen": 4 }, "end": { - "offset": 26700, + "offset": 26433, "col": 22, "tokLen": 5 } @@ -28324,7 +28324,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdce0", + "id": "0x37fee9d0", "kind": "EnumConstantDecl", "name": "DAC_8", "type": { @@ -28337,35 +28337,35 @@ ] }, { - "id": "0x7f0da6becbc8", + "id": "0x7feb10e66c58", "kind": "IfStmt", "range": { "begin": { - "offset": 26711, - "line": 867, + "offset": 26444, + "line": 859, "col": 5, "tokLen": 2 }, "end": { - "offset": 26762, - "line": 868, + "offset": 26495, + "line": 860, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6becb30", + "id": "0x7feb10e66bc0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26715, - "line": 867, + "offset": 26448, + "line": 859, "col": 9, "tokLen": 1 }, "end": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 } @@ -28377,16 +28377,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6beb868", + "id": "0x7feb10e658f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26715, + "offset": 26448, "col": 9, "tokLen": 1 }, "end": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 } @@ -28398,16 +28398,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6beb850", + "id": "0x7feb10e658e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26717, + "offset": 26450, "col": 11, "tokLen": 2 }, "end": { - "offset": 26717, + "offset": 26450, "col": 11, "tokLen": 2 } @@ -28419,16 +28419,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6beb830", + "id": "0x7feb10e658c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26717, + "offset": 26450, "col": 11, "tokLen": 2 }, "end": { - "offset": 26717, + "offset": 26450, "col": 11, "tokLen": 2 } @@ -28438,7 +28438,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28449,16 +28449,16 @@ ] }, { - "id": "0x7f0da6bea608", + "id": "0x7feb10e64698", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26715, + "offset": 26448, "col": 9, "tokLen": 1 }, "end": { - "offset": 26715, + "offset": 26448, "col": 9, "tokLen": 1 } @@ -28466,11 +28466,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28479,16 +28479,16 @@ } }, { - "id": "0x7f0da6beb818", + "id": "0x7feb10e658a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 }, "end": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 } @@ -28500,16 +28500,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bea628", + "id": "0x7feb10e646b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 }, "end": { - "offset": 26720, + "offset": 26453, "col": 14, "tokLen": 7 } @@ -28525,16 +28525,16 @@ ] }, { - "id": "0x7f0da6becaf8", + "id": "0x7feb10e66b88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26731, + "offset": 26464, "col": 25, "tokLen": 1 }, "end": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 } @@ -28546,16 +28546,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6becae0", + "id": "0x7feb10e66b70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26733, + "offset": 26466, "col": 27, "tokLen": 2 }, "end": { - "offset": 26733, + "offset": 26466, "col": 27, "tokLen": 2 } @@ -28567,16 +28567,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6becac0", + "id": "0x7feb10e66b50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26733, + "offset": 26466, "col": 27, "tokLen": 2 }, "end": { - "offset": 26733, + "offset": 26466, "col": 27, "tokLen": 2 } @@ -28586,7 +28586,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28597,16 +28597,16 @@ ] }, { - "id": "0x7f0da6beb8a0", + "id": "0x7feb10e65930", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26731, + "offset": 26464, "col": 25, "tokLen": 1 }, "end": { - "offset": 26731, + "offset": 26464, "col": 25, "tokLen": 1 } @@ -28614,11 +28614,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28627,16 +28627,16 @@ } }, { - "id": "0x7f0da6becaa8", + "id": "0x7feb10e66b38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 }, "end": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 } @@ -28648,16 +28648,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6beb8c0", + "id": "0x7feb10e65950", "kind": "StringLiteral", "range": { "begin": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 }, "end": { - "offset": 26736, + "offset": 26469, "col": 30, "tokLen": 3 } @@ -28675,33 +28675,33 @@ ] }, { - "id": "0x7f0da6becbb8", + "id": "0x7feb10e66c48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26749, - "line": 868, + "offset": 26482, + "line": 860, "col": 9, "tokLen": 6 }, "end": { - "offset": 26762, + "offset": 26495, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6becb88", + "id": "0x7feb10e66c18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26756, + "offset": 26489, "col": 16, "tokLen": 4 }, "end": { - "offset": 26762, + "offset": 26495, "col": 22, "tokLen": 5 } @@ -28711,7 +28711,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdd30", + "id": "0x37feea20", "kind": "EnumConstantDecl", "name": "DAC_9", "type": { @@ -28724,35 +28724,35 @@ ] }, { - "id": "0x7f0da6bef1a8", + "id": "0x7feb10e69238", "kind": "IfStmt", "range": { "begin": { - "offset": 26773, - "line": 869, + "offset": 26506, + "line": 861, "col": 5, "tokLen": 2 }, "end": { - "offset": 26826, - "line": 870, + "offset": 26559, + "line": 862, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bef110", + "id": "0x7feb10e691a0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26777, - "line": 869, + "offset": 26510, + "line": 861, "col": 9, "tokLen": 1 }, "end": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 } @@ -28764,16 +28764,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bede48", + "id": "0x7feb10e67ed8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26777, + "offset": 26510, "col": 9, "tokLen": 1 }, "end": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 } @@ -28785,16 +28785,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bede30", + "id": "0x7feb10e67ec0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26779, + "offset": 26512, "col": 11, "tokLen": 2 }, "end": { - "offset": 26779, + "offset": 26512, "col": 11, "tokLen": 2 } @@ -28806,16 +28806,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bede10", + "id": "0x7feb10e67ea0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26779, + "offset": 26512, "col": 11, "tokLen": 2 }, "end": { - "offset": 26779, + "offset": 26512, "col": 11, "tokLen": 2 } @@ -28825,7 +28825,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28836,16 +28836,16 @@ ] }, { - "id": "0x7f0da6becbe8", + "id": "0x7feb10e66c78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26777, + "offset": 26510, "col": 9, "tokLen": 1 }, "end": { - "offset": 26777, + "offset": 26510, "col": 9, "tokLen": 1 } @@ -28853,11 +28853,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -28866,16 +28866,16 @@ } }, { - "id": "0x7f0da6beddf8", + "id": "0x7feb10e67e88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 }, "end": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 } @@ -28887,16 +28887,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6becc08", + "id": "0x7feb10e66c98", "kind": "StringLiteral", "range": { "begin": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 }, "end": { - "offset": 26782, + "offset": 26515, "col": 14, "tokLen": 8 } @@ -28912,16 +28912,16 @@ ] }, { - "id": "0x7f0da6bef0d8", + "id": "0x7feb10e69168", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26794, + "offset": 26527, "col": 26, "tokLen": 1 }, "end": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 } @@ -28933,16 +28933,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bef0c0", + "id": "0x7feb10e69150", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26796, + "offset": 26529, "col": 28, "tokLen": 2 }, "end": { - "offset": 26796, + "offset": 26529, "col": 28, "tokLen": 2 } @@ -28954,16 +28954,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bef0a0", + "id": "0x7feb10e69130", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26796, + "offset": 26529, "col": 28, "tokLen": 2 }, "end": { - "offset": 26796, + "offset": 26529, "col": 28, "tokLen": 2 } @@ -28973,7 +28973,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -28984,16 +28984,16 @@ ] }, { - "id": "0x7f0da6bede80", + "id": "0x7feb10e67f10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26794, + "offset": 26527, "col": 26, "tokLen": 1 }, "end": { - "offset": 26794, + "offset": 26527, "col": 26, "tokLen": 1 } @@ -29001,11 +29001,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29014,16 +29014,16 @@ } }, { - "id": "0x7f0da6bef088", + "id": "0x7feb10e69118", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 }, "end": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 } @@ -29035,16 +29035,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bedea0", + "id": "0x7feb10e67f30", "kind": "StringLiteral", "range": { "begin": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 }, "end": { - "offset": 26799, + "offset": 26532, "col": 31, "tokLen": 4 } @@ -29062,33 +29062,33 @@ ] }, { - "id": "0x7f0da6bef198", + "id": "0x7feb10e69228", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26813, - "line": 870, + "offset": 26546, + "line": 862, "col": 9, "tokLen": 6 }, "end": { - "offset": 26826, + "offset": 26559, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bef168", + "id": "0x7feb10e691f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26820, + "offset": 26553, "col": 16, "tokLen": 4 }, "end": { - "offset": 26826, + "offset": 26559, "col": 22, "tokLen": 6 } @@ -29098,7 +29098,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdd80", + "id": "0x37feea70", "kind": "EnumConstantDecl", "name": "DAC_10", "type": { @@ -29111,35 +29111,35 @@ ] }, { - "id": "0x7f0da6bf1788", + "id": "0x7feb10e6b818", "kind": "IfStmt", "range": { "begin": { - "offset": 26838, - "line": 871, + "offset": 26571, + "line": 863, "col": 5, "tokLen": 2 }, "end": { - "offset": 26891, - "line": 872, + "offset": 26624, + "line": 864, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf16f0", + "id": "0x7feb10e6b780", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26842, - "line": 871, + "offset": 26575, + "line": 863, "col": 9, "tokLen": 1 }, "end": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 } @@ -29151,16 +29151,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf0428", + "id": "0x7feb10e6a4b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26842, + "offset": 26575, "col": 9, "tokLen": 1 }, "end": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 } @@ -29172,16 +29172,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf0410", + "id": "0x7feb10e6a4a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26844, + "offset": 26577, "col": 11, "tokLen": 2 }, "end": { - "offset": 26844, + "offset": 26577, "col": 11, "tokLen": 2 } @@ -29193,16 +29193,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf03f0", + "id": "0x7feb10e6a480", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26844, + "offset": 26577, "col": 11, "tokLen": 2 }, "end": { - "offset": 26844, + "offset": 26577, "col": 11, "tokLen": 2 } @@ -29212,7 +29212,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29223,16 +29223,16 @@ ] }, { - "id": "0x7f0da6bef1c8", + "id": "0x7feb10e69258", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26842, + "offset": 26575, "col": 9, "tokLen": 1 }, "end": { - "offset": 26842, + "offset": 26575, "col": 9, "tokLen": 1 } @@ -29240,11 +29240,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29253,16 +29253,16 @@ } }, { - "id": "0x7f0da6bf03d8", + "id": "0x7feb10e6a468", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 }, "end": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 } @@ -29274,16 +29274,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bef1e8", + "id": "0x7feb10e69278", "kind": "StringLiteral", "range": { "begin": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 }, "end": { - "offset": 26847, + "offset": 26580, "col": 14, "tokLen": 8 } @@ -29299,16 +29299,16 @@ ] }, { - "id": "0x7f0da6bf16b8", + "id": "0x7feb10e6b748", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26859, + "offset": 26592, "col": 26, "tokLen": 1 }, "end": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 } @@ -29320,16 +29320,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf16a0", + "id": "0x7feb10e6b730", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26861, + "offset": 26594, "col": 28, "tokLen": 2 }, "end": { - "offset": 26861, + "offset": 26594, "col": 28, "tokLen": 2 } @@ -29341,16 +29341,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf1680", + "id": "0x7feb10e6b710", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26861, + "offset": 26594, "col": 28, "tokLen": 2 }, "end": { - "offset": 26861, + "offset": 26594, "col": 28, "tokLen": 2 } @@ -29360,7 +29360,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29371,16 +29371,16 @@ ] }, { - "id": "0x7f0da6bf0460", + "id": "0x7feb10e6a4f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26859, + "offset": 26592, "col": 26, "tokLen": 1 }, "end": { - "offset": 26859, + "offset": 26592, "col": 26, "tokLen": 1 } @@ -29388,11 +29388,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29401,16 +29401,16 @@ } }, { - "id": "0x7f0da6bf1668", + "id": "0x7feb10e6b6f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 }, "end": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 } @@ -29422,16 +29422,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf0480", + "id": "0x7feb10e6a510", "kind": "StringLiteral", "range": { "begin": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 }, "end": { - "offset": 26864, + "offset": 26597, "col": 31, "tokLen": 4 } @@ -29449,33 +29449,33 @@ ] }, { - "id": "0x7f0da6bf1778", + "id": "0x7feb10e6b808", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26878, - "line": 872, + "offset": 26611, + "line": 864, "col": 9, "tokLen": 6 }, "end": { - "offset": 26891, + "offset": 26624, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf1748", + "id": "0x7feb10e6b7d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26885, + "offset": 26618, "col": 16, "tokLen": 4 }, "end": { - "offset": 26891, + "offset": 26624, "col": 22, "tokLen": 6 } @@ -29485,7 +29485,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbddd0", + "id": "0x37feeac0", "kind": "EnumConstantDecl", "name": "DAC_11", "type": { @@ -29498,35 +29498,35 @@ ] }, { - "id": "0x7f0da6bf3d68", + "id": "0x7feb10e6ddf8", "kind": "IfStmt", "range": { "begin": { - "offset": 26903, - "line": 873, + "offset": 26636, + "line": 865, "col": 5, "tokLen": 2 }, "end": { - "offset": 26956, - "line": 874, + "offset": 26689, + "line": 866, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf3cd0", + "id": "0x7feb10e6dd60", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26907, - "line": 873, + "offset": 26640, + "line": 865, "col": 9, "tokLen": 1 }, "end": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 } @@ -29538,16 +29538,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf2a08", + "id": "0x7feb10e6ca98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26907, + "offset": 26640, "col": 9, "tokLen": 1 }, "end": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 } @@ -29559,16 +29559,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf29f0", + "id": "0x7feb10e6ca80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26909, + "offset": 26642, "col": 11, "tokLen": 2 }, "end": { - "offset": 26909, + "offset": 26642, "col": 11, "tokLen": 2 } @@ -29580,16 +29580,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf29d0", + "id": "0x7feb10e6ca60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26909, + "offset": 26642, "col": 11, "tokLen": 2 }, "end": { - "offset": 26909, + "offset": 26642, "col": 11, "tokLen": 2 } @@ -29599,7 +29599,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29610,16 +29610,16 @@ ] }, { - "id": "0x7f0da6bf17a8", + "id": "0x7feb10e6b838", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26907, + "offset": 26640, "col": 9, "tokLen": 1 }, "end": { - "offset": 26907, + "offset": 26640, "col": 9, "tokLen": 1 } @@ -29627,11 +29627,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29640,16 +29640,16 @@ } }, { - "id": "0x7f0da6bf29b8", + "id": "0x7feb10e6ca48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 }, "end": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 } @@ -29661,16 +29661,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf17c8", + "id": "0x7feb10e6b858", "kind": "StringLiteral", "range": { "begin": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 }, "end": { - "offset": 26912, + "offset": 26645, "col": 14, "tokLen": 8 } @@ -29686,16 +29686,16 @@ ] }, { - "id": "0x7f0da6bf3c98", + "id": "0x7feb10e6dd28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26924, + "offset": 26657, "col": 26, "tokLen": 1 }, "end": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 } @@ -29707,16 +29707,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf3c80", + "id": "0x7feb10e6dd10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26926, + "offset": 26659, "col": 28, "tokLen": 2 }, "end": { - "offset": 26926, + "offset": 26659, "col": 28, "tokLen": 2 } @@ -29728,16 +29728,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf3c60", + "id": "0x7feb10e6dcf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26926, + "offset": 26659, "col": 28, "tokLen": 2 }, "end": { - "offset": 26926, + "offset": 26659, "col": 28, "tokLen": 2 } @@ -29747,7 +29747,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29758,16 +29758,16 @@ ] }, { - "id": "0x7f0da6bf2a40", + "id": "0x7feb10e6cad0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26924, + "offset": 26657, "col": 26, "tokLen": 1 }, "end": { - "offset": 26924, + "offset": 26657, "col": 26, "tokLen": 1 } @@ -29775,11 +29775,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -29788,16 +29788,16 @@ } }, { - "id": "0x7f0da6bf3c48", + "id": "0x7feb10e6dcd8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 }, "end": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 } @@ -29809,16 +29809,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf2a60", + "id": "0x7feb10e6caf0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 }, "end": { - "offset": 26929, + "offset": 26662, "col": 31, "tokLen": 4 } @@ -29836,33 +29836,33 @@ ] }, { - "id": "0x7f0da6bf3d58", + "id": "0x7feb10e6dde8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 26943, - "line": 874, + "offset": 26676, + "line": 866, "col": 9, "tokLen": 6 }, "end": { - "offset": 26956, + "offset": 26689, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf3d28", + "id": "0x7feb10e6ddb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26950, + "offset": 26683, "col": 16, "tokLen": 4 }, "end": { - "offset": 26956, + "offset": 26689, "col": 22, "tokLen": 6 } @@ -29872,7 +29872,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbde20", + "id": "0x37feeb10", "kind": "EnumConstantDecl", "name": "DAC_12", "type": { @@ -29885,35 +29885,35 @@ ] }, { - "id": "0x7f0da6bf6348", + "id": "0x7feb10e703d8", "kind": "IfStmt", "range": { "begin": { - "offset": 26968, - "line": 875, + "offset": 26701, + "line": 867, "col": 5, "tokLen": 2 }, "end": { - "offset": 27021, - "line": 876, + "offset": 26754, + "line": 868, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf62b0", + "id": "0x7feb10e70340", "kind": "BinaryOperator", "range": { "begin": { - "offset": 26972, - "line": 875, + "offset": 26705, + "line": 867, "col": 9, "tokLen": 1 }, "end": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 } @@ -29925,16 +29925,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf4fe8", + "id": "0x7feb10e6f078", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26972, + "offset": 26705, "col": 9, "tokLen": 1 }, "end": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 } @@ -29946,16 +29946,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf4fd0", + "id": "0x7feb10e6f060", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26974, + "offset": 26707, "col": 11, "tokLen": 2 }, "end": { - "offset": 26974, + "offset": 26707, "col": 11, "tokLen": 2 } @@ -29967,16 +29967,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf4fb0", + "id": "0x7feb10e6f040", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26974, + "offset": 26707, "col": 11, "tokLen": 2 }, "end": { - "offset": 26974, + "offset": 26707, "col": 11, "tokLen": 2 } @@ -29986,7 +29986,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -29997,16 +29997,16 @@ ] }, { - "id": "0x7f0da6bf3d88", + "id": "0x7feb10e6de18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26972, + "offset": 26705, "col": 9, "tokLen": 1 }, "end": { - "offset": 26972, + "offset": 26705, "col": 9, "tokLen": 1 } @@ -30014,11 +30014,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30027,16 +30027,16 @@ } }, { - "id": "0x7f0da6bf4f98", + "id": "0x7feb10e6f028", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 }, "end": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 } @@ -30048,16 +30048,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf3da8", + "id": "0x7feb10e6de38", "kind": "StringLiteral", "range": { "begin": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 }, "end": { - "offset": 26977, + "offset": 26710, "col": 14, "tokLen": 8 } @@ -30073,16 +30073,16 @@ ] }, { - "id": "0x7f0da6bf6278", + "id": "0x7feb10e70308", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 26989, + "offset": 26722, "col": 26, "tokLen": 1 }, "end": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 } @@ -30094,16 +30094,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf6260", + "id": "0x7feb10e702f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26991, + "offset": 26724, "col": 28, "tokLen": 2 }, "end": { - "offset": 26991, + "offset": 26724, "col": 28, "tokLen": 2 } @@ -30115,16 +30115,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf6240", + "id": "0x7feb10e702d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26991, + "offset": 26724, "col": 28, "tokLen": 2 }, "end": { - "offset": 26991, + "offset": 26724, "col": 28, "tokLen": 2 } @@ -30134,7 +30134,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30145,16 +30145,16 @@ ] }, { - "id": "0x7f0da6bf5020", + "id": "0x7feb10e6f0b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 26989, + "offset": 26722, "col": 26, "tokLen": 1 }, "end": { - "offset": 26989, + "offset": 26722, "col": 26, "tokLen": 1 } @@ -30162,11 +30162,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30175,16 +30175,16 @@ } }, { - "id": "0x7f0da6bf6228", + "id": "0x7feb10e702b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 }, "end": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 } @@ -30196,16 +30196,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf5040", + "id": "0x7feb10e6f0d0", "kind": "StringLiteral", "range": { "begin": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 }, "end": { - "offset": 26994, + "offset": 26727, "col": 31, "tokLen": 4 } @@ -30223,33 +30223,33 @@ ] }, { - "id": "0x7f0da6bf6338", + "id": "0x7feb10e703c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27008, - "line": 876, + "offset": 26741, + "line": 868, "col": 9, "tokLen": 6 }, "end": { - "offset": 27021, + "offset": 26754, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf6308", + "id": "0x7feb10e70398", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27015, + "offset": 26748, "col": 16, "tokLen": 4 }, "end": { - "offset": 27021, + "offset": 26754, "col": 22, "tokLen": 6 } @@ -30259,7 +30259,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbde70", + "id": "0x37feeb60", "kind": "EnumConstantDecl", "name": "DAC_13", "type": { @@ -30272,35 +30272,35 @@ ] }, { - "id": "0x7f0da6bf8928", + "id": "0x7feb10e729b8", "kind": "IfStmt", "range": { "begin": { - "offset": 27033, - "line": 877, + "offset": 26766, + "line": 869, "col": 5, "tokLen": 2 }, "end": { - "offset": 27086, - "line": 878, + "offset": 26819, + "line": 870, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf8890", + "id": "0x7feb10e72920", "kind": "BinaryOperator", "range": { "begin": { - "offset": 27037, - "line": 877, + "offset": 26770, + "line": 869, "col": 9, "tokLen": 1 }, "end": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 } @@ -30312,16 +30312,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf75c8", + "id": "0x7feb10e71658", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27037, + "offset": 26770, "col": 9, "tokLen": 1 }, "end": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 } @@ -30333,16 +30333,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf75b0", + "id": "0x7feb10e71640", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27039, + "offset": 26772, "col": 11, "tokLen": 2 }, "end": { - "offset": 27039, + "offset": 26772, "col": 11, "tokLen": 2 } @@ -30354,16 +30354,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf7590", + "id": "0x7feb10e71620", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27039, + "offset": 26772, "col": 11, "tokLen": 2 }, "end": { - "offset": 27039, + "offset": 26772, "col": 11, "tokLen": 2 } @@ -30373,7 +30373,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30384,16 +30384,16 @@ ] }, { - "id": "0x7f0da6bf6368", + "id": "0x7feb10e703f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27037, + "offset": 26770, "col": 9, "tokLen": 1 }, "end": { - "offset": 27037, + "offset": 26770, "col": 9, "tokLen": 1 } @@ -30401,11 +30401,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30414,16 +30414,16 @@ } }, { - "id": "0x7f0da6bf7578", + "id": "0x7feb10e71608", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 }, "end": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 } @@ -30435,16 +30435,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf6388", + "id": "0x7feb10e70418", "kind": "StringLiteral", "range": { "begin": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 }, "end": { - "offset": 27042, + "offset": 26775, "col": 14, "tokLen": 8 } @@ -30460,16 +30460,16 @@ ] }, { - "id": "0x7f0da6bf8858", + "id": "0x7feb10e728e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27054, + "offset": 26787, "col": 26, "tokLen": 1 }, "end": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 } @@ -30481,16 +30481,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf8840", + "id": "0x7feb10e728d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27056, + "offset": 26789, "col": 28, "tokLen": 2 }, "end": { - "offset": 27056, + "offset": 26789, "col": 28, "tokLen": 2 } @@ -30502,16 +30502,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf8820", + "id": "0x7feb10e728b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27056, + "offset": 26789, "col": 28, "tokLen": 2 }, "end": { - "offset": 27056, + "offset": 26789, "col": 28, "tokLen": 2 } @@ -30521,7 +30521,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30532,16 +30532,16 @@ ] }, { - "id": "0x7f0da6bf7600", + "id": "0x7feb10e71690", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27054, + "offset": 26787, "col": 26, "tokLen": 1 }, "end": { - "offset": 27054, + "offset": 26787, "col": 26, "tokLen": 1 } @@ -30549,11 +30549,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30562,16 +30562,16 @@ } }, { - "id": "0x7f0da6bf8808", + "id": "0x7feb10e72898", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 }, "end": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 } @@ -30583,16 +30583,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf7620", + "id": "0x7feb10e716b0", "kind": "StringLiteral", "range": { "begin": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 }, "end": { - "offset": 27059, + "offset": 26792, "col": 31, "tokLen": 4 } @@ -30610,33 +30610,33 @@ ] }, { - "id": "0x7f0da6bf8918", + "id": "0x7feb10e729a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27073, - "line": 878, + "offset": 26806, + "line": 870, "col": 9, "tokLen": 6 }, "end": { - "offset": 27086, + "offset": 26819, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bf88e8", + "id": "0x7feb10e72978", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27080, + "offset": 26813, "col": 16, "tokLen": 4 }, "end": { - "offset": 27086, + "offset": 26819, "col": 22, "tokLen": 6 } @@ -30646,7 +30646,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdec0", + "id": "0x37feebb0", "kind": "EnumConstantDecl", "name": "DAC_14", "type": { @@ -30659,35 +30659,35 @@ ] }, { - "id": "0x7f0da6bfaf08", + "id": "0x7feb10e74f98", "kind": "IfStmt", "range": { "begin": { - "offset": 27098, - "line": 879, + "offset": 26831, + "line": 871, "col": 5, "tokLen": 2 }, "end": { - "offset": 27151, - "line": 880, + "offset": 26884, + "line": 872, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bfae70", + "id": "0x7feb10e74f00", "kind": "BinaryOperator", "range": { "begin": { - "offset": 27102, - "line": 879, + "offset": 26835, + "line": 871, "col": 9, "tokLen": 1 }, "end": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 } @@ -30699,16 +30699,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bf9ba8", + "id": "0x7feb10e73c38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27102, + "offset": 26835, "col": 9, "tokLen": 1 }, "end": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 } @@ -30720,16 +30720,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bf9b90", + "id": "0x7feb10e73c20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27104, + "offset": 26837, "col": 11, "tokLen": 2 }, "end": { - "offset": 27104, + "offset": 26837, "col": 11, "tokLen": 2 } @@ -30741,16 +30741,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bf9b70", + "id": "0x7feb10e73c00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27104, + "offset": 26837, "col": 11, "tokLen": 2 }, "end": { - "offset": 27104, + "offset": 26837, "col": 11, "tokLen": 2 } @@ -30760,7 +30760,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30771,16 +30771,16 @@ ] }, { - "id": "0x7f0da6bf8948", + "id": "0x7feb10e729d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27102, + "offset": 26835, "col": 9, "tokLen": 1 }, "end": { - "offset": 27102, + "offset": 26835, "col": 9, "tokLen": 1 } @@ -30788,11 +30788,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30801,16 +30801,16 @@ } }, { - "id": "0x7f0da6bf9b58", + "id": "0x7feb10e73be8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 }, "end": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 } @@ -30822,16 +30822,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf8968", + "id": "0x7feb10e729f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 }, "end": { - "offset": 27107, + "offset": 26840, "col": 14, "tokLen": 8 } @@ -30847,16 +30847,16 @@ ] }, { - "id": "0x7f0da6bfae38", + "id": "0x7feb10e74ec8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27119, + "offset": 26852, "col": 26, "tokLen": 1 }, "end": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 } @@ -30868,16 +30868,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bfae20", + "id": "0x7feb10e74eb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27121, + "offset": 26854, "col": 28, "tokLen": 2 }, "end": { - "offset": 27121, + "offset": 26854, "col": 28, "tokLen": 2 } @@ -30889,16 +30889,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bfae00", + "id": "0x7feb10e74e90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27121, + "offset": 26854, "col": 28, "tokLen": 2 }, "end": { - "offset": 27121, + "offset": 26854, "col": 28, "tokLen": 2 } @@ -30908,7 +30908,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -30919,16 +30919,16 @@ ] }, { - "id": "0x7f0da6bf9be0", + "id": "0x7feb10e73c70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27119, + "offset": 26852, "col": 26, "tokLen": 1 }, "end": { - "offset": 27119, + "offset": 26852, "col": 26, "tokLen": 1 } @@ -30936,11 +30936,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -30949,16 +30949,16 @@ } }, { - "id": "0x7f0da6bfade8", + "id": "0x7feb10e74e78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 }, "end": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 } @@ -30970,16 +30970,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bf9c00", + "id": "0x7feb10e73c90", "kind": "StringLiteral", "range": { "begin": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 }, "end": { - "offset": 27124, + "offset": 26857, "col": 31, "tokLen": 4 } @@ -30997,33 +30997,33 @@ ] }, { - "id": "0x7f0da6bfaef8", + "id": "0x7feb10e74f88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27138, - "line": 880, + "offset": 26871, + "line": 872, "col": 9, "tokLen": 6 }, "end": { - "offset": 27151, + "offset": 26884, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bfaec8", + "id": "0x7feb10e74f58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27145, + "offset": 26878, "col": 16, "tokLen": 4 }, "end": { - "offset": 27151, + "offset": 26884, "col": 22, "tokLen": 6 } @@ -31033,7 +31033,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdf10", + "id": "0x37feec00", "kind": "EnumConstantDecl", "name": "DAC_15", "type": { @@ -31046,35 +31046,35 @@ ] }, { - "id": "0x7f0da6bfd4e8", + "id": "0x7feb10e77578", "kind": "IfStmt", "range": { "begin": { - "offset": 27163, - "line": 881, + "offset": 26896, + "line": 873, "col": 5, "tokLen": 2 }, "end": { - "offset": 27216, - "line": 882, + "offset": 26949, + "line": 874, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bfd450", + "id": "0x7feb10e774e0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 27167, - "line": 881, + "offset": 26900, + "line": 873, "col": 9, "tokLen": 1 }, "end": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 } @@ -31086,16 +31086,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bfc188", + "id": "0x7feb10e76218", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27167, + "offset": 26900, "col": 9, "tokLen": 1 }, "end": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 } @@ -31107,16 +31107,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bfc170", + "id": "0x7feb10e76200", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27169, + "offset": 26902, "col": 11, "tokLen": 2 }, "end": { - "offset": 27169, + "offset": 26902, "col": 11, "tokLen": 2 } @@ -31128,16 +31128,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bfc150", + "id": "0x7feb10e761e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27169, + "offset": 26902, "col": 11, "tokLen": 2 }, "end": { - "offset": 27169, + "offset": 26902, "col": 11, "tokLen": 2 } @@ -31147,7 +31147,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31158,16 +31158,16 @@ ] }, { - "id": "0x7f0da6bfaf28", + "id": "0x7feb10e74fb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27167, + "offset": 26900, "col": 9, "tokLen": 1 }, "end": { - "offset": 27167, + "offset": 26900, "col": 9, "tokLen": 1 } @@ -31175,11 +31175,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31188,16 +31188,16 @@ } }, { - "id": "0x7f0da6bfc138", + "id": "0x7feb10e761c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 }, "end": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 } @@ -31209,16 +31209,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bfaf48", + "id": "0x7feb10e74fd8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 }, "end": { - "offset": 27172, + "offset": 26905, "col": 14, "tokLen": 8 } @@ -31234,16 +31234,16 @@ ] }, { - "id": "0x7f0da6bfd418", + "id": "0x7feb10e774a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27184, + "offset": 26917, "col": 26, "tokLen": 1 }, "end": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 } @@ -31255,16 +31255,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bfd400", + "id": "0x7feb10e77490", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27186, + "offset": 26919, "col": 28, "tokLen": 2 }, "end": { - "offset": 27186, + "offset": 26919, "col": 28, "tokLen": 2 } @@ -31276,16 +31276,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bfd3e0", + "id": "0x7feb10e77470", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27186, + "offset": 26919, "col": 28, "tokLen": 2 }, "end": { - "offset": 27186, + "offset": 26919, "col": 28, "tokLen": 2 } @@ -31295,7 +31295,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31306,16 +31306,16 @@ ] }, { - "id": "0x7f0da6bfc1c0", + "id": "0x7feb10e76250", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27184, + "offset": 26917, "col": 26, "tokLen": 1 }, "end": { - "offset": 27184, + "offset": 26917, "col": 26, "tokLen": 1 } @@ -31323,11 +31323,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31336,16 +31336,16 @@ } }, { - "id": "0x7f0da6bfd3c8", + "id": "0x7feb10e77458", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 }, "end": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 } @@ -31357,16 +31357,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bfc1e0", + "id": "0x7feb10e76270", "kind": "StringLiteral", "range": { "begin": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 }, "end": { - "offset": 27189, + "offset": 26922, "col": 31, "tokLen": 4 } @@ -31384,33 +31384,33 @@ ] }, { - "id": "0x7f0da6bfd4d8", + "id": "0x7feb10e77568", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27203, - "line": 882, + "offset": 26936, + "line": 874, "col": 9, "tokLen": 6 }, "end": { - "offset": 27216, + "offset": 26949, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bfd4a8", + "id": "0x7feb10e77538", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27210, + "offset": 26943, "col": 16, "tokLen": 4 }, "end": { - "offset": 27216, + "offset": 26949, "col": 22, "tokLen": 6 } @@ -31420,7 +31420,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdf60", + "id": "0x37feec50", "kind": "EnumConstantDecl", "name": "DAC_16", "type": { @@ -31433,35 +31433,35 @@ ] }, { - "id": "0x7f0da6bbeac8", + "id": "0x7feb10e79b58", "kind": "IfStmt", "range": { "begin": { - "offset": 27228, - "line": 883, + "offset": 26961, + "line": 875, "col": 5, "tokLen": 2 }, "end": { - "offset": 27281, - "line": 884, + "offset": 27014, + "line": 876, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bbea30", + "id": "0x7feb10e79ac0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 27232, - "line": 883, + "offset": 26965, + "line": 875, "col": 9, "tokLen": 1 }, "end": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 } @@ -31473,16 +31473,16 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6bfe768", + "id": "0x7feb10e787f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27232, + "offset": 26965, "col": 9, "tokLen": 1 }, "end": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 } @@ -31494,16 +31494,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bfe750", + "id": "0x7feb10e787e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27234, + "offset": 26967, "col": 11, "tokLen": 2 }, "end": { - "offset": 27234, + "offset": 26967, "col": 11, "tokLen": 2 } @@ -31515,16 +31515,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bfe730", + "id": "0x7feb10e787c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27234, + "offset": 26967, "col": 11, "tokLen": 2 }, "end": { - "offset": 27234, + "offset": 26967, "col": 11, "tokLen": 2 } @@ -31534,7 +31534,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31545,16 +31545,16 @@ ] }, { - "id": "0x7f0da6bfd508", + "id": "0x7feb10e77598", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27232, + "offset": 26965, "col": 9, "tokLen": 1 }, "end": { - "offset": 27232, + "offset": 26965, "col": 9, "tokLen": 1 } @@ -31562,11 +31562,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31575,16 +31575,16 @@ } }, { - "id": "0x7f0da6bfe718", + "id": "0x7feb10e787a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 }, "end": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 } @@ -31596,16 +31596,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bfd528", + "id": "0x7feb10e775b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 }, "end": { - "offset": 27237, + "offset": 26970, "col": 14, "tokLen": 8 } @@ -31621,16 +31621,16 @@ ] }, { - "id": "0x7f0da6bbe9f8", + "id": "0x7feb10e79a88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27249, + "offset": 26982, "col": 26, "tokLen": 1 }, "end": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 } @@ -31642,16 +31642,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bbe9e0", + "id": "0x7feb10e79a70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27251, + "offset": 26984, "col": 28, "tokLen": 2 }, "end": { - "offset": 27251, + "offset": 26984, "col": 28, "tokLen": 2 } @@ -31663,16 +31663,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bbe9c0", + "id": "0x7feb10e79a50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27251, + "offset": 26984, "col": 28, "tokLen": 2 }, "end": { - "offset": 27251, + "offset": 26984, "col": 28, "tokLen": 2 } @@ -31682,7 +31682,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31693,16 +31693,16 @@ ] }, { - "id": "0x7f0da6bfe7a0", + "id": "0x7feb10e78830", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27249, + "offset": 26982, "col": 26, "tokLen": 1 }, "end": { - "offset": 27249, + "offset": 26982, "col": 26, "tokLen": 1 } @@ -31710,11 +31710,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31723,16 +31723,16 @@ } }, { - "id": "0x7f0da6bbe9a8", + "id": "0x7feb10e79a38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 }, "end": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 } @@ -31744,16 +31744,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bfe7c0", + "id": "0x7feb10e78850", "kind": "StringLiteral", "range": { "begin": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 }, "end": { - "offset": 27254, + "offset": 26987, "col": 31, "tokLen": 4 } @@ -31771,33 +31771,33 @@ ] }, { - "id": "0x7f0da6bbeab8", + "id": "0x7feb10e79b48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27268, - "line": 884, + "offset": 27001, + "line": 876, "col": 9, "tokLen": 6 }, "end": { - "offset": 27281, + "offset": 27014, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bbea88", + "id": "0x7feb10e79b18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27275, + "offset": 27008, "col": 16, "tokLen": 4 }, "end": { - "offset": 27281, + "offset": 27014, "col": 22, "tokLen": 6 } @@ -31807,7 +31807,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbdfb0", + "id": "0x37feeca0", "kind": "EnumConstantDecl", "name": "DAC_17", "type": { @@ -31820,35 +31820,35 @@ ] }, { - "id": "0x7f0da6bbfdf8", + "id": "0x7feb10e39e88", "kind": "IfStmt", "range": { "begin": { - "offset": 27293, - "line": 885, + "offset": 27026, + "line": 877, "col": 5, "tokLen": 2 }, "end": { - "offset": 27331, - "line": 886, + "offset": 27064, + "line": 878, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bbfd48", + "id": "0x7feb10e39dd8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27297, - "line": 885, + "offset": 27030, + "line": 877, "col": 9, "tokLen": 1 }, "end": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 } @@ -31860,16 +31860,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bbfd30", + "id": "0x7feb10e39dc0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27299, + "offset": 27032, "col": 11, "tokLen": 2 }, "end": { - "offset": 27299, + "offset": 27032, "col": 11, "tokLen": 2 } @@ -31881,16 +31881,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bbfd10", + "id": "0x7feb10e39da0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27299, + "offset": 27032, "col": 11, "tokLen": 2 }, "end": { - "offset": 27299, + "offset": 27032, "col": 11, "tokLen": 2 } @@ -31900,7 +31900,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -31911,16 +31911,16 @@ ] }, { - "id": "0x7f0da6bbeae8", + "id": "0x7feb10e79b78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27297, + "offset": 27030, "col": 9, "tokLen": 1 }, "end": { - "offset": 27297, + "offset": 27030, "col": 9, "tokLen": 1 } @@ -31928,11 +31928,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -31941,16 +31941,16 @@ } }, { - "id": "0x7f0da6bbfcf8", + "id": "0x7feb10e39d88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 }, "end": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 } @@ -31962,16 +31962,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bbeb08", + "id": "0x7feb10e79b98", "kind": "StringLiteral", "range": { "begin": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 }, "end": { - "offset": 27302, + "offset": 27035, "col": 14, "tokLen": 6 } @@ -31987,33 +31987,33 @@ ] }, { - "id": "0x7f0da6bbfde8", + "id": "0x7feb10e39e78", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27318, - "line": 886, + "offset": 27051, + "line": 878, "col": 9, "tokLen": 6 }, "end": { - "offset": 27331, + "offset": 27064, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bbfdb8", + "id": "0x7feb10e39e48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27325, + "offset": 27058, "col": 16, "tokLen": 4 }, "end": { - "offset": 27331, + "offset": 27064, "col": 22, "tokLen": 4 } @@ -32023,7 +32023,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe000", + "id": "0x37feecf0", "kind": "EnumConstantDecl", "name": "VSVP", "type": { @@ -32036,35 +32036,35 @@ ] }, { - "id": "0x7f0da6bc1128", + "id": "0x7feb10e3b1b8", "kind": "IfStmt", "range": { "begin": { - "offset": 27341, - "line": 887, + "offset": 27074, + "line": 879, "col": 5, "tokLen": 2 }, "end": { - "offset": 27380, - "line": 888, + "offset": 27113, + "line": 880, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bc1078", + "id": "0x7feb10e3b108", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27345, - "line": 887, + "offset": 27078, + "line": 879, "col": 9, "tokLen": 1 }, "end": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 } @@ -32076,16 +32076,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc1060", + "id": "0x7feb10e3b0f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27347, + "offset": 27080, "col": 11, "tokLen": 2 }, "end": { - "offset": 27347, + "offset": 27080, "col": 11, "tokLen": 2 } @@ -32097,16 +32097,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc1040", + "id": "0x7feb10e3b0d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27347, + "offset": 27080, "col": 11, "tokLen": 2 }, "end": { - "offset": 27347, + "offset": 27080, "col": 11, "tokLen": 2 } @@ -32116,7 +32116,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32127,16 +32127,16 @@ ] }, { - "id": "0x7f0da6bbfe18", + "id": "0x7feb10e39ea8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27345, + "offset": 27078, "col": 9, "tokLen": 1 }, "end": { - "offset": 27345, + "offset": 27078, "col": 9, "tokLen": 1 } @@ -32144,11 +32144,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -32157,16 +32157,16 @@ } }, { - "id": "0x7f0da6bc1028", + "id": "0x7feb10e3b0b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 }, "end": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 } @@ -32178,16 +32178,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bbfe38", + "id": "0x7feb10e39ec8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 }, "end": { - "offset": 27350, + "offset": 27083, "col": 14, "tokLen": 7 } @@ -32203,33 +32203,33 @@ ] }, { - "id": "0x7f0da6bc1118", + "id": "0x7feb10e3b1a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27367, - "line": 888, + "offset": 27100, + "line": 880, "col": 9, "tokLen": 6 }, "end": { - "offset": 27380, + "offset": 27113, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bc10e8", + "id": "0x7feb10e3b178", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27374, + "offset": 27107, "col": 16, "tokLen": 4 }, "end": { - "offset": 27380, + "offset": 27113, "col": 22, "tokLen": 5 } @@ -32239,7 +32239,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe050", + "id": "0x37feed40", "kind": "EnumConstantDecl", "name": "VTRIM", "type": { @@ -32252,35 +32252,35 @@ ] }, { - "id": "0x7f0da6bc2458", + "id": "0x7feb10e3c4e8", "kind": "IfStmt", "range": { "begin": { - "offset": 27391, - "line": 889, + "offset": 27124, + "line": 881, "col": 5, "tokLen": 2 }, "end": { - "offset": 27433, - "line": 890, + "offset": 27166, + "line": 882, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bc23a8", + "id": "0x7feb10e3c438", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27395, - "line": 889, + "offset": 27128, + "line": 881, "col": 9, "tokLen": 1 }, "end": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 } @@ -32292,16 +32292,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc2390", + "id": "0x7feb10e3c420", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27397, + "offset": 27130, "col": 11, "tokLen": 2 }, "end": { - "offset": 27397, + "offset": 27130, "col": 11, "tokLen": 2 } @@ -32313,16 +32313,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc2370", + "id": "0x7feb10e3c400", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27397, + "offset": 27130, "col": 11, "tokLen": 2 }, "end": { - "offset": 27397, + "offset": 27130, "col": 11, "tokLen": 2 } @@ -32332,7 +32332,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32343,16 +32343,16 @@ ] }, { - "id": "0x7f0da6bc1148", + "id": "0x7feb10e3b1d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27395, + "offset": 27128, "col": 9, "tokLen": 1 }, "end": { - "offset": 27395, + "offset": 27128, "col": 9, "tokLen": 1 } @@ -32360,11 +32360,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -32373,16 +32373,16 @@ } }, { - "id": "0x7f0da6bc2358", + "id": "0x7feb10e3c3e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 }, "end": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 } @@ -32394,16 +32394,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc1168", + "id": "0x7feb10e3b1f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 }, "end": { - "offset": 27400, + "offset": 27133, "col": 14, "tokLen": 10 } @@ -32419,33 +32419,33 @@ ] }, { - "id": "0x7f0da6bc2448", + "id": "0x7feb10e3c4d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27420, - "line": 890, + "offset": 27153, + "line": 882, "col": 9, "tokLen": 6 }, "end": { - "offset": 27433, + "offset": 27166, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bc2418", + "id": "0x7feb10e3c4a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27427, + "offset": 27160, "col": 16, "tokLen": 4 }, "end": { - "offset": 27433, + "offset": 27166, "col": 22, "tokLen": 8 } @@ -32455,7 +32455,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe0a0", + "id": "0x37feed90", "kind": "EnumConstantDecl", "name": "VRPREAMP", "type": { @@ -32468,35 +32468,35 @@ ] }, { - "id": "0x7f0da6bc3788", + "id": "0x7feb10e3d818", "kind": "IfStmt", "range": { "begin": { - "offset": 27447, - "line": 891, + "offset": 27180, + "line": 883, "col": 5, "tokLen": 2 }, "end": { - "offset": 27489, - "line": 892, + "offset": 27222, + "line": 884, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bc36d8", + "id": "0x7feb10e3d768", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27451, - "line": 891, + "offset": 27184, + "line": 883, "col": 9, "tokLen": 1 }, "end": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 } @@ -32508,16 +32508,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc36c0", + "id": "0x7feb10e3d750", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27453, + "offset": 27186, "col": 11, "tokLen": 2 }, "end": { - "offset": 27453, + "offset": 27186, "col": 11, "tokLen": 2 } @@ -32529,16 +32529,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc36a0", + "id": "0x7feb10e3d730", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27453, + "offset": 27186, "col": 11, "tokLen": 2 }, "end": { - "offset": 27453, + "offset": 27186, "col": 11, "tokLen": 2 } @@ -32548,7 +32548,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32559,16 +32559,16 @@ ] }, { - "id": "0x7f0da6bc2478", + "id": "0x7feb10e3c508", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27451, + "offset": 27184, "col": 9, "tokLen": 1 }, "end": { - "offset": 27451, + "offset": 27184, "col": 9, "tokLen": 1 } @@ -32576,11 +32576,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -32589,16 +32589,16 @@ } }, { - "id": "0x7f0da6bc3688", + "id": "0x7feb10e3d718", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 }, "end": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 } @@ -32610,16 +32610,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc2498", + "id": "0x7feb10e3c528", "kind": "StringLiteral", "range": { "begin": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 }, "end": { - "offset": 27456, + "offset": 27189, "col": 14, "tokLen": 10 } @@ -32635,33 +32635,33 @@ ] }, { - "id": "0x7f0da6bc3778", + "id": "0x7feb10e3d808", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27476, - "line": 892, + "offset": 27209, + "line": 884, "col": 9, "tokLen": 6 }, "end": { - "offset": 27489, + "offset": 27222, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bc3748", + "id": "0x7feb10e3d7d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27483, + "offset": 27216, "col": 16, "tokLen": 4 }, "end": { - "offset": 27489, + "offset": 27222, "col": 22, "tokLen": 8 } @@ -32671,7 +32671,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe0f0", + "id": "0x37feede0", "kind": "EnumConstantDecl", "name": "VRSHAPER", "type": { @@ -32684,35 +32684,35 @@ ] }, { - "id": "0x7f0da6bc4ab8", + "id": "0x7feb10e3eb48", "kind": "IfStmt", "range": { "begin": { - "offset": 27503, - "line": 893, + "offset": 27236, + "line": 885, "col": 5, "tokLen": 2 }, "end": { - "offset": 27541, - "line": 894, + "offset": 27274, + "line": 886, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bc4a08", + "id": "0x7feb10e3ea98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27507, - "line": 893, + "offset": 27240, + "line": 885, "col": 9, "tokLen": 1 }, "end": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 } @@ -32724,16 +32724,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc49f0", + "id": "0x7feb10e3ea80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27509, + "offset": 27242, "col": 11, "tokLen": 2 }, "end": { - "offset": 27509, + "offset": 27242, "col": 11, "tokLen": 2 } @@ -32745,16 +32745,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc49d0", + "id": "0x7feb10e3ea60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27509, + "offset": 27242, "col": 11, "tokLen": 2 }, "end": { - "offset": 27509, + "offset": 27242, "col": 11, "tokLen": 2 } @@ -32764,7 +32764,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32775,16 +32775,16 @@ ] }, { - "id": "0x7f0da6bc37a8", + "id": "0x7feb10e3d838", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27507, + "offset": 27240, "col": 9, "tokLen": 1 }, "end": { - "offset": 27507, + "offset": 27240, "col": 9, "tokLen": 1 } @@ -32792,11 +32792,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -32805,16 +32805,16 @@ } }, { - "id": "0x7f0da6bc49b8", + "id": "0x7feb10e3ea48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 }, "end": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 } @@ -32826,16 +32826,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc37c8", + "id": "0x7feb10e3d858", "kind": "StringLiteral", "range": { "begin": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 }, "end": { - "offset": 27512, + "offset": 27245, "col": 14, "tokLen": 6 } @@ -32851,33 +32851,33 @@ ] }, { - "id": "0x7f0da6bc4aa8", + "id": "0x7feb10e3eb38", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27528, - "line": 894, + "offset": 27261, + "line": 886, "col": 9, "tokLen": 6 }, "end": { - "offset": 27541, + "offset": 27274, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bc4a78", + "id": "0x7feb10e3eb08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27535, + "offset": 27268, "col": 16, "tokLen": 4 }, "end": { - "offset": 27541, + "offset": 27274, "col": 22, "tokLen": 4 } @@ -32887,7 +32887,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe140", + "id": "0x37feee30", "kind": "EnumConstantDecl", "name": "VSVN", "type": { @@ -32900,35 +32900,35 @@ ] }, { - "id": "0x7f0da6bc5de8", + "id": "0x7feb10e3fe78", "kind": "IfStmt", "range": { "begin": { - "offset": 27551, - "line": 895, + "offset": 27284, + "line": 887, "col": 5, "tokLen": 2 }, "end": { - "offset": 27591, - "line": 896, + "offset": 27324, + "line": 888, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bc5d38", + "id": "0x7feb10e3fdc8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27555, - "line": 895, + "offset": 27288, + "line": 887, "col": 9, "tokLen": 1 }, "end": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 } @@ -32940,16 +32940,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc5d20", + "id": "0x7feb10e3fdb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27557, + "offset": 27290, "col": 11, "tokLen": 2 }, "end": { - "offset": 27557, + "offset": 27290, "col": 11, "tokLen": 2 } @@ -32961,16 +32961,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc5d00", + "id": "0x7feb10e3fd90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27557, + "offset": 27290, "col": 11, "tokLen": 2 }, "end": { - "offset": 27557, + "offset": 27290, "col": 11, "tokLen": 2 } @@ -32980,7 +32980,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -32991,16 +32991,16 @@ ] }, { - "id": "0x7f0da6bc4ad8", + "id": "0x7feb10e3eb68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27555, + "offset": 27288, "col": 9, "tokLen": 1 }, "end": { - "offset": 27555, + "offset": 27288, "col": 9, "tokLen": 1 } @@ -33008,11 +33008,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33021,16 +33021,16 @@ } }, { - "id": "0x7f0da6bc5ce8", + "id": "0x7feb10e3fd78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 }, "end": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 } @@ -33042,16 +33042,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc4af8", + "id": "0x7feb10e3eb88", "kind": "StringLiteral", "range": { "begin": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 }, "end": { - "offset": 27560, + "offset": 27293, "col": 14, "tokLen": 8 } @@ -33067,33 +33067,33 @@ ] }, { - "id": "0x7f0da6bc5dd8", + "id": "0x7feb10e3fe68", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27578, - "line": 896, + "offset": 27311, + "line": 888, "col": 9, "tokLen": 6 }, "end": { - "offset": 27591, + "offset": 27324, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bc5da8", + "id": "0x7feb10e3fe38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27585, + "offset": 27318, "col": 16, "tokLen": 4 }, "end": { - "offset": 27591, + "offset": 27324, "col": 22, "tokLen": 6 } @@ -33103,7 +33103,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe190", + "id": "0x37feee80", "kind": "EnumConstantDecl", "name": "VTGSTV", "type": { @@ -33116,35 +33116,35 @@ ] }, { - "id": "0x7f0da6bc7118", + "id": "0x7feb10e411a8", "kind": "IfStmt", "range": { "begin": { - "offset": 27603, - "line": 897, + "offset": 27336, + "line": 889, "col": 5, "tokLen": 2 }, "end": { - "offset": 27644, - "line": 898, + "offset": 27377, + "line": 890, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bc7068", + "id": "0x7feb10e410f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27607, - "line": 897, + "offset": 27340, + "line": 889, "col": 9, "tokLen": 1 }, "end": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 } @@ -33156,16 +33156,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc7050", + "id": "0x7feb10e410e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27609, + "offset": 27342, "col": 11, "tokLen": 2 }, "end": { - "offset": 27609, + "offset": 27342, "col": 11, "tokLen": 2 } @@ -33177,16 +33177,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc7030", + "id": "0x7feb10e410c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27609, + "offset": 27342, "col": 11, "tokLen": 2 }, "end": { - "offset": 27609, + "offset": 27342, "col": 11, "tokLen": 2 } @@ -33196,7 +33196,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -33207,16 +33207,16 @@ ] }, { - "id": "0x7f0da6bc5e08", + "id": "0x7feb10e3fe98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27607, + "offset": 27340, "col": 9, "tokLen": 1 }, "end": { - "offset": 27607, + "offset": 27340, "col": 9, "tokLen": 1 } @@ -33224,11 +33224,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33237,16 +33237,16 @@ } }, { - "id": "0x7f0da6bc7018", + "id": "0x7feb10e410a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 }, "end": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 } @@ -33258,16 +33258,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc5e28", + "id": "0x7feb10e3feb8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 }, "end": { - "offset": 27612, + "offset": 27345, "col": 14, "tokLen": 9 } @@ -33283,33 +33283,33 @@ ] }, { - "id": "0x7f0da6bc7108", + "id": "0x7feb10e41198", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27631, - "line": 898, + "offset": 27364, + "line": 890, "col": 9, "tokLen": 6 }, "end": { - "offset": 27644, + "offset": 27377, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bc70d8", + "id": "0x7feb10e41168", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27638, + "offset": 27371, "col": 16, "tokLen": 4 }, "end": { - "offset": 27644, + "offset": 27377, "col": 22, "tokLen": 7 } @@ -33319,7 +33319,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe1e0", + "id": "0x37feeed0", "kind": "EnumConstantDecl", "name": "VCMP_LL", "type": { @@ -33332,35 +33332,35 @@ ] }, { - "id": "0x7f0da6bc8448", + "id": "0x7feb10e424d8", "kind": "IfStmt", "range": { "begin": { - "offset": 27657, - "line": 899, + "offset": 27390, + "line": 891, "col": 5, "tokLen": 2 }, "end": { - "offset": 27698, - "line": 900, + "offset": 27431, + "line": 892, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bc8398", + "id": "0x7feb10e42428", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27661, - "line": 899, + "offset": 27394, + "line": 891, "col": 9, "tokLen": 1 }, "end": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 } @@ -33372,16 +33372,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc8380", + "id": "0x7feb10e42410", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27663, + "offset": 27396, "col": 11, "tokLen": 2 }, "end": { - "offset": 27663, + "offset": 27396, "col": 11, "tokLen": 2 } @@ -33393,16 +33393,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc8360", + "id": "0x7feb10e423f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27663, + "offset": 27396, "col": 11, "tokLen": 2 }, "end": { - "offset": 27663, + "offset": 27396, "col": 11, "tokLen": 2 } @@ -33412,7 +33412,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -33423,16 +33423,16 @@ ] }, { - "id": "0x7f0da6bc7138", + "id": "0x7feb10e411c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27661, + "offset": 27394, "col": 9, "tokLen": 1 }, "end": { - "offset": 27661, + "offset": 27394, "col": 9, "tokLen": 1 } @@ -33440,11 +33440,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33453,16 +33453,16 @@ } }, { - "id": "0x7f0da6bc8348", + "id": "0x7feb10e423d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 }, "end": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 } @@ -33474,16 +33474,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc7158", + "id": "0x7feb10e411e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 }, "end": { - "offset": 27666, + "offset": 27399, "col": 14, "tokLen": 9 } @@ -33499,33 +33499,33 @@ ] }, { - "id": "0x7f0da6bc8438", + "id": "0x7feb10e424c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27685, - "line": 900, + "offset": 27418, + "line": 892, "col": 9, "tokLen": 6 }, "end": { - "offset": 27698, + "offset": 27431, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bc8408", + "id": "0x7feb10e42498", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27692, + "offset": 27425, "col": 16, "tokLen": 4 }, "end": { - "offset": 27698, + "offset": 27431, "col": 22, "tokLen": 7 } @@ -33535,7 +33535,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe230", + "id": "0x37feef20", "kind": "EnumConstantDecl", "name": "VCMP_LR", "type": { @@ -33548,35 +33548,35 @@ ] }, { - "id": "0x7f0da6bc9778", + "id": "0x7feb10e43808", "kind": "IfStmt", "range": { "begin": { - "offset": 27711, - "line": 901, + "offset": 27444, + "line": 893, "col": 5, "tokLen": 2 }, "end": { - "offset": 27749, - "line": 902, + "offset": 27482, + "line": 894, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bc96c8", + "id": "0x7feb10e43758", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27715, - "line": 901, + "offset": 27448, + "line": 893, "col": 9, "tokLen": 1 }, "end": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 } @@ -33588,16 +33588,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bc96b0", + "id": "0x7feb10e43740", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27717, + "offset": 27450, "col": 11, "tokLen": 2 }, "end": { - "offset": 27717, + "offset": 27450, "col": 11, "tokLen": 2 } @@ -33609,16 +33609,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bc9690", + "id": "0x7feb10e43720", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27717, + "offset": 27450, "col": 11, "tokLen": 2 }, "end": { - "offset": 27717, + "offset": 27450, "col": 11, "tokLen": 2 } @@ -33628,7 +33628,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -33639,16 +33639,16 @@ ] }, { - "id": "0x7f0da6bc8468", + "id": "0x7feb10e424f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27715, + "offset": 27448, "col": 9, "tokLen": 1 }, "end": { - "offset": 27715, + "offset": 27448, "col": 9, "tokLen": 1 } @@ -33656,11 +33656,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33669,16 +33669,16 @@ } }, { - "id": "0x7f0da6bc9678", + "id": "0x7feb10e43708", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 }, "end": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 } @@ -33690,16 +33690,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc8488", + "id": "0x7feb10e42518", "kind": "StringLiteral", "range": { "begin": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 }, "end": { - "offset": 27720, + "offset": 27453, "col": 14, "tokLen": 6 } @@ -33715,33 +33715,33 @@ ] }, { - "id": "0x7f0da6bc9768", + "id": "0x7feb10e437f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27736, - "line": 902, + "offset": 27469, + "line": 894, "col": 9, "tokLen": 6 }, "end": { - "offset": 27749, + "offset": 27482, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bc9738", + "id": "0x7feb10e437c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27743, + "offset": 27476, "col": 16, "tokLen": 4 }, "end": { - "offset": 27749, + "offset": 27482, "col": 22, "tokLen": 4 } @@ -33751,7 +33751,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe280", + "id": "0x37feef70", "kind": "EnumConstantDecl", "name": "VCAL", "type": { @@ -33764,35 +33764,35 @@ ] }, { - "id": "0x7f0da6bcaaa8", + "id": "0x7feb10e44b38", "kind": "IfStmt", "range": { "begin": { - "offset": 27759, - "line": 903, + "offset": 27492, + "line": 895, "col": 5, "tokLen": 2 }, "end": { - "offset": 27800, - "line": 904, + "offset": 27533, + "line": 896, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bca9f8", + "id": "0x7feb10e44a88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27763, - "line": 903, + "offset": 27496, + "line": 895, "col": 9, "tokLen": 1 }, "end": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 } @@ -33804,16 +33804,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bca9e0", + "id": "0x7feb10e44a70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27765, + "offset": 27498, "col": 11, "tokLen": 2 }, "end": { - "offset": 27765, + "offset": 27498, "col": 11, "tokLen": 2 } @@ -33825,16 +33825,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bca9c0", + "id": "0x7feb10e44a50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27765, + "offset": 27498, "col": 11, "tokLen": 2 }, "end": { - "offset": 27765, + "offset": 27498, "col": 11, "tokLen": 2 } @@ -33844,7 +33844,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -33855,16 +33855,16 @@ ] }, { - "id": "0x7f0da6bc9798", + "id": "0x7feb10e43828", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27763, + "offset": 27496, "col": 9, "tokLen": 1 }, "end": { - "offset": 27763, + "offset": 27496, "col": 9, "tokLen": 1 } @@ -33872,11 +33872,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -33885,16 +33885,16 @@ } }, { - "id": "0x7f0da6bca9a8", + "id": "0x7feb10e44a38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 }, "end": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 } @@ -33906,16 +33906,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bc97b8", + "id": "0x7feb10e43848", "kind": "StringLiteral", "range": { "begin": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 }, "end": { - "offset": 27768, + "offset": 27501, "col": 14, "tokLen": 9 } @@ -33931,33 +33931,33 @@ ] }, { - "id": "0x7f0da6bcaa98", + "id": "0x7feb10e44b28", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27787, - "line": 904, + "offset": 27520, + "line": 896, "col": 9, "tokLen": 6 }, "end": { - "offset": 27800, + "offset": 27533, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bcaa68", + "id": "0x7feb10e44af8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27794, + "offset": 27527, "col": 16, "tokLen": 4 }, "end": { - "offset": 27800, + "offset": 27533, "col": 22, "tokLen": 7 } @@ -33967,7 +33967,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe2d0", + "id": "0x37feefc0", "kind": "EnumConstantDecl", "name": "VCMP_RL", "type": { @@ -33980,35 +33980,35 @@ ] }, { - "id": "0x7f0da6bcbdd8", + "id": "0x7feb10e45e68", "kind": "IfStmt", "range": { "begin": { - "offset": 27813, - "line": 905, + "offset": 27546, + "line": 897, "col": 5, "tokLen": 2 }, "end": { - "offset": 27853, - "line": 906, + "offset": 27586, + "line": 898, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bcbd28", + "id": "0x7feb10e45db8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27817, - "line": 905, + "offset": 27550, + "line": 897, "col": 9, "tokLen": 1 }, "end": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 } @@ -34020,16 +34020,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bcbd10", + "id": "0x7feb10e45da0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27819, + "offset": 27552, "col": 11, "tokLen": 2 }, "end": { - "offset": 27819, + "offset": 27552, "col": 11, "tokLen": 2 } @@ -34041,16 +34041,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bcbcf0", + "id": "0x7feb10e45d80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27819, + "offset": 27552, "col": 11, "tokLen": 2 }, "end": { - "offset": 27819, + "offset": 27552, "col": 11, "tokLen": 2 } @@ -34060,7 +34060,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34071,16 +34071,16 @@ ] }, { - "id": "0x7f0da6bcaac8", + "id": "0x7feb10e44b58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27817, + "offset": 27550, "col": 9, "tokLen": 1 }, "end": { - "offset": 27817, + "offset": 27550, "col": 9, "tokLen": 1 } @@ -34088,11 +34088,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34101,16 +34101,16 @@ } }, { - "id": "0x7f0da6bcbcd8", + "id": "0x7feb10e45d68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 }, "end": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 } @@ -34122,16 +34122,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bcaae8", + "id": "0x7feb10e44b78", "kind": "StringLiteral", "range": { "begin": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 }, "end": { - "offset": 27822, + "offset": 27555, "col": 14, "tokLen": 8 } @@ -34147,33 +34147,33 @@ ] }, { - "id": "0x7f0da6bcbdc8", + "id": "0x7feb10e45e58", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27840, - "line": 906, + "offset": 27573, + "line": 898, "col": 9, "tokLen": 6 }, "end": { - "offset": 27853, + "offset": 27586, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bcbd98", + "id": "0x7feb10e45e28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27847, + "offset": 27580, "col": 16, "tokLen": 4 }, "end": { - "offset": 27853, + "offset": 27586, "col": 22, "tokLen": 6 } @@ -34183,7 +34183,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe320", + "id": "0x37fef010", "kind": "EnumConstantDecl", "name": "RXB_RB", "type": { @@ -34196,35 +34196,35 @@ ] }, { - "id": "0x7f0da6bcd108", + "id": "0x7feb10e47198", "kind": "IfStmt", "range": { "begin": { - "offset": 27865, - "line": 907, + "offset": 27598, + "line": 899, "col": 5, "tokLen": 2 }, "end": { - "offset": 27905, - "line": 908, + "offset": 27638, + "line": 900, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bcd058", + "id": "0x7feb10e470e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27869, - "line": 907, + "offset": 27602, + "line": 899, "col": 9, "tokLen": 1 }, "end": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 } @@ -34236,16 +34236,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bcd040", + "id": "0x7feb10e470d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27871, + "offset": 27604, "col": 11, "tokLen": 2 }, "end": { - "offset": 27871, + "offset": 27604, "col": 11, "tokLen": 2 } @@ -34257,16 +34257,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bcd020", + "id": "0x7feb10e470b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27871, + "offset": 27604, "col": 11, "tokLen": 2 }, "end": { - "offset": 27871, + "offset": 27604, "col": 11, "tokLen": 2 } @@ -34276,7 +34276,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34287,16 +34287,16 @@ ] }, { - "id": "0x7f0da6bcbdf8", + "id": "0x7feb10e45e88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27869, + "offset": 27602, "col": 9, "tokLen": 1 }, "end": { - "offset": 27869, + "offset": 27602, "col": 9, "tokLen": 1 } @@ -34304,11 +34304,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34317,16 +34317,16 @@ } }, { - "id": "0x7f0da6bcd008", + "id": "0x7feb10e47098", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 }, "end": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 } @@ -34338,16 +34338,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bcbe18", + "id": "0x7feb10e45ea8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 }, "end": { - "offset": 27874, + "offset": 27607, "col": 14, "tokLen": 8 } @@ -34363,33 +34363,33 @@ ] }, { - "id": "0x7f0da6bcd0f8", + "id": "0x7feb10e47188", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27892, - "line": 908, + "offset": 27625, + "line": 900, "col": 9, "tokLen": 6 }, "end": { - "offset": 27905, + "offset": 27638, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bcd0c8", + "id": "0x7feb10e47158", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27899, + "offset": 27632, "col": 16, "tokLen": 4 }, "end": { - "offset": 27905, + "offset": 27638, "col": 22, "tokLen": 6 } @@ -34399,7 +34399,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe370", + "id": "0x37fef060", "kind": "EnumConstantDecl", "name": "RXB_LB", "type": { @@ -34412,35 +34412,35 @@ ] }, { - "id": "0x7f0da6bce438", + "id": "0x7feb10e484c8", "kind": "IfStmt", "range": { "begin": { - "offset": 27917, - "line": 909, + "offset": 27650, + "line": 901, "col": 5, "tokLen": 2 }, "end": { - "offset": 27958, - "line": 910, + "offset": 27691, + "line": 902, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bce388", + "id": "0x7feb10e48418", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27921, - "line": 909, + "offset": 27654, + "line": 901, "col": 9, "tokLen": 1 }, "end": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 } @@ -34452,16 +34452,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bce370", + "id": "0x7feb10e48400", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27923, + "offset": 27656, "col": 11, "tokLen": 2 }, "end": { - "offset": 27923, + "offset": 27656, "col": 11, "tokLen": 2 } @@ -34473,16 +34473,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bce350", + "id": "0x7feb10e483e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27923, + "offset": 27656, "col": 11, "tokLen": 2 }, "end": { - "offset": 27923, + "offset": 27656, "col": 11, "tokLen": 2 } @@ -34492,7 +34492,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34503,16 +34503,16 @@ ] }, { - "id": "0x7f0da6bcd128", + "id": "0x7feb10e471b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27921, + "offset": 27654, "col": 9, "tokLen": 1 }, "end": { - "offset": 27921, + "offset": 27654, "col": 9, "tokLen": 1 } @@ -34520,11 +34520,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34533,16 +34533,16 @@ } }, { - "id": "0x7f0da6bce338", + "id": "0x7feb10e483c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 }, "end": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 } @@ -34554,16 +34554,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bcd148", + "id": "0x7feb10e471d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 }, "end": { - "offset": 27926, + "offset": 27659, "col": 14, "tokLen": 9 } @@ -34579,33 +34579,33 @@ ] }, { - "id": "0x7f0da6bce428", + "id": "0x7feb10e484b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27945, - "line": 910, + "offset": 27678, + "line": 902, "col": 9, "tokLen": 6 }, "end": { - "offset": 27958, + "offset": 27691, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bce3f8", + "id": "0x7feb10e48488", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27952, + "offset": 27685, "col": 16, "tokLen": 4 }, "end": { - "offset": 27958, + "offset": 27691, "col": 22, "tokLen": 7 } @@ -34615,7 +34615,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe3c0", + "id": "0x37fef0b0", "kind": "EnumConstantDecl", "name": "VCMP_RR", "type": { @@ -34628,35 +34628,35 @@ ] }, { - "id": "0x7f0da6bcf768", + "id": "0x7feb10e497f8", "kind": "IfStmt", "range": { "begin": { - "offset": 27971, - "line": 911, + "offset": 27704, + "line": 903, "col": 5, "tokLen": 2 }, "end": { - "offset": 28008, - "line": 912, + "offset": 27741, + "line": 904, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6bcf6b8", + "id": "0x7feb10e49748", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 27975, - "line": 911, + "offset": 27708, + "line": 903, "col": 9, "tokLen": 1 }, "end": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 } @@ -34668,16 +34668,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bcf6a0", + "id": "0x7feb10e49730", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27977, + "offset": 27710, "col": 11, "tokLen": 2 }, "end": { - "offset": 27977, + "offset": 27710, "col": 11, "tokLen": 2 } @@ -34689,16 +34689,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bcf680", + "id": "0x7feb10e49710", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27977, + "offset": 27710, "col": 11, "tokLen": 2 }, "end": { - "offset": 27977, + "offset": 27710, "col": 11, "tokLen": 2 } @@ -34708,7 +34708,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34719,16 +34719,16 @@ ] }, { - "id": "0x7f0da6bce458", + "id": "0x7feb10e484e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 27975, + "offset": 27708, "col": 9, "tokLen": 1 }, "end": { - "offset": 27975, + "offset": 27708, "col": 9, "tokLen": 1 } @@ -34736,11 +34736,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34749,16 +34749,16 @@ } }, { - "id": "0x7f0da6bcf668", + "id": "0x7feb10e496f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 }, "end": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 } @@ -34770,16 +34770,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bce478", + "id": "0x7feb10e48508", "kind": "StringLiteral", "range": { "begin": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 }, "end": { - "offset": 27980, + "offset": 27713, "col": 14, "tokLen": 5 } @@ -34795,33 +34795,33 @@ ] }, { - "id": "0x7f0da6bcf758", + "id": "0x7feb10e497e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 27995, - "line": 912, + "offset": 27728, + "line": 904, "col": 9, "tokLen": 6 }, "end": { - "offset": 28008, + "offset": 27741, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6bcf728", + "id": "0x7feb10e497b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28002, + "offset": 27735, "col": 16, "tokLen": 4 }, "end": { - "offset": 28008, + "offset": 27741, "col": 22, "tokLen": 3 } @@ -34831,7 +34831,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe410", + "id": "0x37fef100", "kind": "EnumConstantDecl", "name": "VCP", "type": { @@ -34844,35 +34844,35 @@ ] }, { - "id": "0x7f0da6bd0a98", + "id": "0x7feb10e4ab28", "kind": "IfStmt", "range": { "begin": { - "offset": 28017, - "line": 913, + "offset": 27750, + "line": 905, "col": 5, "tokLen": 2 }, "end": { - "offset": 28054, - "line": 914, + "offset": 27787, + "line": 906, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6bd09e8", + "id": "0x7feb10e4aa78", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28021, - "line": 913, + "offset": 27754, + "line": 905, "col": 9, "tokLen": 1 }, "end": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 } @@ -34884,16 +34884,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd09d0", + "id": "0x7feb10e4aa60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28023, + "offset": 27756, "col": 11, "tokLen": 2 }, "end": { - "offset": 28023, + "offset": 27756, "col": 11, "tokLen": 2 } @@ -34905,16 +34905,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd09b0", + "id": "0x7feb10e4aa40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28023, + "offset": 27756, "col": 11, "tokLen": 2 }, "end": { - "offset": 28023, + "offset": 27756, "col": 11, "tokLen": 2 } @@ -34924,7 +34924,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -34935,16 +34935,16 @@ ] }, { - "id": "0x7f0da6bcf788", + "id": "0x7feb10e49818", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28021, + "offset": 27754, "col": 9, "tokLen": 1 }, "end": { - "offset": 28021, + "offset": 27754, "col": 9, "tokLen": 1 } @@ -34952,11 +34952,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -34965,16 +34965,16 @@ } }, { - "id": "0x7f0da6bd0998", + "id": "0x7feb10e4aa28", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 }, "end": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 } @@ -34986,16 +34986,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bcf7a8", + "id": "0x7feb10e49838", "kind": "StringLiteral", "range": { "begin": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 }, "end": { - "offset": 28026, + "offset": 27759, "col": 14, "tokLen": 5 } @@ -35011,33 +35011,33 @@ ] }, { - "id": "0x7f0da6bd0a88", + "id": "0x7feb10e4ab18", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28041, - "line": 914, + "offset": 27774, + "line": 906, "col": 9, "tokLen": 6 }, "end": { - "offset": 28054, + "offset": 27787, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6bd0a58", + "id": "0x7feb10e4aae8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28048, + "offset": 27781, "col": 16, "tokLen": 4 }, "end": { - "offset": 28054, + "offset": 27787, "col": 22, "tokLen": 3 } @@ -35047,7 +35047,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe460", + "id": "0x37fef150", "kind": "EnumConstantDecl", "name": "VCN", "type": { @@ -35060,35 +35060,35 @@ ] }, { - "id": "0x7f0da6bd1dc8", + "id": "0x7feb10e4be58", "kind": "IfStmt", "range": { "begin": { - "offset": 28063, - "line": 915, + "offset": 27796, + "line": 907, "col": 5, "tokLen": 2 }, "end": { - "offset": 28105, - "line": 916, + "offset": 27838, + "line": 908, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bd1d18", + "id": "0x7feb10e4bda8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28067, - "line": 915, + "offset": 27800, + "line": 907, "col": 9, "tokLen": 1 }, "end": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 } @@ -35100,16 +35100,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd1d00", + "id": "0x7feb10e4bd90", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28069, + "offset": 27802, "col": 11, "tokLen": 2 }, "end": { - "offset": 28069, + "offset": 27802, "col": 11, "tokLen": 2 } @@ -35121,16 +35121,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd1ce0", + "id": "0x7feb10e4bd70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28069, + "offset": 27802, "col": 11, "tokLen": 2 }, "end": { - "offset": 28069, + "offset": 27802, "col": 11, "tokLen": 2 } @@ -35140,7 +35140,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -35151,16 +35151,16 @@ ] }, { - "id": "0x7f0da6bd0ab8", + "id": "0x7feb10e4ab48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28067, + "offset": 27800, "col": 9, "tokLen": 1 }, "end": { - "offset": 28067, + "offset": 27800, "col": 9, "tokLen": 1 } @@ -35168,11 +35168,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -35181,16 +35181,16 @@ } }, { - "id": "0x7f0da6bd1cc8", + "id": "0x7feb10e4bd58", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 }, "end": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 } @@ -35202,16 +35202,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd0ad8", + "id": "0x7feb10e4ab68", "kind": "StringLiteral", "range": { "begin": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 }, "end": { - "offset": 28072, + "offset": 27805, "col": 14, "tokLen": 10 } @@ -35227,33 +35227,33 @@ ] }, { - "id": "0x7f0da6bd1db8", + "id": "0x7feb10e4be48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28092, - "line": 916, + "offset": 27825, + "line": 908, "col": 9, "tokLen": 6 }, "end": { - "offset": 28105, + "offset": 27838, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6bd1d88", + "id": "0x7feb10e4be18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28099, + "offset": 27832, "col": 16, "tokLen": 4 }, "end": { - "offset": 28105, + "offset": 27838, "col": 22, "tokLen": 8 } @@ -35263,7 +35263,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe4b0", + "id": "0x37fef1a0", "kind": "EnumConstantDecl", "name": "VISHAPER", "type": { @@ -35276,35 +35276,35 @@ ] }, { - "id": "0x7f0da6bd30f8", + "id": "0x7feb10e4d188", "kind": "IfStmt", "range": { "begin": { - "offset": 28119, - "line": 917, + "offset": 27852, + "line": 909, "col": 5, "tokLen": 2 }, "end": { - "offset": 28163, - "line": 918, + "offset": 27896, + "line": 910, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bd3048", + "id": "0x7feb10e4d0d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28123, - "line": 917, + "offset": 27856, + "line": 909, "col": 9, "tokLen": 1 }, "end": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 } @@ -35316,16 +35316,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd3030", + "id": "0x7feb10e4d0c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28125, + "offset": 27858, "col": 11, "tokLen": 2 }, "end": { - "offset": 28125, + "offset": 27858, "col": 11, "tokLen": 2 } @@ -35337,16 +35337,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd3010", + "id": "0x7feb10e4d0a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28125, + "offset": 27858, "col": 11, "tokLen": 2 }, "end": { - "offset": 28125, + "offset": 27858, "col": 11, "tokLen": 2 } @@ -35356,7 +35356,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -35367,16 +35367,16 @@ ] }, { - "id": "0x7f0da6bd1de8", + "id": "0x7feb10e4be78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28123, + "offset": 27856, "col": 9, "tokLen": 1 }, "end": { - "offset": 28123, + "offset": 27856, "col": 9, "tokLen": 1 } @@ -35384,11 +35384,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -35397,16 +35397,16 @@ } }, { - "id": "0x7f0da6bd2ff8", + "id": "0x7feb10e4d088", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 }, "end": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 } @@ -35418,16 +35418,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd1e08", + "id": "0x7feb10e4be98", "kind": "StringLiteral", "range": { "begin": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 }, "end": { - "offset": 28128, + "offset": 27861, "col": 14, "tokLen": 12 } @@ -35443,33 +35443,33 @@ ] }, { - "id": "0x7f0da6bd30e8", + "id": "0x7feb10e4d178", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28150, - "line": 918, + "offset": 27883, + "line": 910, "col": 9, "tokLen": 6 }, "end": { - "offset": 28163, + "offset": 27896, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bd30b8", + "id": "0x7feb10e4d148", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28157, + "offset": 27890, "col": 16, "tokLen": 4 }, "end": { - "offset": 28163, + "offset": 27896, "col": 22, "tokLen": 10 } @@ -35479,7 +35479,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe500", + "id": "0x37fef1f0", "kind": "EnumConstantDecl", "name": "VTHRESHOLD", "type": { @@ -35492,35 +35492,35 @@ ] }, { - "id": "0x7f0da6bd4428", + "id": "0x7feb10e4e4b8", "kind": "IfStmt", "range": { "begin": { - "offset": 28179, - "line": 919, + "offset": 27912, + "line": 911, "col": 5, "tokLen": 2 }, "end": { - "offset": 28220, - "line": 920, + "offset": 27953, + "line": 912, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bd4378", + "id": "0x7feb10e4e408", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28183, - "line": 919, + "offset": 27916, + "line": 911, "col": 9, "tokLen": 1 }, "end": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 } @@ -35532,16 +35532,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd4360", + "id": "0x7feb10e4e3f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28185, + "offset": 27918, "col": 11, "tokLen": 2 }, "end": { - "offset": 28185, + "offset": 27918, "col": 11, "tokLen": 2 } @@ -35553,16 +35553,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd4340", + "id": "0x7feb10e4e3d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28185, + "offset": 27918, "col": 11, "tokLen": 2 }, "end": { - "offset": 28185, + "offset": 27918, "col": 11, "tokLen": 2 } @@ -35572,7 +35572,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -35583,16 +35583,16 @@ ] }, { - "id": "0x7f0da6bd3118", + "id": "0x7feb10e4d1a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28183, + "offset": 27916, "col": 9, "tokLen": 1 }, "end": { - "offset": 28183, + "offset": 27916, "col": 9, "tokLen": 1 } @@ -35600,11 +35600,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -35613,16 +35613,16 @@ } }, { - "id": "0x7f0da6bd4328", + "id": "0x7feb10e4e3b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 }, "end": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 } @@ -35634,16 +35634,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd3138", + "id": "0x7feb10e4d1c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 }, "end": { - "offset": 28188, + "offset": 27921, "col": 14, "tokLen": 9 } @@ -35659,33 +35659,33 @@ ] }, { - "id": "0x7f0da6bd4418", + "id": "0x7feb10e4e4a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28207, - "line": 920, + "offset": 27940, + "line": 912, "col": 9, "tokLen": 6 }, "end": { - "offset": 28220, + "offset": 27953, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bd43e8", + "id": "0x7feb10e4e478", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28214, + "offset": 27947, "col": 16, "tokLen": 4 }, "end": { - "offset": 28220, + "offset": 27953, "col": 22, "tokLen": 7 } @@ -35695,7 +35695,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe5a0", + "id": "0x37fef290", "kind": "EnumConstantDecl", "name": "VREF_DS", "type": { @@ -35708,467 +35708,35 @@ ] }, { - "id": "0x7f0da6bd5758", + "id": "0x7feb10e4f7e8", "kind": "IfStmt", "range": { "begin": { - "offset": 28233, - "line": 921, + "offset": 27966, + "line": 913, "col": 5, "tokLen": 2 }, "end": { - "offset": 28276, - "line": 922, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd56a8", - "kind": "CXXOperatorCallExpr", - "range": { - "begin": { - "offset": 28237, - "line": 921, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28242, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "bool" - }, - "valueCategory": "prvalue", - "adl": true, - "inner": [ - { - "id": "0x7f0da6bd5690", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28239, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28239, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (*)(const basic_string, allocator> &, const char *)" - }, - "valueCategory": "prvalue", - "castKind": "FunctionToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd5670", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28239, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28239, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x2d2f20c8", - "kind": "FunctionDecl", - "name": "operator==", - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - } - } - } - ] - }, - { - "id": "0x7f0da6bd4448", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28237, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28237, - "col": 9, - "tokLen": 1 - } - }, - "type": { - "desugaredQualType": "const std::basic_string", - "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x7f0da6e4ae70", - "kind": "ParmVarDecl", - "name": "s", - "type": { - "qualType": "const std::string &" - } - } - }, - { - "id": "0x7f0da6bd5658", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28242, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28242, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char *" - }, - "valueCategory": "prvalue", - "castKind": "ArrayToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd4468", - "kind": "StringLiteral", - "range": { - "begin": { - "offset": 28242, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28242, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char[10]" - }, - "valueCategory": "lvalue", - "value": "\"vcascn_pb\"" - } - ] - } - ] - }, - { - "id": "0x7f0da6bd5748", - "kind": "ReturnStmt", - "range": { - "begin": { - "offset": 28263, - "line": 922, - "col": 9, - "tokLen": 6 - }, - "end": { - "offset": 28276, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd5718", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28270, - "col": 16, - "tokLen": 4 - }, - "end": { - "offset": 28276, - "col": 22, - "tokLen": 9 - } - }, - "type": { - "qualType": "slsDetectorDefs::dacIndex" - }, - "valueCategory": "prvalue", - "referencedDecl": { - "id": "0x2cdbe5f0", - "kind": "EnumConstantDecl", - "name": "VCASCN_PB", - "type": { - "qualType": "slsDetectorDefs::dacIndex" - } - } - } - ] - } - ] - }, - { - "id": "0x7f0da6bd6a88", - "kind": "IfStmt", - "range": { - "begin": { - "offset": 28291, - "line": 923, - "col": 5, - "tokLen": 2 - }, - "end": { - "offset": 28334, - "line": 924, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd69d8", - "kind": "CXXOperatorCallExpr", - "range": { - "begin": { - "offset": 28295, - "line": 923, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28300, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "bool" - }, - "valueCategory": "prvalue", - "adl": true, - "inner": [ - { - "id": "0x7f0da6bd69c0", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28297, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28297, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (*)(const basic_string, allocator> &, const char *)" - }, - "valueCategory": "prvalue", - "castKind": "FunctionToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd69a0", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28297, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28297, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x2d2f20c8", - "kind": "FunctionDecl", - "name": "operator==", - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - } - } - } - ] - }, - { - "id": "0x7f0da6bd5778", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28295, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28295, - "col": 9, - "tokLen": 1 - } - }, - "type": { - "desugaredQualType": "const std::basic_string", - "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x7f0da6e4ae70", - "kind": "ParmVarDecl", - "name": "s", - "type": { - "qualType": "const std::string &" - } - } - }, - { - "id": "0x7f0da6bd6988", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28300, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28300, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char *" - }, - "valueCategory": "prvalue", - "castKind": "ArrayToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd5798", - "kind": "StringLiteral", - "range": { - "begin": { - "offset": 28300, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28300, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char[10]" - }, - "valueCategory": "lvalue", - "value": "\"vcascp_pb\"" - } - ] - } - ] - }, - { - "id": "0x7f0da6bd6a78", - "kind": "ReturnStmt", - "range": { - "begin": { - "offset": 28321, - "line": 924, - "col": 9, - "tokLen": 6 - }, - "end": { - "offset": 28334, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd6a48", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28328, - "col": 16, - "tokLen": 4 - }, - "end": { - "offset": 28334, - "col": 22, - "tokLen": 9 - } - }, - "type": { - "qualType": "slsDetectorDefs::dacIndex" - }, - "valueCategory": "prvalue", - "referencedDecl": { - "id": "0x2cdbe640", - "kind": "EnumConstantDecl", - "name": "VCASCP_PB", - "type": { - "qualType": "slsDetectorDefs::dacIndex" - } - } - } - ] - } - ] - }, - { - "id": "0x7f0da6bd7db8", - "kind": "IfStmt", - "range": { - "begin": { - "offset": 28349, - "line": 925, - "col": 5, - "tokLen": 2 - }, - "end": { - "offset": 28390, - "line": 926, + "offset": 28007, + "line": 914, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bd7d08", + "id": "0x7feb10e4f738", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28353, - "line": 925, + "offset": 27970, + "line": 913, "col": 9, "tokLen": 1 }, "end": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 } @@ -36180,16 +35748,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bd7cf0", + "id": "0x7feb10e4f720", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28355, + "offset": 27972, "col": 11, "tokLen": 2 }, "end": { - "offset": 28355, + "offset": 27972, "col": 11, "tokLen": 2 } @@ -36201,16 +35769,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bd7cd0", + "id": "0x7feb10e4f700", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28355, + "offset": 27972, "col": 11, "tokLen": 2 }, "end": { - "offset": 28355, + "offset": 27972, "col": 11, "tokLen": 2 } @@ -36220,7 +35788,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -36231,16 +35799,16 @@ ] }, { - "id": "0x7f0da6bd6aa8", + "id": "0x7feb10e4e4d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28353, + "offset": 27970, "col": 9, "tokLen": 1 }, "end": { - "offset": 28353, + "offset": 27970, "col": 9, "tokLen": 1 } @@ -36248,11 +35816,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -36261,16 +35829,16 @@ } }, { - "id": "0x7f0da6bd7cb8", + "id": "0x7feb10e4f6e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 }, "end": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 } @@ -36282,16 +35850,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd6ac8", + "id": "0x7feb10e4e4f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 }, "end": { - "offset": 28358, + "offset": 27975, "col": 14, "tokLen": 9 } @@ -36307,33 +35875,33 @@ ] }, { - "id": "0x7f0da6bd7da8", + "id": "0x7feb10e4f7d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28377, - "line": 926, + "offset": 27994, + "line": 914, "col": 9, "tokLen": 6 }, "end": { - "offset": 28390, + "offset": 28007, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bd7d78", + "id": "0x7feb10e4f7a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28384, + "offset": 28001, "col": 16, "tokLen": 4 }, "end": { - "offset": 28390, + "offset": 28007, "col": 22, "tokLen": 7 } @@ -36343,7 +35911,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe690", + "id": "0x37fef2e0", "kind": "EnumConstantDecl", "name": "VOUT_CM", "type": { @@ -36356,251 +35924,35 @@ ] }, { - "id": "0x7f0da6bd90e8", + "id": "0x7feb10e50b18", "kind": "IfStmt", "range": { "begin": { - "offset": 28403, - "line": 927, + "offset": 28020, + "line": 915, "col": 5, "tokLen": 2 }, "end": { - "offset": 28446, - "line": 928, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd9038", - "kind": "CXXOperatorCallExpr", - "range": { - "begin": { - "offset": 28407, - "line": 927, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28412, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "bool" - }, - "valueCategory": "prvalue", - "adl": true, - "inner": [ - { - "id": "0x7f0da6bd9020", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28409, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28409, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (*)(const basic_string, allocator> &, const char *)" - }, - "valueCategory": "prvalue", - "castKind": "FunctionToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd9000", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28409, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28409, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x2d2f20c8", - "kind": "FunctionDecl", - "name": "operator==", - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - } - } - } - ] - }, - { - "id": "0x7f0da6bd7dd8", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28407, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28407, - "col": 9, - "tokLen": 1 - } - }, - "type": { - "desugaredQualType": "const std::basic_string", - "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x7f0da6e4ae70", - "kind": "ParmVarDecl", - "name": "s", - "type": { - "qualType": "const std::string &" - } - } - }, - { - "id": "0x7f0da6bd8fe8", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28412, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28412, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char *" - }, - "valueCategory": "prvalue", - "castKind": "ArrayToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bd7df8", - "kind": "StringLiteral", - "range": { - "begin": { - "offset": 28412, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28412, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char[10]" - }, - "valueCategory": "lvalue", - "value": "\"vcasc_out\"" - } - ] - } - ] - }, - { - "id": "0x7f0da6bd90d8", - "kind": "ReturnStmt", - "range": { - "begin": { - "offset": 28433, - "line": 928, - "col": 9, - "tokLen": 6 - }, - "end": { - "offset": 28446, - "col": 22, - "tokLen": 9 - } - }, - "inner": [ - { - "id": "0x7f0da6bd90a8", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28440, - "col": 16, - "tokLen": 4 - }, - "end": { - "offset": 28446, - "col": 22, - "tokLen": 9 - } - }, - "type": { - "qualType": "slsDetectorDefs::dacIndex" - }, - "valueCategory": "prvalue", - "referencedDecl": { - "id": "0x2cdbe6e0", - "kind": "EnumConstantDecl", - "name": "VCASC_OUT", - "type": { - "qualType": "slsDetectorDefs::dacIndex" - } - } - } - ] - } - ] - }, - { - "id": "0x7f0da6bda418", - "kind": "IfStmt", - "range": { - "begin": { - "offset": 28461, - "line": 929, - "col": 5, - "tokLen": 2 - }, - "end": { - "offset": 28501, - "line": 930, + "offset": 28060, + "line": 916, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bda368", + "id": "0x7feb10e50a68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28465, - "line": 929, + "offset": 28024, + "line": 915, "col": 9, "tokLen": 1 }, "end": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 } @@ -36612,16 +35964,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bda350", + "id": "0x7feb10e50a50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28467, + "offset": 28026, "col": 11, "tokLen": 2 }, "end": { - "offset": 28467, + "offset": 28026, "col": 11, "tokLen": 2 } @@ -36633,16 +35985,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bda330", + "id": "0x7feb10e50a30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28467, + "offset": 28026, "col": 11, "tokLen": 2 }, "end": { - "offset": 28467, + "offset": 28026, "col": 11, "tokLen": 2 } @@ -36652,7 +36004,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -36663,16 +36015,16 @@ ] }, { - "id": "0x7f0da6bd9108", + "id": "0x7feb10e4f808", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28465, + "offset": 28024, "col": 9, "tokLen": 1 }, "end": { - "offset": 28465, + "offset": 28024, "col": 9, "tokLen": 1 } @@ -36680,11 +36032,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -36693,16 +36045,16 @@ } }, { - "id": "0x7f0da6bda318", + "id": "0x7feb10e50a18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 }, "end": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 } @@ -36714,16 +36066,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bd9128", + "id": "0x7feb10e4f828", "kind": "StringLiteral", "range": { "begin": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 }, "end": { - "offset": 28470, + "offset": 28029, "col": 14, "tokLen": 8 } @@ -36739,33 +36091,33 @@ ] }, { - "id": "0x7f0da6bda408", + "id": "0x7feb10e50b08", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28488, - "line": 930, + "offset": 28047, + "line": 916, "col": 9, "tokLen": 6 }, "end": { - "offset": 28501, + "offset": 28060, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bda3d8", + "id": "0x7feb10e50ad8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28495, + "offset": 28054, "col": 16, "tokLen": 4 }, "end": { - "offset": 28501, + "offset": 28060, "col": 22, "tokLen": 6 } @@ -36775,7 +36127,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe730", + "id": "0x37fef330", "kind": "EnumConstantDecl", "name": "VIN_CM", "type": { @@ -36788,35 +36140,35 @@ ] }, { - "id": "0x7f0da6bdb748", + "id": "0x7feb10e51e48", "kind": "IfStmt", "range": { "begin": { - "offset": 28513, - "line": 931, + "offset": 28072, + "line": 917, "col": 5, "tokLen": 2 }, "end": { - "offset": 28556, - "line": 932, + "offset": 28115, + "line": 918, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bdb698", + "id": "0x7feb10e51d98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28517, - "line": 931, + "offset": 28076, + "line": 917, "col": 9, "tokLen": 1 }, "end": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 } @@ -36828,16 +36180,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bdb680", + "id": "0x7feb10e51d80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28519, + "offset": 28078, "col": 11, "tokLen": 2 }, "end": { - "offset": 28519, + "offset": 28078, "col": 11, "tokLen": 2 } @@ -36849,16 +36201,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bdb660", + "id": "0x7feb10e51d60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28519, + "offset": 28078, "col": 11, "tokLen": 2 }, "end": { - "offset": 28519, + "offset": 28078, "col": 11, "tokLen": 2 } @@ -36868,7 +36220,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -36879,16 +36231,16 @@ ] }, { - "id": "0x7f0da6bda438", + "id": "0x7feb10e50b38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28517, + "offset": 28076, "col": 9, "tokLen": 1 }, "end": { - "offset": 28517, + "offset": 28076, "col": 9, "tokLen": 1 } @@ -36896,11 +36248,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -36909,16 +36261,16 @@ } }, { - "id": "0x7f0da6bdb648", + "id": "0x7feb10e51d48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 }, "end": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 } @@ -36930,16 +36282,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bda458", + "id": "0x7feb10e50b58", "kind": "StringLiteral", "range": { "begin": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 }, "end": { - "offset": 28522, + "offset": 28081, "col": 14, "tokLen": 11 } @@ -36955,33 +36307,33 @@ ] }, { - "id": "0x7f0da6bdb738", + "id": "0x7feb10e51e38", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28543, - "line": 932, + "offset": 28102, + "line": 918, "col": 9, "tokLen": 6 }, "end": { - "offset": 28556, + "offset": 28115, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bdb708", + "id": "0x7feb10e51e08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28550, + "offset": 28109, "col": 16, "tokLen": 4 }, "end": { - "offset": 28556, + "offset": 28115, "col": 22, "tokLen": 9 } @@ -36991,7 +36343,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe780", + "id": "0x37fef380", "kind": "EnumConstantDecl", "name": "VREF_COMP", "type": { @@ -37004,251 +36356,35 @@ ] }, { - "id": "0x7f0da6bdca78", + "id": "0x7feb10e53178", "kind": "IfStmt", "range": { "begin": { - "offset": 28571, - "line": 933, + "offset": 28130, + "line": 919, "col": 5, "tokLen": 2 }, "end": { - "offset": 28614, - "line": 934, - "col": 22, - "tokLen": 8 - } - }, - "inner": [ - { - "id": "0x7f0da6bdc9c8", - "kind": "CXXOperatorCallExpr", - "range": { - "begin": { - "offset": 28575, - "line": 933, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28580, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "bool" - }, - "valueCategory": "prvalue", - "adl": true, - "inner": [ - { - "id": "0x7f0da6bdc9b0", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28577, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28577, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (*)(const basic_string, allocator> &, const char *)" - }, - "valueCategory": "prvalue", - "castKind": "FunctionToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bdc990", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28577, - "col": 11, - "tokLen": 2 - }, - "end": { - "offset": 28577, - "col": 11, - "tokLen": 2 - } - }, - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x2d2f20c8", - "kind": "FunctionDecl", - "name": "operator==", - "type": { - "qualType": "bool (const basic_string, allocator> &, const char *)" - } - } - } - ] - }, - { - "id": "0x7f0da6bdb768", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28575, - "col": 9, - "tokLen": 1 - }, - "end": { - "offset": 28575, - "col": 9, - "tokLen": 1 - } - }, - "type": { - "desugaredQualType": "const std::basic_string", - "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" - }, - "valueCategory": "lvalue", - "referencedDecl": { - "id": "0x7f0da6e4ae70", - "kind": "ParmVarDecl", - "name": "s", - "type": { - "qualType": "const std::string &" - } - } - }, - { - "id": "0x7f0da6bdc978", - "kind": "ImplicitCastExpr", - "range": { - "begin": { - "offset": 28580, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28580, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char *" - }, - "valueCategory": "prvalue", - "castKind": "ArrayToPointerDecay", - "inner": [ - { - "id": "0x7f0da6bdb788", - "kind": "StringLiteral", - "range": { - "begin": { - "offset": 28580, - "col": 14, - "tokLen": 11 - }, - "end": { - "offset": 28580, - "col": 14, - "tokLen": 11 - } - }, - "type": { - "qualType": "const char[10]" - }, - "valueCategory": "lvalue", - "value": "\"ib_test_c\"" - } - ] - } - ] - }, - { - "id": "0x7f0da6bdca68", - "kind": "ReturnStmt", - "range": { - "begin": { - "offset": 28601, - "line": 934, - "col": 9, - "tokLen": 6 - }, - "end": { - "offset": 28614, - "col": 22, - "tokLen": 8 - } - }, - "inner": [ - { - "id": "0x7f0da6bdca38", - "kind": "DeclRefExpr", - "range": { - "begin": { - "offset": 28608, - "col": 16, - "tokLen": 4 - }, - "end": { - "offset": 28614, - "col": 22, - "tokLen": 8 - } - }, - "type": { - "qualType": "slsDetectorDefs::dacIndex" - }, - "valueCategory": "prvalue", - "referencedDecl": { - "id": "0x2cdbe7d0", - "kind": "EnumConstantDecl", - "name": "IB_TESTC", - "type": { - "qualType": "slsDetectorDefs::dacIndex" - } - } - } - ] - } - ] - }, - { - "id": "0x7f0da6bddda8", - "kind": "IfStmt", - "range": { - "begin": { - "offset": 28628, - "line": 935, - "col": 5, - "tokLen": 2 - }, - "end": { - "offset": 28669, - "line": 936, + "offset": 28171, + "line": 920, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bddcf8", + "id": "0x7feb10e530c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28632, - "line": 935, + "offset": 28134, + "line": 919, "col": 9, "tokLen": 1 }, "end": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 } @@ -37260,16 +36396,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bddce0", + "id": "0x7feb10e530b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28634, + "offset": 28136, "col": 11, "tokLen": 2 }, "end": { - "offset": 28634, + "offset": 28136, "col": 11, "tokLen": 2 } @@ -37281,16 +36417,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bddcc0", + "id": "0x7feb10e53090", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28634, + "offset": 28136, "col": 11, "tokLen": 2 }, "end": { - "offset": 28634, + "offset": 28136, "col": 11, "tokLen": 2 } @@ -37300,7 +36436,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -37311,16 +36447,16 @@ ] }, { - "id": "0x7f0da6bdca98", + "id": "0x7feb10e51e68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28632, + "offset": 28134, "col": 9, "tokLen": 1 }, "end": { - "offset": 28632, + "offset": 28134, "col": 9, "tokLen": 1 } @@ -37328,11 +36464,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -37341,16 +36477,16 @@ } }, { - "id": "0x7f0da6bddca8", + "id": "0x7feb10e53078", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 }, "end": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 } @@ -37362,16 +36498,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bdcab8", + "id": "0x7feb10e51e88", "kind": "StringLiteral", "range": { "begin": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 }, "end": { - "offset": 28637, + "offset": 28139, "col": 14, "tokLen": 9 } @@ -37387,33 +36523,33 @@ ] }, { - "id": "0x7f0da6bddd98", + "id": "0x7feb10e53168", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28656, - "line": 936, + "offset": 28158, + "line": 920, "col": 9, "tokLen": 6 }, "end": { - "offset": 28669, + "offset": 28171, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6bddd68", + "id": "0x7feb10e53138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28663, + "offset": 28165, "col": 16, "tokLen": 4 }, "end": { - "offset": 28669, + "offset": 28171, "col": 22, "tokLen": 7 } @@ -37423,7 +36559,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe820", + "id": "0x37fef3d0", "kind": "EnumConstantDecl", "name": "VB_COMP", "type": { @@ -37436,35 +36572,35 @@ ] }, { - "id": "0x7f0da6b9e0f8", + "id": "0x7feb10e544a8", "kind": "IfStmt", "range": { "begin": { - "offset": 28682, - "line": 937, + "offset": 28184, + "line": 921, "col": 5, "tokLen": 2 }, "end": { - "offset": 28724, - "line": 938, + "offset": 28226, + "line": 922, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b9e048", + "id": "0x7feb10e543f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28686, - "line": 937, + "offset": 28188, + "line": 921, "col": 9, "tokLen": 1 }, "end": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 } @@ -37476,16 +36612,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b9e030", + "id": "0x7feb10e543e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28688, + "offset": 28190, "col": 11, "tokLen": 2 }, "end": { - "offset": 28688, + "offset": 28190, "col": 11, "tokLen": 2 } @@ -37497,16 +36633,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b9e010", + "id": "0x7feb10e543c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28688, + "offset": 28190, "col": 11, "tokLen": 2 }, "end": { - "offset": 28688, + "offset": 28190, "col": 11, "tokLen": 2 } @@ -37516,7 +36652,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -37527,16 +36663,16 @@ ] }, { - "id": "0x7f0da6bdddc8", + "id": "0x7feb10e53198", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28686, + "offset": 28188, "col": 9, "tokLen": 1 }, "end": { - "offset": 28686, + "offset": 28188, "col": 9, "tokLen": 1 } @@ -37544,11 +36680,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -37557,16 +36693,16 @@ } }, { - "id": "0x7f0da6b9dff8", + "id": "0x7feb10e543a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 }, "end": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 } @@ -37578,16 +36714,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bddde8", + "id": "0x7feb10e531b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 }, "end": { - "offset": 28691, + "offset": 28193, "col": 14, "tokLen": 10 } @@ -37603,33 +36739,33 @@ ] }, { - "id": "0x7f0da6b9e0e8", + "id": "0x7feb10e54498", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28711, - "line": 938, + "offset": 28213, + "line": 922, "col": 9, "tokLen": 6 }, "end": { - "offset": 28724, + "offset": 28226, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b9e0b8", + "id": "0x7feb10e54468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28718, + "offset": 28220, "col": 16, "tokLen": 4 }, "end": { - "offset": 28724, + "offset": 28226, "col": 22, "tokLen": 8 } @@ -37639,7 +36775,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe870", + "id": "0x37fef420", "kind": "EnumConstantDecl", "name": "VDD_PROT", "type": { @@ -37652,35 +36788,35 @@ ] }, { - "id": "0x7f0da6b9f428", + "id": "0x7feb10e557d8", "kind": "IfStmt", "range": { "begin": { - "offset": 28738, - "line": 939, + "offset": 28240, + "line": 923, "col": 5, "tokLen": 2 }, "end": { - "offset": 28779, - "line": 940, + "offset": 28281, + "line": 924, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b9f378", + "id": "0x7feb10e55728", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28742, - "line": 939, + "offset": 28244, + "line": 923, "col": 9, "tokLen": 1 }, "end": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 } @@ -37692,16 +36828,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b9f360", + "id": "0x7feb10e55710", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28744, + "offset": 28246, "col": 11, "tokLen": 2 }, "end": { - "offset": 28744, + "offset": 28246, "col": 11, "tokLen": 2 } @@ -37713,16 +36849,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b9f340", + "id": "0x7feb10e556f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28744, + "offset": 28246, "col": 11, "tokLen": 2 }, "end": { - "offset": 28744, + "offset": 28246, "col": 11, "tokLen": 2 } @@ -37732,7 +36868,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -37743,16 +36879,16 @@ ] }, { - "id": "0x7f0da6b9e118", + "id": "0x7feb10e544c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28742, + "offset": 28244, "col": 9, "tokLen": 1 }, "end": { - "offset": 28742, + "offset": 28244, "col": 9, "tokLen": 1 } @@ -37760,11 +36896,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -37773,16 +36909,16 @@ } }, { - "id": "0x7f0da6b9f328", + "id": "0x7feb10e556d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 }, "end": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 } @@ -37794,16 +36930,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b9e138", + "id": "0x7feb10e544e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 }, "end": { - "offset": 28747, + "offset": 28249, "col": 14, "tokLen": 9 } @@ -37819,33 +36955,33 @@ ] }, { - "id": "0x7f0da6b9f418", + "id": "0x7feb10e557c8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28766, - "line": 940, + "offset": 28268, + "line": 924, "col": 9, "tokLen": 6 }, "end": { - "offset": 28779, + "offset": 28281, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b9f3e8", + "id": "0x7feb10e55798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28773, + "offset": 28275, "col": 16, "tokLen": 4 }, "end": { - "offset": 28779, + "offset": 28281, "col": 22, "tokLen": 7 } @@ -37855,7 +36991,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe8c0", + "id": "0x37fef470", "kind": "EnumConstantDecl", "name": "VIN_COM", "type": { @@ -37868,35 +37004,35 @@ ] }, { - "id": "0x7f0da6ba0758", + "id": "0x7feb10e56b08", "kind": "IfStmt", "range": { "begin": { - "offset": 28792, - "line": 941, + "offset": 28294, + "line": 925, "col": 5, "tokLen": 2 }, "end": { - "offset": 28836, - "line": 942, + "offset": 28338, + "line": 926, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba06a8", + "id": "0x7feb10e56a58", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28796, - "line": 941, + "offset": 28298, + "line": 925, "col": 9, "tokLen": 1 }, "end": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 } @@ -37908,16 +37044,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba0690", + "id": "0x7feb10e56a40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28798, + "offset": 28300, "col": 11, "tokLen": 2 }, "end": { - "offset": 28798, + "offset": 28300, "col": 11, "tokLen": 2 } @@ -37929,16 +37065,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba0670", + "id": "0x7feb10e56a20", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28798, + "offset": 28300, "col": 11, "tokLen": 2 }, "end": { - "offset": 28798, + "offset": 28300, "col": 11, "tokLen": 2 } @@ -37948,7 +37084,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -37959,16 +37095,16 @@ ] }, { - "id": "0x7f0da6b9f448", + "id": "0x7feb10e557f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28796, + "offset": 28298, "col": 9, "tokLen": 1 }, "end": { - "offset": 28796, + "offset": 28298, "col": 9, "tokLen": 1 } @@ -37976,11 +37112,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -37989,16 +37125,16 @@ } }, { - "id": "0x7f0da6ba0658", + "id": "0x7feb10e56a08", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 }, "end": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 } @@ -38010,16 +37146,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b9f468", + "id": "0x7feb10e55818", "kind": "StringLiteral", "range": { "begin": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 }, "end": { - "offset": 28801, + "offset": 28303, "col": 14, "tokLen": 12 } @@ -38035,33 +37171,33 @@ ] }, { - "id": "0x7f0da6ba0748", + "id": "0x7feb10e56af8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28823, - "line": 942, + "offset": 28325, + "line": 926, "col": 9, "tokLen": 6 }, "end": { - "offset": 28836, + "offset": 28338, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba0718", + "id": "0x7feb10e56ac8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28830, + "offset": 28332, "col": 16, "tokLen": 4 }, "end": { - "offset": 28836, + "offset": 28338, "col": 22, "tokLen": 10 } @@ -38071,7 +37207,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe910", + "id": "0x37fef4c0", "kind": "EnumConstantDecl", "name": "VREF_PRECH", "type": { @@ -38084,35 +37220,35 @@ ] }, { - "id": "0x7f0da6ba1a88", + "id": "0x7feb10e57e38", "kind": "IfStmt", "range": { "begin": { - "offset": 28852, - "line": 943, + "offset": 28354, + "line": 927, "col": 5, "tokLen": 2 }, "end": { - "offset": 28895, - "line": 944, + "offset": 28397, + "line": 928, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6ba19d8", + "id": "0x7feb10e57d88", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28856, - "line": 943, + "offset": 28358, + "line": 927, "col": 9, "tokLen": 1 }, "end": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 } @@ -38124,16 +37260,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba19c0", + "id": "0x7feb10e57d70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28858, + "offset": 28360, "col": 11, "tokLen": 2 }, "end": { - "offset": 28858, + "offset": 28360, "col": 11, "tokLen": 2 } @@ -38145,16 +37281,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba19a0", + "id": "0x7feb10e57d50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28858, + "offset": 28360, "col": 11, "tokLen": 2 }, "end": { - "offset": 28858, + "offset": 28360, "col": 11, "tokLen": 2 } @@ -38164,7 +37300,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -38175,16 +37311,16 @@ ] }, { - "id": "0x7f0da6ba0778", + "id": "0x7feb10e56b28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28856, + "offset": 28358, "col": 9, "tokLen": 1 }, "end": { - "offset": 28856, + "offset": 28358, "col": 9, "tokLen": 1 } @@ -38192,11 +37328,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -38205,16 +37341,16 @@ } }, { - "id": "0x7f0da6ba1988", + "id": "0x7feb10e57d38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 }, "end": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 } @@ -38226,16 +37362,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba0798", + "id": "0x7feb10e56b48", "kind": "StringLiteral", "range": { "begin": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 }, "end": { - "offset": 28861, + "offset": 28363, "col": 14, "tokLen": 11 } @@ -38251,33 +37387,33 @@ ] }, { - "id": "0x7f0da6ba1a78", + "id": "0x7feb10e57e28", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28882, - "line": 944, + "offset": 28384, + "line": 928, "col": 9, "tokLen": 6 }, "end": { - "offset": 28895, + "offset": 28397, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6ba1a48", + "id": "0x7feb10e57df8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28889, + "offset": 28391, "col": 16, "tokLen": 4 }, "end": { - "offset": 28895, + "offset": 28397, "col": 22, "tokLen": 9 } @@ -38287,7 +37423,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe960", + "id": "0x37fef510", "kind": "EnumConstantDecl", "name": "VB_PIXBUF", "type": { @@ -38300,35 +37436,35 @@ ] }, { - "id": "0x7f0da6ba2db8", + "id": "0x7feb10e18168", "kind": "IfStmt", "range": { "begin": { - "offset": 28910, - "line": 945, + "offset": 28412, + "line": 929, "col": 5, "tokLen": 2 }, "end": { - "offset": 28949, - "line": 946, + "offset": 28451, + "line": 930, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6ba2d08", + "id": "0x7feb10e180b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28914, - "line": 945, + "offset": 28416, + "line": 929, "col": 9, "tokLen": 1 }, "end": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 } @@ -38340,16 +37476,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba2cf0", + "id": "0x7feb10e180a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28916, + "offset": 28418, "col": 11, "tokLen": 2 }, "end": { - "offset": 28916, + "offset": 28418, "col": 11, "tokLen": 2 } @@ -38361,16 +37497,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba2cd0", + "id": "0x7feb10e18080", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28916, + "offset": 28418, "col": 11, "tokLen": 2 }, "end": { - "offset": 28916, + "offset": 28418, "col": 11, "tokLen": 2 } @@ -38380,7 +37516,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -38391,16 +37527,16 @@ ] }, { - "id": "0x7f0da6ba1aa8", + "id": "0x7feb10e57e58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28914, + "offset": 28416, "col": 9, "tokLen": 1 }, "end": { - "offset": 28914, + "offset": 28416, "col": 9, "tokLen": 1 } @@ -38408,11 +37544,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -38421,16 +37557,16 @@ } }, { - "id": "0x7f0da6ba2cb8", + "id": "0x7feb10e18068", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 }, "end": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 } @@ -38442,16 +37578,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba1ac8", + "id": "0x7feb10e57e78", "kind": "StringLiteral", "range": { "begin": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 }, "end": { - "offset": 28919, + "offset": 28421, "col": 14, "tokLen": 7 } @@ -38467,33 +37603,33 @@ ] }, { - "id": "0x7f0da6ba2da8", + "id": "0x7feb10e18158", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28936, - "line": 946, + "offset": 28438, + "line": 930, "col": 9, "tokLen": 6 }, "end": { - "offset": 28949, + "offset": 28451, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6ba2d78", + "id": "0x7feb10e18128", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28943, + "offset": 28445, "col": 16, "tokLen": 4 }, "end": { - "offset": 28949, + "offset": 28451, "col": 22, "tokLen": 5 } @@ -38503,7 +37639,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe9b0", + "id": "0x37fef560", "kind": "EnumConstantDecl", "name": "VB_DS", "type": { @@ -38516,35 +37652,35 @@ ] }, { - "id": "0x7f0da6ba40e8", + "id": "0x7feb10e19498", "kind": "IfStmt", "range": { "begin": { - "offset": 28960, - "line": 947, + "offset": 28462, + "line": 931, "col": 5, "tokLen": 2 }, "end": { - "offset": 29004, - "line": 948, + "offset": 28506, + "line": 932, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba4038", + "id": "0x7feb10e193e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 28964, - "line": 947, + "offset": 28466, + "line": 931, "col": 9, "tokLen": 1 }, "end": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 } @@ -38556,16 +37692,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba4020", + "id": "0x7feb10e193d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28966, + "offset": 28468, "col": 11, "tokLen": 2 }, "end": { - "offset": 28966, + "offset": 28468, "col": 11, "tokLen": 2 } @@ -38577,16 +37713,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba4000", + "id": "0x7feb10e193b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28966, + "offset": 28468, "col": 11, "tokLen": 2 }, "end": { - "offset": 28966, + "offset": 28468, "col": 11, "tokLen": 2 } @@ -38596,7 +37732,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -38607,16 +37743,16 @@ ] }, { - "id": "0x7f0da6ba2dd8", + "id": "0x7feb10e18188", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28964, + "offset": 28466, "col": 9, "tokLen": 1 }, "end": { - "offset": 28964, + "offset": 28466, "col": 9, "tokLen": 1 } @@ -38624,11 +37760,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -38637,16 +37773,16 @@ } }, { - "id": "0x7f0da6ba3fe8", + "id": "0x7feb10e19398", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 }, "end": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 } @@ -38658,16 +37794,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba2df8", + "id": "0x7feb10e181a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 }, "end": { - "offset": 28969, + "offset": 28471, "col": 14, "tokLen": 12 } @@ -38683,33 +37819,33 @@ ] }, { - "id": "0x7f0da6ba40d8", + "id": "0x7feb10e19488", "kind": "ReturnStmt", "range": { "begin": { - "offset": 28991, - "line": 948, + "offset": 28493, + "line": 932, "col": 9, "tokLen": 6 }, "end": { - "offset": 29004, + "offset": 28506, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba40a8", + "id": "0x7feb10e19458", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 28998, + "offset": 28500, "col": 16, "tokLen": 4 }, "end": { - "offset": 29004, + "offset": 28506, "col": 22, "tokLen": 10 } @@ -38719,7 +37855,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbea00", + "id": "0x37fef5b0", "kind": "EnumConstantDecl", "name": "VREF_H_ADC", "type": { @@ -38732,35 +37868,35 @@ ] }, { - "id": "0x7f0da6ba5418", + "id": "0x7feb10e1a7c8", "kind": "IfStmt", "range": { "begin": { - "offset": 29020, - "line": 949, + "offset": 28522, + "line": 933, "col": 5, "tokLen": 2 }, "end": { - "offset": 29064, - "line": 950, + "offset": 28566, + "line": 934, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba5368", + "id": "0x7feb10e1a718", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29024, - "line": 949, + "offset": 28526, + "line": 933, "col": 9, "tokLen": 1 }, "end": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 } @@ -38772,16 +37908,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba5350", + "id": "0x7feb10e1a700", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29026, + "offset": 28528, "col": 11, "tokLen": 2 }, "end": { - "offset": 29026, + "offset": 28528, "col": 11, "tokLen": 2 } @@ -38793,16 +37929,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba5330", + "id": "0x7feb10e1a6e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29026, + "offset": 28528, "col": 11, "tokLen": 2 }, "end": { - "offset": 29026, + "offset": 28528, "col": 11, "tokLen": 2 } @@ -38812,7 +37948,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -38823,16 +37959,16 @@ ] }, { - "id": "0x7f0da6ba4108", + "id": "0x7feb10e194b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29024, + "offset": 28526, "col": 9, "tokLen": 1 }, "end": { - "offset": 29024, + "offset": 28526, "col": 9, "tokLen": 1 } @@ -38840,11 +37976,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -38853,16 +37989,16 @@ } }, { - "id": "0x7f0da6ba5318", + "id": "0x7feb10e1a6c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 }, "end": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 } @@ -38874,16 +38010,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba4128", + "id": "0x7feb10e194d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 }, "end": { - "offset": 29029, + "offset": 28531, "col": 14, "tokLen": 12 } @@ -38899,33 +38035,33 @@ ] }, { - "id": "0x7f0da6ba5408", + "id": "0x7feb10e1a7b8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29051, - "line": 950, + "offset": 28553, + "line": 934, "col": 9, "tokLen": 6 }, "end": { - "offset": 29064, + "offset": 28566, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6ba53d8", + "id": "0x7feb10e1a788", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29058, + "offset": 28560, "col": 16, "tokLen": 4 }, "end": { - "offset": 29064, + "offset": 28566, "col": 22, "tokLen": 10 } @@ -38935,7 +38071,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbea50", + "id": "0x37fef600", "kind": "EnumConstantDecl", "name": "VB_COMP_FE", "type": { @@ -38948,35 +38084,35 @@ ] }, { - "id": "0x7f0da6ba6748", + "id": "0x7feb10e1baf8", "kind": "IfStmt", "range": { "begin": { - "offset": 29080, - "line": 951, + "offset": 28582, + "line": 935, "col": 5, "tokLen": 2 }, "end": { - "offset": 29125, - "line": 952, + "offset": 28627, + "line": 936, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6ba6698", + "id": "0x7feb10e1ba48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29084, - "line": 951, + "offset": 28586, + "line": 935, "col": 9, "tokLen": 1 }, "end": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 } @@ -38988,16 +38124,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba6680", + "id": "0x7feb10e1ba30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29086, + "offset": 28588, "col": 11, "tokLen": 2 }, "end": { - "offset": 29086, + "offset": 28588, "col": 11, "tokLen": 2 } @@ -39009,16 +38145,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba6660", + "id": "0x7feb10e1ba10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29086, + "offset": 28588, "col": 11, "tokLen": 2 }, "end": { - "offset": 29086, + "offset": 28588, "col": 11, "tokLen": 2 } @@ -39028,7 +38164,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39039,16 +38175,16 @@ ] }, { - "id": "0x7f0da6ba5438", + "id": "0x7feb10e1a7e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29084, + "offset": 28586, "col": 9, "tokLen": 1 }, "end": { - "offset": 29084, + "offset": 28586, "col": 9, "tokLen": 1 } @@ -39056,11 +38192,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39069,16 +38205,16 @@ } }, { - "id": "0x7f0da6ba6648", + "id": "0x7feb10e1b9f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 }, "end": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 } @@ -39090,16 +38226,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba5458", + "id": "0x7feb10e1a808", "kind": "StringLiteral", "range": { "begin": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 }, "end": { - "offset": 29089, + "offset": 28591, "col": 14, "tokLen": 13 } @@ -39115,33 +38251,33 @@ ] }, { - "id": "0x7f0da6ba6738", + "id": "0x7feb10e1bae8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29112, - "line": 952, + "offset": 28614, + "line": 936, "col": 9, "tokLen": 6 }, "end": { - "offset": 29125, + "offset": 28627, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6ba6708", + "id": "0x7feb10e1bab8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29119, + "offset": 28621, "col": 16, "tokLen": 4 }, "end": { - "offset": 29125, + "offset": 28627, "col": 22, "tokLen": 11 } @@ -39151,7 +38287,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeaa0", + "id": "0x37fef650", "kind": "EnumConstantDecl", "name": "VB_COMP_ADC", "type": { @@ -39164,35 +38300,35 @@ ] }, { - "id": "0x7f0da6ba7a78", + "id": "0x7feb10e1ce28", "kind": "IfStmt", "range": { "begin": { - "offset": 29142, - "line": 953, + "offset": 28644, + "line": 937, "col": 5, "tokLen": 2 }, "end": { - "offset": 29184, - "line": 954, + "offset": 28686, + "line": 938, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6ba79c8", + "id": "0x7feb10e1cd78", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29146, - "line": 953, + "offset": 28648, + "line": 937, "col": 9, "tokLen": 1 }, "end": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 } @@ -39204,16 +38340,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba79b0", + "id": "0x7feb10e1cd60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29148, + "offset": 28650, "col": 11, "tokLen": 2 }, "end": { - "offset": 29148, + "offset": 28650, "col": 11, "tokLen": 2 } @@ -39225,16 +38361,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba7990", + "id": "0x7feb10e1cd40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29148, + "offset": 28650, "col": 11, "tokLen": 2 }, "end": { - "offset": 29148, + "offset": 28650, "col": 11, "tokLen": 2 } @@ -39244,7 +38380,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39255,16 +38391,16 @@ ] }, { - "id": "0x7f0da6ba6768", + "id": "0x7feb10e1bb18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29146, + "offset": 28648, "col": 9, "tokLen": 1 }, "end": { - "offset": 29146, + "offset": 28648, "col": 9, "tokLen": 1 } @@ -39272,11 +38408,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39285,16 +38421,16 @@ } }, { - "id": "0x7f0da6ba7978", + "id": "0x7feb10e1cd28", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 }, "end": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 } @@ -39306,16 +38442,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba6788", + "id": "0x7feb10e1bb38", "kind": "StringLiteral", "range": { "begin": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 }, "end": { - "offset": 29151, + "offset": 28653, "col": 14, "tokLen": 10 } @@ -39331,33 +38467,33 @@ ] }, { - "id": "0x7f0da6ba7a68", + "id": "0x7feb10e1ce18", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29171, - "line": 954, + "offset": 28673, + "line": 938, "col": 9, "tokLen": 6 }, "end": { - "offset": 29184, + "offset": 28686, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6ba7a38", + "id": "0x7feb10e1cde8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29178, + "offset": 28680, "col": 16, "tokLen": 4 }, "end": { - "offset": 29184, + "offset": 28686, "col": 22, "tokLen": 8 } @@ -39367,7 +38503,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeaf0", + "id": "0x37fef6a0", "kind": "EnumConstantDecl", "name": "VCOM_CDS", "type": { @@ -39380,35 +38516,35 @@ ] }, { - "id": "0x7f0da6ba8da8", + "id": "0x7feb10e1e158", "kind": "IfStmt", "range": { "begin": { - "offset": 29198, - "line": 955, + "offset": 28700, + "line": 939, "col": 5, "tokLen": 2 }, "end": { - "offset": 29243, - "line": 956, + "offset": 28745, + "line": 940, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6ba8cf8", + "id": "0x7feb10e1e0a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29202, - "line": 955, + "offset": 28704, + "line": 939, "col": 9, "tokLen": 1 }, "end": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 } @@ -39420,16 +38556,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6ba8ce0", + "id": "0x7feb10e1e090", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29204, + "offset": 28706, "col": 11, "tokLen": 2 }, "end": { - "offset": 29204, + "offset": 28706, "col": 11, "tokLen": 2 } @@ -39441,16 +38577,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba8cc0", + "id": "0x7feb10e1e070", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29204, + "offset": 28706, "col": 11, "tokLen": 2 }, "end": { - "offset": 29204, + "offset": 28706, "col": 11, "tokLen": 2 } @@ -39460,7 +38596,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39471,16 +38607,16 @@ ] }, { - "id": "0x7f0da6ba7a98", + "id": "0x7feb10e1ce48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29202, + "offset": 28704, "col": 9, "tokLen": 1 }, "end": { - "offset": 29202, + "offset": 28704, "col": 9, "tokLen": 1 } @@ -39488,11 +38624,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39501,16 +38637,16 @@ } }, { - "id": "0x7f0da6ba8ca8", + "id": "0x7feb10e1e058", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 }, "end": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 } @@ -39522,16 +38658,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba7ab8", + "id": "0x7feb10e1ce68", "kind": "StringLiteral", "range": { "begin": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 }, "end": { - "offset": 29207, + "offset": 28709, "col": 14, "tokLen": 13 } @@ -39547,33 +38683,33 @@ ] }, { - "id": "0x7f0da6ba8d98", + "id": "0x7feb10e1e148", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29230, - "line": 956, + "offset": 28732, + "line": 940, "col": 9, "tokLen": 6 }, "end": { - "offset": 29243, + "offset": 28745, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6ba8d68", + "id": "0x7feb10e1e118", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29237, + "offset": 28739, "col": 16, "tokLen": 4 }, "end": { - "offset": 29243, + "offset": 28745, "col": 22, "tokLen": 11 } @@ -39583,7 +38719,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeb40", + "id": "0x37fef6f0", "kind": "EnumConstantDecl", "name": "VREF_RSTORE", "type": { @@ -39596,35 +38732,35 @@ ] }, { - "id": "0x7f0da6baa0d8", + "id": "0x7feb10e1f488", "kind": "IfStmt", "range": { "begin": { - "offset": 29260, - "line": 957, + "offset": 28762, + "line": 941, "col": 5, "tokLen": 2 }, "end": { - "offset": 29304, - "line": 958, + "offset": 28806, + "line": 942, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6baa028", + "id": "0x7feb10e1f3d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29264, - "line": 957, + "offset": 28766, + "line": 941, "col": 9, "tokLen": 1 }, "end": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 } @@ -39636,16 +38772,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6baa010", + "id": "0x7feb10e1f3c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29266, + "offset": 28768, "col": 11, "tokLen": 2 }, "end": { - "offset": 29266, + "offset": 28768, "col": 11, "tokLen": 2 } @@ -39657,16 +38793,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6ba9ff0", + "id": "0x7feb10e1f3a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29266, + "offset": 28768, "col": 11, "tokLen": 2 }, "end": { - "offset": 29266, + "offset": 28768, "col": 11, "tokLen": 2 } @@ -39676,7 +38812,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39687,16 +38823,16 @@ ] }, { - "id": "0x7f0da6ba8dc8", + "id": "0x7feb10e1e178", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29264, + "offset": 28766, "col": 9, "tokLen": 1 }, "end": { - "offset": 29264, + "offset": 28766, "col": 9, "tokLen": 1 } @@ -39704,11 +38840,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39717,16 +38853,16 @@ } }, { - "id": "0x7f0da6ba9fd8", + "id": "0x7feb10e1f388", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 }, "end": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 } @@ -39738,16 +38874,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6ba8de8", + "id": "0x7feb10e1e198", "kind": "StringLiteral", "range": { "begin": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 }, "end": { - "offset": 29269, + "offset": 28771, "col": 14, "tokLen": 12 } @@ -39763,33 +38899,33 @@ ] }, { - "id": "0x7f0da6baa0c8", + "id": "0x7feb10e1f478", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29291, - "line": 958, + "offset": 28793, + "line": 942, "col": 9, "tokLen": 6 }, "end": { - "offset": 29304, + "offset": 28806, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6baa098", + "id": "0x7feb10e1f448", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29298, + "offset": 28800, "col": 16, "tokLen": 4 }, "end": { - "offset": 29304, + "offset": 28806, "col": 22, "tokLen": 10 } @@ -39799,7 +38935,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeb90", + "id": "0x37fef740", "kind": "EnumConstantDecl", "name": "VB_OPA_1ST", "type": { @@ -39812,35 +38948,35 @@ ] }, { - "id": "0x7f0da6bab408", + "id": "0x7feb10e207b8", "kind": "IfStmt", "range": { "begin": { - "offset": 29320, - "line": 959, + "offset": 28822, + "line": 943, "col": 5, "tokLen": 2 }, "end": { - "offset": 29366, - "line": 960, + "offset": 28868, + "line": 944, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6bab358", + "id": "0x7feb10e20708", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29324, - "line": 959, + "offset": 28826, + "line": 943, "col": 9, "tokLen": 1 }, "end": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 } @@ -39852,16 +38988,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bab340", + "id": "0x7feb10e206f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29326, + "offset": 28828, "col": 11, "tokLen": 2 }, "end": { - "offset": 29326, + "offset": 28828, "col": 11, "tokLen": 2 } @@ -39873,16 +39009,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bab320", + "id": "0x7feb10e206d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29326, + "offset": 28828, "col": 11, "tokLen": 2 }, "end": { - "offset": 29326, + "offset": 28828, "col": 11, "tokLen": 2 } @@ -39892,7 +39028,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -39903,16 +39039,16 @@ ] }, { - "id": "0x7f0da6baa0f8", + "id": "0x7feb10e1f4a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29324, + "offset": 28826, "col": 9, "tokLen": 1 }, "end": { - "offset": 29324, + "offset": 28826, "col": 9, "tokLen": 1 } @@ -39920,11 +39056,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -39933,16 +39069,16 @@ } }, { - "id": "0x7f0da6bab308", + "id": "0x7feb10e206b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 }, "end": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 } @@ -39954,16 +39090,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6baa118", + "id": "0x7feb10e1f4c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 }, "end": { - "offset": 29329, + "offset": 28831, "col": 14, "tokLen": 14 } @@ -39979,33 +39115,33 @@ ] }, { - "id": "0x7f0da6bab3f8", + "id": "0x7feb10e207a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29353, - "line": 960, + "offset": 28855, + "line": 944, "col": 9, "tokLen": 6 }, "end": { - "offset": 29366, + "offset": 28868, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6bab3c8", + "id": "0x7feb10e20778", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29360, + "offset": 28862, "col": 16, "tokLen": 4 }, "end": { - "offset": 29366, + "offset": 28868, "col": 22, "tokLen": 12 } @@ -40015,7 +39151,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbebe0", + "id": "0x37fef790", "kind": "EnumConstantDecl", "name": "VREF_COMP_FE", "type": { @@ -40028,35 +39164,35 @@ ] }, { - "id": "0x7f0da6bac738", + "id": "0x7feb10e21ae8", "kind": "IfStmt", "range": { "begin": { - "offset": 29384, - "line": 961, + "offset": 28886, + "line": 945, "col": 5, "tokLen": 2 }, "end": { - "offset": 29427, - "line": 962, + "offset": 28929, + "line": 946, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bac688", + "id": "0x7feb10e21a38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29388, - "line": 961, + "offset": 28890, + "line": 945, "col": 9, "tokLen": 1 }, "end": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 } @@ -40068,16 +39204,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bac670", + "id": "0x7feb10e21a20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29390, + "offset": 28892, "col": 11, "tokLen": 2 }, "end": { - "offset": 29390, + "offset": 28892, "col": 11, "tokLen": 2 } @@ -40089,16 +39225,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bac650", + "id": "0x7feb10e21a00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29390, + "offset": 28892, "col": 11, "tokLen": 2 }, "end": { - "offset": 29390, + "offset": 28892, "col": 11, "tokLen": 2 } @@ -40108,7 +39244,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40119,16 +39255,16 @@ ] }, { - "id": "0x7f0da6bab428", + "id": "0x7feb10e207d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29388, + "offset": 28890, "col": 9, "tokLen": 1 }, "end": { - "offset": 29388, + "offset": 28890, "col": 9, "tokLen": 1 } @@ -40136,11 +39272,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -40149,16 +39285,16 @@ } }, { - "id": "0x7f0da6bac638", + "id": "0x7feb10e219e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 }, "end": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 } @@ -40170,16 +39306,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bab448", + "id": "0x7feb10e207f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 }, "end": { - "offset": 29393, + "offset": 28895, "col": 14, "tokLen": 11 } @@ -40195,33 +39331,33 @@ ] }, { - "id": "0x7f0da6bac728", + "id": "0x7feb10e21ad8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29414, - "line": 962, + "offset": 28916, + "line": 946, "col": 9, "tokLen": 6 }, "end": { - "offset": 29427, + "offset": 28929, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bac6f8", + "id": "0x7feb10e21aa8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29421, + "offset": 28923, "col": 16, "tokLen": 4 }, "end": { - "offset": 29427, + "offset": 28929, "col": 22, "tokLen": 9 } @@ -40231,7 +39367,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbec30", + "id": "0x37fef7e0", "kind": "EnumConstantDecl", "name": "VCOM_ADC1", "type": { @@ -40244,35 +39380,35 @@ ] }, { - "id": "0x7f0da6bada68", + "id": "0x7feb10e22e18", "kind": "IfStmt", "range": { "begin": { - "offset": 29442, - "line": 963, + "offset": 28944, + "line": 947, "col": 5, "tokLen": 2 }, "end": { - "offset": 29486, - "line": 964, + "offset": 28988, + "line": 948, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bad9b8", + "id": "0x7feb10e22d68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29446, - "line": 963, + "offset": 28948, + "line": 947, "col": 9, "tokLen": 1 }, "end": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 } @@ -40284,16 +39420,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bad9a0", + "id": "0x7feb10e22d50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29448, + "offset": 28950, "col": 11, "tokLen": 2 }, "end": { - "offset": 29448, + "offset": 28950, "col": 11, "tokLen": 2 } @@ -40305,16 +39441,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bad980", + "id": "0x7feb10e22d30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29448, + "offset": 28950, "col": 11, "tokLen": 2 }, "end": { - "offset": 29448, + "offset": 28950, "col": 11, "tokLen": 2 } @@ -40324,7 +39460,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40335,16 +39471,16 @@ ] }, { - "id": "0x7f0da6bac758", + "id": "0x7feb10e21b08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29446, + "offset": 28948, "col": 9, "tokLen": 1 }, "end": { - "offset": 29446, + "offset": 28948, "col": 9, "tokLen": 1 } @@ -40352,11 +39488,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -40365,16 +39501,16 @@ } }, { - "id": "0x7f0da6bad968", + "id": "0x7feb10e22d18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 }, "end": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 } @@ -40386,16 +39522,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bac778", + "id": "0x7feb10e21b28", "kind": "StringLiteral", "range": { "begin": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 }, "end": { - "offset": 29451, + "offset": 28953, "col": 14, "tokLen": 12 } @@ -40411,33 +39547,33 @@ ] }, { - "id": "0x7f0da6bada58", + "id": "0x7feb10e22e08", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29473, - "line": 964, + "offset": 28975, + "line": 948, "col": 9, "tokLen": 6 }, "end": { - "offset": 29486, + "offset": 28988, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bada28", + "id": "0x7feb10e22dd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29480, + "offset": 28982, "col": 16, "tokLen": 4 }, "end": { - "offset": 29486, + "offset": 28988, "col": 22, "tokLen": 10 } @@ -40447,7 +39583,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbec80", + "id": "0x37fef830", "kind": "EnumConstantDecl", "name": "VREF_L_ADC", "type": { @@ -40460,35 +39596,35 @@ ] }, { - "id": "0x7f0da6baed98", + "id": "0x7feb10e24148", "kind": "IfStmt", "range": { "begin": { - "offset": 29502, - "line": 965, + "offset": 29004, + "line": 949, "col": 5, "tokLen": 2 }, "end": { - "offset": 29544, - "line": 966, + "offset": 29046, + "line": 950, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6baece8", + "id": "0x7feb10e24098", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29506, - "line": 965, + "offset": 29008, + "line": 949, "col": 9, "tokLen": 1 }, "end": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 } @@ -40500,16 +39636,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6baecd0", + "id": "0x7feb10e24080", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29508, + "offset": 29010, "col": 11, "tokLen": 2 }, "end": { - "offset": 29508, + "offset": 29010, "col": 11, "tokLen": 2 } @@ -40521,16 +39657,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6baecb0", + "id": "0x7feb10e24060", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29508, + "offset": 29010, "col": 11, "tokLen": 2 }, "end": { - "offset": 29508, + "offset": 29010, "col": 11, "tokLen": 2 } @@ -40540,7 +39676,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40551,16 +39687,16 @@ ] }, { - "id": "0x7f0da6bada88", + "id": "0x7feb10e22e38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29506, + "offset": 29008, "col": 9, "tokLen": 1 }, "end": { - "offset": 29506, + "offset": 29008, "col": 9, "tokLen": 1 } @@ -40568,11 +39704,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -40581,16 +39717,16 @@ } }, { - "id": "0x7f0da6baec98", + "id": "0x7feb10e24048", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 }, "end": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 } @@ -40602,16 +39738,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6badaa8", + "id": "0x7feb10e22e58", "kind": "StringLiteral", "range": { "begin": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 }, "end": { - "offset": 29511, + "offset": 29013, "col": 14, "tokLen": 10 } @@ -40627,33 +39763,33 @@ ] }, { - "id": "0x7f0da6baed88", + "id": "0x7feb10e24138", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29531, - "line": 966, + "offset": 29033, + "line": 950, "col": 9, "tokLen": 6 }, "end": { - "offset": 29544, + "offset": 29046, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6baed58", + "id": "0x7feb10e24108", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29538, + "offset": 29040, "col": 16, "tokLen": 4 }, "end": { - "offset": 29544, + "offset": 29046, "col": 22, "tokLen": 8 } @@ -40663,7 +39799,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbecd0", + "id": "0x37fef880", "kind": "EnumConstantDecl", "name": "VREF_CDS", "type": { @@ -40676,35 +39812,35 @@ ] }, { - "id": "0x7f0da6bb00c8", + "id": "0x7feb10e25478", "kind": "IfStmt", "range": { "begin": { - "offset": 29558, - "line": 967, + "offset": 29060, + "line": 951, "col": 5, "tokLen": 2 }, "end": { - "offset": 29597, - "line": 968, + "offset": 29099, + "line": 952, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bb0018", + "id": "0x7feb10e253c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29562, - "line": 967, + "offset": 29064, + "line": 951, "col": 9, "tokLen": 1 }, "end": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 } @@ -40716,16 +39852,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb0000", + "id": "0x7feb10e253b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29564, + "offset": 29066, "col": 11, "tokLen": 2 }, "end": { - "offset": 29564, + "offset": 29066, "col": 11, "tokLen": 2 } @@ -40737,16 +39873,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6baffe0", + "id": "0x7feb10e25390", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29564, + "offset": 29066, "col": 11, "tokLen": 2 }, "end": { - "offset": 29564, + "offset": 29066, "col": 11, "tokLen": 2 } @@ -40756,7 +39892,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40767,16 +39903,16 @@ ] }, { - "id": "0x7f0da6baedb8", + "id": "0x7feb10e24168", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29562, + "offset": 29064, "col": 9, "tokLen": 1 }, "end": { - "offset": 29562, + "offset": 29064, "col": 9, "tokLen": 1 } @@ -40784,11 +39920,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -40797,16 +39933,16 @@ } }, { - "id": "0x7f0da6baffc8", + "id": "0x7feb10e25378", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 }, "end": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 } @@ -40818,16 +39954,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6baedd8", + "id": "0x7feb10e24188", "kind": "StringLiteral", "range": { "begin": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 }, "end": { - "offset": 29567, + "offset": 29069, "col": 14, "tokLen": 7 } @@ -40843,33 +39979,33 @@ ] }, { - "id": "0x7f0da6bb00b8", + "id": "0x7feb10e25468", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29584, - "line": 968, + "offset": 29086, + "line": 952, "col": 9, "tokLen": 6 }, "end": { - "offset": 29597, + "offset": 29099, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bb0088", + "id": "0x7feb10e25438", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29591, + "offset": 29093, "col": 16, "tokLen": 4 }, "end": { - "offset": 29597, + "offset": 29099, "col": 22, "tokLen": 5 } @@ -40879,7 +40015,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbed20", + "id": "0x37fef8d0", "kind": "EnumConstantDecl", "name": "VB_CS", "type": { @@ -40892,35 +40028,35 @@ ] }, { - "id": "0x7f0da6bb13f8", + "id": "0x7feb10e267a8", "kind": "IfStmt", "range": { "begin": { - "offset": 29608, - "line": 969, + "offset": 29110, + "line": 953, "col": 5, "tokLen": 2 }, "end": { - "offset": 29651, - "line": 970, + "offset": 29153, + "line": 954, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb1348", + "id": "0x7feb10e266f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29612, - "line": 969, + "offset": 29114, + "line": 953, "col": 9, "tokLen": 1 }, "end": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 } @@ -40932,16 +40068,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb1330", + "id": "0x7feb10e266e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29614, + "offset": 29116, "col": 11, "tokLen": 2 }, "end": { - "offset": 29614, + "offset": 29116, "col": 11, "tokLen": 2 } @@ -40953,16 +40089,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb1310", + "id": "0x7feb10e266c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29614, + "offset": 29116, "col": 11, "tokLen": 2 }, "end": { - "offset": 29614, + "offset": 29116, "col": 11, "tokLen": 2 } @@ -40972,7 +40108,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -40983,16 +40119,16 @@ ] }, { - "id": "0x7f0da6bb00e8", + "id": "0x7feb10e25498", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29612, + "offset": 29114, "col": 9, "tokLen": 1 }, "end": { - "offset": 29612, + "offset": 29114, "col": 9, "tokLen": 1 } @@ -41000,11 +40136,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41013,16 +40149,16 @@ } }, { - "id": "0x7f0da6bb12f8", + "id": "0x7feb10e266a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 }, "end": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 } @@ -41034,16 +40170,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb0108", + "id": "0x7feb10e254b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 }, "end": { - "offset": 29617, + "offset": 29119, "col": 14, "tokLen": 11 } @@ -41059,33 +40195,33 @@ ] }, { - "id": "0x7f0da6bb13e8", + "id": "0x7feb10e26798", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29638, - "line": 970, + "offset": 29140, + "line": 954, "col": 9, "tokLen": 6 }, "end": { - "offset": 29651, + "offset": 29153, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb13b8", + "id": "0x7feb10e26768", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29645, + "offset": 29147, "col": 16, "tokLen": 4 }, "end": { - "offset": 29651, + "offset": 29153, "col": 22, "tokLen": 9 } @@ -41095,7 +40231,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbed70", + "id": "0x37fef920", "kind": "EnumConstantDecl", "name": "VB_OPA_FD", "type": { @@ -41108,35 +40244,35 @@ ] }, { - "id": "0x7f0da6bb2728", + "id": "0x7feb10e27ad8", "kind": "IfStmt", "range": { "begin": { - "offset": 29666, - "line": 971, + "offset": 29168, + "line": 955, "col": 5, "tokLen": 2 }, "end": { - "offset": 29709, - "line": 972, + "offset": 29211, + "line": 956, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb2678", + "id": "0x7feb10e27a28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29670, - "line": 971, + "offset": 29172, + "line": 955, "col": 9, "tokLen": 1 }, "end": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 } @@ -41148,16 +40284,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb2660", + "id": "0x7feb10e27a10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29672, + "offset": 29174, "col": 11, "tokLen": 2 }, "end": { - "offset": 29672, + "offset": 29174, "col": 11, "tokLen": 2 } @@ -41169,16 +40305,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb2640", + "id": "0x7feb10e279f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29672, + "offset": 29174, "col": 11, "tokLen": 2 }, "end": { - "offset": 29672, + "offset": 29174, "col": 11, "tokLen": 2 } @@ -41188,7 +40324,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -41199,16 +40335,16 @@ ] }, { - "id": "0x7f0da6bb1418", + "id": "0x7feb10e267c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29670, + "offset": 29172, "col": 9, "tokLen": 1 }, "end": { - "offset": 29670, + "offset": 29172, "col": 9, "tokLen": 1 } @@ -41216,11 +40352,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41229,16 +40365,16 @@ } }, { - "id": "0x7f0da6bb2628", + "id": "0x7feb10e279d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 }, "end": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 } @@ -41250,16 +40386,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb1438", + "id": "0x7feb10e267e8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 }, "end": { - "offset": 29675, + "offset": 29177, "col": 14, "tokLen": 11 } @@ -41275,33 +40411,33 @@ ] }, { - "id": "0x7f0da6bb2718", + "id": "0x7feb10e27ac8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29696, - "line": 972, + "offset": 29198, + "line": 956, "col": 9, "tokLen": 6 }, "end": { - "offset": 29709, + "offset": 29211, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb26e8", + "id": "0x7feb10e27a98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29703, + "offset": 29205, "col": 16, "tokLen": 4 }, "end": { - "offset": 29709, + "offset": 29211, "col": 22, "tokLen": 9 } @@ -41311,7 +40447,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbedc0", + "id": "0x37fef970", "kind": "EnumConstantDecl", "name": "VCOM_ADC2", "type": { @@ -41324,35 +40460,35 @@ ] }, { - "id": "0x7f0da6bb3a58", + "id": "0x7feb10e28e08", "kind": "IfStmt", "range": { "begin": { - "offset": 29724, - "line": 973, + "offset": 29226, + "line": 957, "col": 5, "tokLen": 2 }, "end": { - "offset": 29764, - "line": 974, + "offset": 29266, + "line": 958, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bb39a8", + "id": "0x7feb10e28d58", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29728, - "line": 973, + "offset": 29230, + "line": 957, "col": 9, "tokLen": 1 }, "end": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 } @@ -41364,16 +40500,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb3990", + "id": "0x7feb10e28d40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29730, + "offset": 29232, "col": 11, "tokLen": 2 }, "end": { - "offset": 29730, + "offset": 29232, "col": 11, "tokLen": 2 } @@ -41385,16 +40521,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb3970", + "id": "0x7feb10e28d20", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29730, + "offset": 29232, "col": 11, "tokLen": 2 }, "end": { - "offset": 29730, + "offset": 29232, "col": 11, "tokLen": 2 } @@ -41404,7 +40540,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -41415,16 +40551,16 @@ ] }, { - "id": "0x7f0da6bb2748", + "id": "0x7feb10e27af8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29728, + "offset": 29230, "col": 9, "tokLen": 1 }, "end": { - "offset": 29728, + "offset": 29230, "col": 9, "tokLen": 1 } @@ -41432,11 +40568,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41445,16 +40581,16 @@ } }, { - "id": "0x7f0da6bb3958", + "id": "0x7feb10e28d08", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 }, "end": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 } @@ -41466,16 +40602,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb2768", + "id": "0x7feb10e27b18", "kind": "StringLiteral", "range": { "begin": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 }, "end": { - "offset": 29733, + "offset": 29235, "col": 14, "tokLen": 8 } @@ -41491,33 +40627,33 @@ ] }, { - "id": "0x7f0da6bb3a48", + "id": "0x7feb10e28df8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29751, - "line": 974, + "offset": 29253, + "line": 958, "col": 9, "tokLen": 6 }, "end": { - "offset": 29764, + "offset": 29266, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6bb3a18", + "id": "0x7feb10e28dc8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29758, + "offset": 29260, "col": 16, "tokLen": 4 }, "end": { - "offset": 29764, + "offset": 29266, "col": 22, "tokLen": 6 } @@ -41527,7 +40663,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbee10", + "id": "0x37fef9c0", "kind": "EnumConstantDecl", "name": "VCASSH", "type": { @@ -41540,35 +40676,35 @@ ] }, { - "id": "0x7f0da6bb4d88", + "id": "0x7feb10e2a138", "kind": "IfStmt", "range": { "begin": { - "offset": 29776, - "line": 975, + "offset": 29278, + "line": 959, "col": 5, "tokLen": 2 }, "end": { - "offset": 29814, - "line": 976, + "offset": 29316, + "line": 960, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb4cd8", + "id": "0x7feb10e2a088", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29780, - "line": 975, + "offset": 29282, + "line": 959, "col": 9, "tokLen": 1 }, "end": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 } @@ -41580,16 +40716,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb4cc0", + "id": "0x7feb10e2a070", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29782, + "offset": 29284, "col": 11, "tokLen": 2 }, "end": { - "offset": 29782, + "offset": 29284, "col": 11, "tokLen": 2 } @@ -41601,16 +40737,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb4ca0", + "id": "0x7feb10e2a050", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29782, + "offset": 29284, "col": 11, "tokLen": 2 }, "end": { - "offset": 29782, + "offset": 29284, "col": 11, "tokLen": 2 } @@ -41620,7 +40756,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -41631,16 +40767,16 @@ ] }, { - "id": "0x7f0da6bb3a78", + "id": "0x7feb10e28e28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29780, + "offset": 29282, "col": 9, "tokLen": 1 }, "end": { - "offset": 29780, + "offset": 29282, "col": 9, "tokLen": 1 } @@ -41648,11 +40784,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41661,16 +40797,16 @@ } }, { - "id": "0x7f0da6bb4c88", + "id": "0x7feb10e2a038", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 }, "end": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 } @@ -41682,16 +40818,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb3a98", + "id": "0x7feb10e28e48", "kind": "StringLiteral", "range": { "begin": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 }, "end": { - "offset": 29785, + "offset": 29287, "col": 14, "tokLen": 6 } @@ -41707,33 +40843,33 @@ ] }, { - "id": "0x7f0da6bb4d78", + "id": "0x7feb10e2a128", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29801, - "line": 976, + "offset": 29303, + "line": 960, "col": 9, "tokLen": 6 }, "end": { - "offset": 29814, + "offset": 29316, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb4d48", + "id": "0x7feb10e2a0f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29808, + "offset": 29310, "col": 16, "tokLen": 4 }, "end": { - "offset": 29814, + "offset": 29316, "col": 22, "tokLen": 4 } @@ -41743,7 +40879,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbee60", + "id": "0x37fefa10", "kind": "EnumConstantDecl", "name": "VTH2", "type": { @@ -41756,35 +40892,35 @@ ] }, { - "id": "0x7f0da6bb60b8", + "id": "0x7feb10e2b468", "kind": "IfStmt", "range": { "begin": { - "offset": 29824, - "line": 977, + "offset": 29326, + "line": 961, "col": 5, "tokLen": 2 }, "end": { - "offset": 29868, - "line": 978, + "offset": 29370, + "line": 962, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bb6008", + "id": "0x7feb10e2b3b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29828, - "line": 977, + "offset": 29330, + "line": 961, "col": 9, "tokLen": 1 }, "end": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 } @@ -41796,16 +40932,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb5ff0", + "id": "0x7feb10e2b3a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29830, + "offset": 29332, "col": 11, "tokLen": 2 }, "end": { - "offset": 29830, + "offset": 29332, "col": 11, "tokLen": 2 } @@ -41817,16 +40953,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb5fd0", + "id": "0x7feb10e2b380", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29830, + "offset": 29332, "col": 11, "tokLen": 2 }, "end": { - "offset": 29830, + "offset": 29332, "col": 11, "tokLen": 2 } @@ -41836,7 +40972,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -41847,16 +40983,16 @@ ] }, { - "id": "0x7f0da6bb4da8", + "id": "0x7feb10e2a158", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29828, + "offset": 29330, "col": 9, "tokLen": 1 }, "end": { - "offset": 29828, + "offset": 29330, "col": 9, "tokLen": 1 } @@ -41864,11 +41000,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -41877,16 +41013,16 @@ } }, { - "id": "0x7f0da6bb5fb8", + "id": "0x7feb10e2b368", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 }, "end": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 } @@ -41898,16 +41034,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb4dc8", + "id": "0x7feb10e2a178", "kind": "StringLiteral", "range": { "begin": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 }, "end": { - "offset": 29833, + "offset": 29335, "col": 14, "tokLen": 12 } @@ -41923,33 +41059,33 @@ ] }, { - "id": "0x7f0da6bb60a8", + "id": "0x7feb10e2b458", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29855, - "line": 978, + "offset": 29357, + "line": 962, "col": 9, "tokLen": 6 }, "end": { - "offset": 29868, + "offset": 29370, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6bb6078", + "id": "0x7feb10e2b428", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29862, + "offset": 29364, "col": 16, "tokLen": 4 }, "end": { - "offset": 29868, + "offset": 29370, "col": 22, "tokLen": 10 } @@ -41959,7 +41095,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeeb0", + "id": "0x37fefa60", "kind": "EnumConstantDecl", "name": "VRSHAPER_N", "type": { @@ -41972,35 +41108,35 @@ ] }, { - "id": "0x7f0da6bb73e8", + "id": "0x7feb10e2c798", "kind": "IfStmt", "range": { "begin": { - "offset": 29884, - "line": 979, + "offset": 29386, + "line": 963, "col": 5, "tokLen": 2 }, "end": { - "offset": 29927, - "line": 980, + "offset": 29429, + "line": 964, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb7338", + "id": "0x7feb10e2c6e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29888, - "line": 979, + "offset": 29390, + "line": 963, "col": 9, "tokLen": 1 }, "end": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 } @@ -42012,16 +41148,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb7320", + "id": "0x7feb10e2c6d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29890, + "offset": 29392, "col": 11, "tokLen": 2 }, "end": { - "offset": 29890, + "offset": 29392, "col": 11, "tokLen": 2 } @@ -42033,16 +41169,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb7300", + "id": "0x7feb10e2c6b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29890, + "offset": 29392, "col": 11, "tokLen": 2 }, "end": { - "offset": 29890, + "offset": 29392, "col": 11, "tokLen": 2 } @@ -42052,7 +41188,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42063,16 +41199,16 @@ ] }, { - "id": "0x7f0da6bb60d8", + "id": "0x7feb10e2b488", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29888, + "offset": 29390, "col": 9, "tokLen": 1 }, "end": { - "offset": 29888, + "offset": 29390, "col": 9, "tokLen": 1 } @@ -42080,11 +41216,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42093,16 +41229,16 @@ } }, { - "id": "0x7f0da6bb72e8", + "id": "0x7feb10e2c698", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 }, "end": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 } @@ -42114,16 +41250,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb60f8", + "id": "0x7feb10e2b4a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 }, "end": { - "offset": 29893, + "offset": 29395, "col": 14, "tokLen": 11 } @@ -42139,33 +41275,33 @@ ] }, { - "id": "0x7f0da6bb73d8", + "id": "0x7feb10e2c788", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29914, - "line": 980, + "offset": 29416, + "line": 964, "col": 9, "tokLen": 6 }, "end": { - "offset": 29927, + "offset": 29429, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6bb73a8", + "id": "0x7feb10e2c758", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29921, + "offset": 29423, "col": 16, "tokLen": 4 }, "end": { - "offset": 29927, + "offset": 29429, "col": 22, "tokLen": 9 } @@ -42175,7 +41311,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbef00", + "id": "0x37fefab0", "kind": "EnumConstantDecl", "name": "VIPRE_OUT", "type": { @@ -42188,35 +41324,35 @@ ] }, { - "id": "0x7f0da6bb8718", + "id": "0x7feb10e2dac8", "kind": "IfStmt", "range": { "begin": { - "offset": 29942, - "line": 981, + "offset": 29444, + "line": 965, "col": 5, "tokLen": 2 }, "end": { - "offset": 29980, - "line": 982, + "offset": 29482, + "line": 966, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb8668", + "id": "0x7feb10e2da18", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29946, - "line": 981, + "offset": 29448, + "line": 965, "col": 9, "tokLen": 1 }, "end": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 } @@ -42228,16 +41364,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb8650", + "id": "0x7feb10e2da00", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29948, + "offset": 29450, "col": 11, "tokLen": 2 }, "end": { - "offset": 29948, + "offset": 29450, "col": 11, "tokLen": 2 } @@ -42249,16 +41385,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb8630", + "id": "0x7feb10e2d9e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29948, + "offset": 29450, "col": 11, "tokLen": 2 }, "end": { - "offset": 29948, + "offset": 29450, "col": 11, "tokLen": 2 } @@ -42268,7 +41404,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42279,16 +41415,16 @@ ] }, { - "id": "0x7f0da6bb7408", + "id": "0x7feb10e2c7b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29946, + "offset": 29448, "col": 9, "tokLen": 1 }, "end": { - "offset": 29946, + "offset": 29448, "col": 9, "tokLen": 1 } @@ -42296,11 +41432,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42309,16 +41445,16 @@ } }, { - "id": "0x7f0da6bb8618", + "id": "0x7feb10e2d9c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 }, "end": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 } @@ -42330,16 +41466,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb7428", + "id": "0x7feb10e2c7d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 }, "end": { - "offset": 29951, + "offset": 29453, "col": 14, "tokLen": 6 } @@ -42355,33 +41491,33 @@ ] }, { - "id": "0x7f0da6bb8708", + "id": "0x7feb10e2dab8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 29967, - "line": 982, + "offset": 29469, + "line": 966, "col": 9, "tokLen": 6 }, "end": { - "offset": 29980, + "offset": 29482, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb86d8", + "id": "0x7feb10e2da88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29974, + "offset": 29476, "col": 16, "tokLen": 4 }, "end": { - "offset": 29980, + "offset": 29482, "col": 22, "tokLen": 4 } @@ -42391,7 +41527,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbef50", + "id": "0x37fefb00", "kind": "EnumConstantDecl", "name": "VTH3", "type": { @@ -42404,35 +41540,35 @@ ] }, { - "id": "0x7f0da6bb9a48", + "id": "0x7feb10e2edf8", "kind": "IfStmt", "range": { "begin": { - "offset": 29990, - "line": 983, + "offset": 29492, + "line": 967, "col": 5, "tokLen": 2 }, "end": { - "offset": 30028, - "line": 984, + "offset": 29530, + "line": 968, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb9998", + "id": "0x7feb10e2ed48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 29994, - "line": 983, + "offset": 29496, + "line": 967, "col": 9, "tokLen": 1 }, "end": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 } @@ -42444,16 +41580,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bb9980", + "id": "0x7feb10e2ed30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29996, + "offset": 29498, "col": 11, "tokLen": 2 }, "end": { - "offset": 29996, + "offset": 29498, "col": 11, "tokLen": 2 } @@ -42465,16 +41601,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bb9960", + "id": "0x7feb10e2ed10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29996, + "offset": 29498, "col": 11, "tokLen": 2 }, "end": { - "offset": 29996, + "offset": 29498, "col": 11, "tokLen": 2 } @@ -42484,7 +41620,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42495,16 +41631,16 @@ ] }, { - "id": "0x7f0da6bb8738", + "id": "0x7feb10e2dae8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 29994, + "offset": 29496, "col": 9, "tokLen": 1 }, "end": { - "offset": 29994, + "offset": 29496, "col": 9, "tokLen": 1 } @@ -42512,11 +41648,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42525,16 +41661,16 @@ } }, { - "id": "0x7f0da6bb9948", + "id": "0x7feb10e2ecf8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 }, "end": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 } @@ -42546,16 +41682,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb8758", + "id": "0x7feb10e2db08", "kind": "StringLiteral", "range": { "begin": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 }, "end": { - "offset": 29999, + "offset": 29501, "col": 14, "tokLen": 6 } @@ -42571,33 +41707,33 @@ ] }, { - "id": "0x7f0da6bb9a38", + "id": "0x7feb10e2ede8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30015, - "line": 984, + "offset": 29517, + "line": 968, "col": 9, "tokLen": 6 }, "end": { - "offset": 30028, + "offset": 29530, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bb9a08", + "id": "0x7feb10e2edb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30022, + "offset": 29524, "col": 16, "tokLen": 4 }, "end": { - "offset": 30028, + "offset": 29530, "col": 22, "tokLen": 4 } @@ -42607,7 +41743,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbefa0", + "id": "0x37fefb50", "kind": "EnumConstantDecl", "name": "VTH1", "type": { @@ -42620,35 +41756,35 @@ ] }, { - "id": "0x7f0da6bbad78", + "id": "0x7feb10e30128", "kind": "IfStmt", "range": { "begin": { - "offset": 30038, - "line": 985, + "offset": 29540, + "line": 969, "col": 5, "tokLen": 2 }, "end": { - "offset": 30077, - "line": 986, + "offset": 29579, + "line": 970, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bbacc8", + "id": "0x7feb10e30078", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30042, - "line": 985, + "offset": 29544, + "line": 969, "col": 9, "tokLen": 1 }, "end": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 } @@ -42660,16 +41796,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bbacb0", + "id": "0x7feb10e30060", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30044, + "offset": 29546, "col": 11, "tokLen": 2 }, "end": { - "offset": 30044, + "offset": 29546, "col": 11, "tokLen": 2 } @@ -42681,16 +41817,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bbac90", + "id": "0x7feb10e30040", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30044, + "offset": 29546, "col": 11, "tokLen": 2 }, "end": { - "offset": 30044, + "offset": 29546, "col": 11, "tokLen": 2 } @@ -42700,7 +41836,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42711,16 +41847,16 @@ ] }, { - "id": "0x7f0da6bb9a68", + "id": "0x7feb10e2ee18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30042, + "offset": 29544, "col": 9, "tokLen": 1 }, "end": { - "offset": 30042, + "offset": 29544, "col": 9, "tokLen": 1 } @@ -42728,11 +41864,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42741,16 +41877,16 @@ } }, { - "id": "0x7f0da6bbac78", + "id": "0x7feb10e30028", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 }, "end": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 } @@ -42762,16 +41898,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bb9a88", + "id": "0x7feb10e2ee38", "kind": "StringLiteral", "range": { "begin": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 }, "end": { - "offset": 30047, + "offset": 29549, "col": 14, "tokLen": 7 } @@ -42787,33 +41923,33 @@ ] }, { - "id": "0x7f0da6bbad68", + "id": "0x7feb10e30118", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30064, - "line": 986, + "offset": 29566, + "line": 970, "col": 9, "tokLen": 6 }, "end": { - "offset": 30077, + "offset": 29579, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6bbad38", + "id": "0x7feb10e300e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30071, + "offset": 29573, "col": 16, "tokLen": 4 }, "end": { - "offset": 30077, + "offset": 29579, "col": 22, "tokLen": 5 } @@ -42823,7 +41959,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbeff0", + "id": "0x37fefba0", "kind": "EnumConstantDecl", "name": "VICIN", "type": { @@ -42836,35 +41972,35 @@ ] }, { - "id": "0x7f0da6bbc0a8", + "id": "0x7feb10e31458", "kind": "IfStmt", "range": { "begin": { - "offset": 30088, - "line": 987, + "offset": 29590, + "line": 971, "col": 5, "tokLen": 2 }, "end": { - "offset": 30126, - "line": 988, + "offset": 29628, + "line": 972, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bbbff8", + "id": "0x7feb10e313a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30092, - "line": 987, + "offset": 29594, + "line": 971, "col": 9, "tokLen": 1 }, "end": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 } @@ -42876,16 +42012,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6bbbfe0", + "id": "0x7feb10e31390", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30094, + "offset": 29596, "col": 11, "tokLen": 2 }, "end": { - "offset": 30094, + "offset": 29596, "col": 11, "tokLen": 2 } @@ -42897,16 +42033,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6bbbfc0", + "id": "0x7feb10e31370", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30094, + "offset": 29596, "col": 11, "tokLen": 2 }, "end": { - "offset": 30094, + "offset": 29596, "col": 11, "tokLen": 2 } @@ -42916,7 +42052,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -42927,16 +42063,16 @@ ] }, { - "id": "0x7f0da6bbad98", + "id": "0x7feb10e30148", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30092, + "offset": 29594, "col": 9, "tokLen": 1 }, "end": { - "offset": 30092, + "offset": 29594, "col": 9, "tokLen": 1 } @@ -42944,11 +42080,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -42957,16 +42093,16 @@ } }, { - "id": "0x7f0da6bbbfa8", + "id": "0x7feb10e31358", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 }, "end": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 } @@ -42978,16 +42114,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bbadb8", + "id": "0x7feb10e30168", "kind": "StringLiteral", "range": { "begin": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 }, "end": { - "offset": 30097, + "offset": 29599, "col": 14, "tokLen": 6 } @@ -43003,33 +42139,33 @@ ] }, { - "id": "0x7f0da6bbc098", + "id": "0x7feb10e31448", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30113, - "line": 988, + "offset": 29615, + "line": 972, "col": 9, "tokLen": 6 }, "end": { - "offset": 30126, + "offset": 29628, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6bbc068", + "id": "0x7feb10e31418", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30120, + "offset": 29622, "col": 16, "tokLen": 4 }, "end": { - "offset": 30126, + "offset": 29628, "col": 22, "tokLen": 4 } @@ -43039,7 +42175,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf040", + "id": "0x37fefbf0", "kind": "EnumConstantDecl", "name": "VCAS", "type": { @@ -43052,35 +42188,35 @@ ] }, { - "id": "0x7f0da6b7c3e8", + "id": "0x7feb10e32788", "kind": "IfStmt", "range": { "begin": { - "offset": 30136, - "line": 989, + "offset": 29638, + "line": 973, "col": 5, "tokLen": 2 }, "end": { - "offset": 30176, - "line": 990, + "offset": 29678, + "line": 974, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b7c338", + "id": "0x7feb10e326d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30140, - "line": 989, + "offset": 29642, + "line": 973, "col": 9, "tokLen": 1 }, "end": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 } @@ -43092,16 +42228,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7c320", + "id": "0x7feb10e326c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30142, + "offset": 29644, "col": 11, "tokLen": 2 }, "end": { - "offset": 30142, + "offset": 29644, "col": 11, "tokLen": 2 } @@ -43113,16 +42249,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7c300", + "id": "0x7feb10e326a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30142, + "offset": 29644, "col": 11, "tokLen": 2 }, "end": { - "offset": 30142, + "offset": 29644, "col": 11, "tokLen": 2 } @@ -43132,7 +42268,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -43143,16 +42279,16 @@ ] }, { - "id": "0x7f0da6bbc0c8", + "id": "0x7feb10e31478", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30140, + "offset": 29642, "col": 9, "tokLen": 1 }, "end": { - "offset": 30140, + "offset": 29642, "col": 9, "tokLen": 1 } @@ -43160,11 +42296,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -43173,16 +42309,16 @@ } }, { - "id": "0x7f0da6b7c2e8", + "id": "0x7feb10e32688", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 }, "end": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 } @@ -43194,16 +42330,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6bbc0e8", + "id": "0x7feb10e31498", "kind": "StringLiteral", "range": { "begin": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 }, "end": { - "offset": 30145, + "offset": 29647, "col": 14, "tokLen": 8 } @@ -43219,33 +42355,33 @@ ] }, { - "id": "0x7f0da6b7c3d8", + "id": "0x7feb10e32778", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30163, - "line": 990, + "offset": 29665, + "line": 974, "col": 9, "tokLen": 6 }, "end": { - "offset": 30176, + "offset": 29678, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b7c3a8", + "id": "0x7feb10e32748", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30170, + "offset": 29672, "col": 16, "tokLen": 4 }, "end": { - "offset": 30176, + "offset": 29678, "col": 22, "tokLen": 6 } @@ -43255,7 +42391,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf090", + "id": "0x37fefc40", "kind": "EnumConstantDecl", "name": "VCAL_N", "type": { @@ -43268,35 +42404,35 @@ ] }, { - "id": "0x7f0da6b7d718", + "id": "0x7feb10e33ab8", "kind": "IfStmt", "range": { "begin": { - "offset": 30188, - "line": 991, + "offset": 29690, + "line": 975, "col": 5, "tokLen": 2 }, "end": { - "offset": 30227, - "line": 992, + "offset": 29729, + "line": 976, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b7d668", + "id": "0x7feb10e33a08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30192, - "line": 991, + "offset": 29694, + "line": 975, "col": 9, "tokLen": 1 }, "end": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 } @@ -43308,16 +42444,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7d650", + "id": "0x7feb10e339f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30194, + "offset": 29696, "col": 11, "tokLen": 2 }, "end": { - "offset": 30194, + "offset": 29696, "col": 11, "tokLen": 2 } @@ -43329,16 +42465,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7d630", + "id": "0x7feb10e339d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30194, + "offset": 29696, "col": 11, "tokLen": 2 }, "end": { - "offset": 30194, + "offset": 29696, "col": 11, "tokLen": 2 } @@ -43348,7 +42484,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -43359,16 +42495,16 @@ ] }, { - "id": "0x7f0da6b7c408", + "id": "0x7feb10e327a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30192, + "offset": 29694, "col": 9, "tokLen": 1 }, "end": { - "offset": 30192, + "offset": 29694, "col": 9, "tokLen": 1 } @@ -43376,11 +42512,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -43389,16 +42525,16 @@ } }, { - "id": "0x7f0da6b7d618", + "id": "0x7feb10e339b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 }, "end": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 } @@ -43410,16 +42546,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7c428", + "id": "0x7feb10e327c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 }, "end": { - "offset": 30197, + "offset": 29699, "col": 14, "tokLen": 7 } @@ -43435,33 +42571,33 @@ ] }, { - "id": "0x7f0da6b7d708", + "id": "0x7feb10e33aa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30214, - "line": 992, + "offset": 29716, + "line": 976, "col": 9, "tokLen": 6 }, "end": { - "offset": 30227, + "offset": 29729, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b7d6d8", + "id": "0x7feb10e33a78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30221, + "offset": 29723, "col": 16, "tokLen": 4 }, "end": { - "offset": 30227, + "offset": 29729, "col": 22, "tokLen": 5 } @@ -43471,7 +42607,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf0e0", + "id": "0x37fefc90", "kind": "EnumConstantDecl", "name": "VIPRE", "type": { @@ -43484,35 +42620,35 @@ ] }, { - "id": "0x7f0da6b7ea48", + "id": "0x7feb10e34de8", "kind": "IfStmt", "range": { "begin": { - "offset": 30238, - "line": 993, + "offset": 29740, + "line": 977, "col": 5, "tokLen": 2 }, "end": { - "offset": 30278, - "line": 994, + "offset": 29780, + "line": 978, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b7e998", + "id": "0x7feb10e34d38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30242, - "line": 993, + "offset": 29744, + "line": 977, "col": 9, "tokLen": 1 }, "end": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 } @@ -43524,16 +42660,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7e980", + "id": "0x7feb10e34d20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30244, + "offset": 29746, "col": 11, "tokLen": 2 }, "end": { - "offset": 30244, + "offset": 29746, "col": 11, "tokLen": 2 } @@ -43545,16 +42681,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7e960", + "id": "0x7feb10e34d00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30244, + "offset": 29746, "col": 11, "tokLen": 2 }, "end": { - "offset": 30244, + "offset": 29746, "col": 11, "tokLen": 2 } @@ -43564,7 +42700,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -43575,16 +42711,16 @@ ] }, { - "id": "0x7f0da6b7d738", + "id": "0x7feb10e33ad8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30242, + "offset": 29744, "col": 9, "tokLen": 1 }, "end": { - "offset": 30242, + "offset": 29744, "col": 9, "tokLen": 1 } @@ -43592,11 +42728,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -43605,16 +42741,16 @@ } }, { - "id": "0x7f0da6b7e948", + "id": "0x7feb10e34ce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 }, "end": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 } @@ -43626,16 +42762,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7d758", + "id": "0x7feb10e33af8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 }, "end": { - "offset": 30247, + "offset": 29749, "col": 14, "tokLen": 8 } @@ -43651,33 +42787,33 @@ ] }, { - "id": "0x7f0da6b7ea38", + "id": "0x7feb10e34dd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30265, - "line": 994, + "offset": 29767, + "line": 978, "col": 9, "tokLen": 6 }, "end": { - "offset": 30278, + "offset": 29780, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b7ea08", + "id": "0x7feb10e34da8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30272, + "offset": 29774, "col": 16, "tokLen": 4 }, "end": { - "offset": 30278, + "offset": 29780, "col": 22, "tokLen": 6 } @@ -43687,7 +42823,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf130", + "id": "0x37fefce0", "kind": "EnumConstantDecl", "name": "VCAL_P", "type": { @@ -43700,35 +42836,35 @@ ] }, { - "id": "0x7f0da6b7fd78", + "id": "0x7feb10e36118", "kind": "IfStmt", "range": { "begin": { - "offset": 30290, - "line": 995, + "offset": 29792, + "line": 979, "col": 5, "tokLen": 2 }, "end": { - "offset": 30329, - "line": 996, + "offset": 29831, + "line": 980, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b7fcc8", + "id": "0x7feb10e36068", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30294, - "line": 995, + "offset": 29796, + "line": 979, "col": 9, "tokLen": 1 }, "end": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 } @@ -43740,16 +42876,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7fcb0", + "id": "0x7feb10e36050", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30296, + "offset": 29798, "col": 11, "tokLen": 2 }, "end": { - "offset": 30296, + "offset": 29798, "col": 11, "tokLen": 2 } @@ -43761,16 +42897,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7fc90", + "id": "0x7feb10e36030", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30296, + "offset": 29798, "col": 11, "tokLen": 2 }, "end": { - "offset": 30296, + "offset": 29798, "col": 11, "tokLen": 2 } @@ -43780,7 +42916,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -43791,16 +42927,16 @@ ] }, { - "id": "0x7f0da6b7ea68", + "id": "0x7feb10e34e08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30294, + "offset": 29796, "col": 9, "tokLen": 1 }, "end": { - "offset": 30294, + "offset": 29796, "col": 9, "tokLen": 1 } @@ -43808,11 +42944,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -43821,16 +42957,16 @@ } }, { - "id": "0x7f0da6b7fc78", + "id": "0x7feb10e36018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 }, "end": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 } @@ -43842,16 +42978,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7ea88", + "id": "0x7feb10e34e28", "kind": "StringLiteral", "range": { "begin": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 }, "end": { - "offset": 30299, + "offset": 29801, "col": 14, "tokLen": 7 } @@ -43867,33 +43003,33 @@ ] }, { - "id": "0x7f0da6b7fd68", + "id": "0x7feb10e36108", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30316, - "line": 996, + "offset": 29818, + "line": 980, "col": 9, "tokLen": 6 }, "end": { - "offset": 30329, + "offset": 29831, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b7fd38", + "id": "0x7feb10e360d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30323, + "offset": 29825, "col": 16, "tokLen": 4 }, "end": { - "offset": 30329, + "offset": 29831, "col": 22, "tokLen": 5 } @@ -43903,7 +43039,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf180", + "id": "0x37fefd30", "kind": "EnumConstantDecl", "name": "VDCSH", "type": { @@ -43916,35 +43052,35 @@ ] }, { - "id": "0x7f0da6b810a8", + "id": "0x7feb10e37448", "kind": "IfStmt", "range": { "begin": { - "offset": 30340, - "line": 997, + "offset": 29842, + "line": 981, "col": 5, "tokLen": 2 }, "end": { - "offset": 30384, - "line": 998, + "offset": 29886, + "line": 982, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6b80ff8", + "id": "0x7feb10e37398", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30344, - "line": 997, + "offset": 29846, + "line": 981, "col": 9, "tokLen": 1 }, "end": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 } @@ -43956,16 +43092,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b80fe0", + "id": "0x7feb10e37380", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30346, + "offset": 29848, "col": 11, "tokLen": 2 }, "end": { - "offset": 30346, + "offset": 29848, "col": 11, "tokLen": 2 } @@ -43977,16 +43113,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b80fc0", + "id": "0x7feb10e37360", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30346, + "offset": 29848, "col": 11, "tokLen": 2 }, "end": { - "offset": 30346, + "offset": 29848, "col": 11, "tokLen": 2 } @@ -43996,7 +43132,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44007,16 +43143,16 @@ ] }, { - "id": "0x7f0da6b7fd98", + "id": "0x7feb10e36138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30344, + "offset": 29846, "col": 9, "tokLen": 1 }, "end": { - "offset": 30344, + "offset": 29846, "col": 9, "tokLen": 1 } @@ -44024,11 +43160,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44037,16 +43173,16 @@ } }, { - "id": "0x7f0da6b80fa8", + "id": "0x7feb10e37348", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 }, "end": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 } @@ -44058,16 +43194,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7fdb8", + "id": "0x7feb10e36158", "kind": "StringLiteral", "range": { "begin": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 }, "end": { - "offset": 30349, + "offset": 29851, "col": 14, "tokLen": 12 } @@ -44083,33 +43219,33 @@ ] }, { - "id": "0x7f0da6b81098", + "id": "0x7feb10e37438", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30371, - "line": 998, + "offset": 29873, + "line": 982, "col": 9, "tokLen": 6 }, "end": { - "offset": 30384, + "offset": 29886, "col": 22, "tokLen": 10 } }, "inner": [ { - "id": "0x7f0da6b81068", + "id": "0x7feb10e37408", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30378, + "offset": 29880, "col": 16, "tokLen": 4 }, "end": { - "offset": 30384, + "offset": 29886, "col": 22, "tokLen": 10 } @@ -44119,7 +43255,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf1d0", + "id": "0x37fefd80", "kind": "EnumConstantDecl", "name": "VBP_COLBUF", "type": { @@ -44132,35 +43268,35 @@ ] }, { - "id": "0x7f0da6b823d8", + "id": "0x7feb10df7798", "kind": "IfStmt", "range": { "begin": { - "offset": 30400, - "line": 999, + "offset": 29902, + "line": 983, "col": 5, "tokLen": 2 }, "end": { - "offset": 30440, - "line": 1000, + "offset": 29942, + "line": 984, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b82328", + "id": "0x7feb10df76e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30404, - "line": 999, + "offset": 29906, + "line": 983, "col": 9, "tokLen": 1 }, "end": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 } @@ -44172,16 +43308,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b82310", + "id": "0x7feb10df76d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30406, + "offset": 29908, "col": 11, "tokLen": 2 }, "end": { - "offset": 30406, + "offset": 29908, "col": 11, "tokLen": 2 } @@ -44193,16 +43329,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b822f0", + "id": "0x7feb10df76b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30406, + "offset": 29908, "col": 11, "tokLen": 2 }, "end": { - "offset": 30406, + "offset": 29908, "col": 11, "tokLen": 2 } @@ -44212,7 +43348,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44223,16 +43359,16 @@ ] }, { - "id": "0x7f0da6b810c8", + "id": "0x7feb10e37468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30404, + "offset": 29906, "col": 9, "tokLen": 1 }, "end": { - "offset": 30404, + "offset": 29906, "col": 9, "tokLen": 1 } @@ -44240,11 +43376,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44253,16 +43389,16 @@ } }, { - "id": "0x7f0da6b822d8", + "id": "0x7feb10df7698", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 }, "end": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 } @@ -44274,16 +43410,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b810e8", + "id": "0x7feb10e37488", "kind": "StringLiteral", "range": { "begin": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 }, "end": { - "offset": 30409, + "offset": 29911, "col": 14, "tokLen": 8 } @@ -44299,33 +43435,33 @@ ] }, { - "id": "0x7f0da6b823c8", + "id": "0x7feb10df7788", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30427, - "line": 1000, + "offset": 29929, + "line": 984, "col": 9, "tokLen": 6 }, "end": { - "offset": 30440, + "offset": 29942, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b82398", + "id": "0x7feb10df7758", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30434, + "offset": 29936, "col": 16, "tokLen": 4 }, "end": { - "offset": 30440, + "offset": 29942, "col": 22, "tokLen": 6 } @@ -44335,7 +43471,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf220", + "id": "0x37fefdd0", "kind": "EnumConstantDecl", "name": "VB_SDA", "type": { @@ -44348,35 +43484,35 @@ ] }, { - "id": "0x7f0da6b83708", + "id": "0x7feb10df8ac8", "kind": "IfStmt", "range": { "begin": { - "offset": 30452, - "line": 1001, + "offset": 29954, + "line": 985, "col": 5, "tokLen": 2 }, "end": { - "offset": 30495, - "line": 1002, + "offset": 29997, + "line": 986, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b83658", + "id": "0x7feb10df8a18", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30456, - "line": 1001, + "offset": 29958, + "line": 985, "col": 9, "tokLen": 1 }, "end": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 } @@ -44388,16 +43524,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b83640", + "id": "0x7feb10df8a00", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30458, + "offset": 29960, "col": 11, "tokLen": 2 }, "end": { - "offset": 30458, + "offset": 29960, "col": 11, "tokLen": 2 } @@ -44409,16 +43545,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b83620", + "id": "0x7feb10df89e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30458, + "offset": 29960, "col": 11, "tokLen": 2 }, "end": { - "offset": 30458, + "offset": 29960, "col": 11, "tokLen": 2 } @@ -44428,7 +43564,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44439,16 +43575,16 @@ ] }, { - "id": "0x7f0da6b823f8", + "id": "0x7feb10df77b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30456, + "offset": 29958, "col": 9, "tokLen": 1 }, "end": { - "offset": 30456, + "offset": 29958, "col": 9, "tokLen": 1 } @@ -44456,11 +43592,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44469,16 +43605,16 @@ } }, { - "id": "0x7f0da6b83608", + "id": "0x7feb10df89c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 }, "end": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 } @@ -44490,16 +43626,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b82418", + "id": "0x7feb10df77d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 }, "end": { - "offset": 30461, + "offset": 29963, "col": 14, "tokLen": 11 } @@ -44515,33 +43651,33 @@ ] }, { - "id": "0x7f0da6b836f8", + "id": "0x7feb10df8ab8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30482, - "line": 1002, + "offset": 29984, + "line": 986, "col": 9, "tokLen": 6 }, "end": { - "offset": 30495, + "offset": 29997, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b836c8", + "id": "0x7feb10df8a88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30489, + "offset": 29991, "col": 16, "tokLen": 4 }, "end": { - "offset": 30495, + "offset": 29997, "col": 22, "tokLen": 9 } @@ -44551,7 +43687,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf270", + "id": "0x37fefe20", "kind": "EnumConstantDecl", "name": "VCASC_SFP", "type": { @@ -44564,35 +43700,35 @@ ] }, { - "id": "0x7f0da6b84a38", + "id": "0x7feb10df9df8", "kind": "IfStmt", "range": { "begin": { - "offset": 30510, - "line": 1003, + "offset": 30012, + "line": 987, "col": 5, "tokLen": 2 }, "end": { - "offset": 30553, - "line": 1004, + "offset": 30055, + "line": 988, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b84988", + "id": "0x7feb10df9d48", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30514, - "line": 1003, + "offset": 30016, + "line": 987, "col": 9, "tokLen": 1 }, "end": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 } @@ -44604,16 +43740,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b84970", + "id": "0x7feb10df9d30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30516, + "offset": 30018, "col": 11, "tokLen": 2 }, "end": { - "offset": 30516, + "offset": 30018, "col": 11, "tokLen": 2 } @@ -44625,16 +43761,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b84950", + "id": "0x7feb10df9d10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30516, + "offset": 30018, "col": 11, "tokLen": 2 }, "end": { - "offset": 30516, + "offset": 30018, "col": 11, "tokLen": 2 } @@ -44644,7 +43780,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44655,16 +43791,16 @@ ] }, { - "id": "0x7f0da6b83728", + "id": "0x7feb10df8ae8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30514, + "offset": 30016, "col": 9, "tokLen": 1 }, "end": { - "offset": 30514, + "offset": 30016, "col": 9, "tokLen": 1 } @@ -44672,11 +43808,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44685,16 +43821,16 @@ } }, { - "id": "0x7f0da6b84938", + "id": "0x7feb10df9cf8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 }, "end": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 } @@ -44706,16 +43842,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b83748", + "id": "0x7feb10df8b08", "kind": "StringLiteral", "range": { "begin": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 }, "end": { - "offset": 30519, + "offset": 30021, "col": 14, "tokLen": 11 } @@ -44731,33 +43867,33 @@ ] }, { - "id": "0x7f0da6b84a28", + "id": "0x7feb10df9de8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30540, - "line": 1004, + "offset": 30042, + "line": 988, "col": 9, "tokLen": 6 }, "end": { - "offset": 30553, + "offset": 30055, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b849f8", + "id": "0x7feb10df9db8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30547, + "offset": 30049, "col": 16, "tokLen": 4 }, "end": { - "offset": 30553, + "offset": 30055, "col": 22, "tokLen": 9 } @@ -44767,7 +43903,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf2c0", + "id": "0x37fefe70", "kind": "EnumConstantDecl", "name": "VIPRE_CDS", "type": { @@ -44780,35 +43916,35 @@ ] }, { - "id": "0x7f0da6b85d68", + "id": "0x7feb10dfb128", "kind": "IfStmt", "range": { "begin": { - "offset": 30568, - "line": 1005, + "offset": 30070, + "line": 989, "col": 5, "tokLen": 2 }, "end": { - "offset": 30611, - "line": 1006, + "offset": 30113, + "line": 990, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b85cb8", + "id": "0x7feb10dfb078", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30572, - "line": 1005, + "offset": 30074, + "line": 989, "col": 9, "tokLen": 1 }, "end": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 } @@ -44820,16 +43956,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b85ca0", + "id": "0x7feb10dfb060", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30574, + "offset": 30076, "col": 11, "tokLen": 2 }, "end": { - "offset": 30574, + "offset": 30076, "col": 11, "tokLen": 2 } @@ -44841,16 +43977,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b85c80", + "id": "0x7feb10dfb040", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30574, + "offset": 30076, "col": 11, "tokLen": 2 }, "end": { - "offset": 30574, + "offset": 30076, "col": 11, "tokLen": 2 } @@ -44860,7 +43996,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -44871,16 +44007,16 @@ ] }, { - "id": "0x7f0da6b84a58", + "id": "0x7feb10df9e18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30572, + "offset": 30074, "col": 9, "tokLen": 1 }, "end": { - "offset": 30572, + "offset": 30074, "col": 9, "tokLen": 1 } @@ -44888,11 +44024,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -44901,16 +44037,16 @@ } }, { - "id": "0x7f0da6b85c68", + "id": "0x7feb10dfb028", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 }, "end": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 } @@ -44922,16 +44058,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b84a78", + "id": "0x7feb10df9e38", "kind": "StringLiteral", "range": { "begin": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 }, "end": { - "offset": 30577, + "offset": 30079, "col": 14, "tokLen": 11 } @@ -44947,33 +44083,33 @@ ] }, { - "id": "0x7f0da6b85d58", + "id": "0x7feb10dfb118", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30598, - "line": 1006, + "offset": 30100, + "line": 990, "col": 9, "tokLen": 6 }, "end": { - "offset": 30611, + "offset": 30113, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b85d28", + "id": "0x7feb10dfb0e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30605, + "offset": 30107, "col": 16, "tokLen": 4 }, "end": { - "offset": 30611, + "offset": 30113, "col": 22, "tokLen": 9 } @@ -44983,7 +44119,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf310", + "id": "0x37fefec0", "kind": "EnumConstantDecl", "name": "IBIAS_SFP", "type": { @@ -44996,35 +44132,35 @@ ] }, { - "id": "0x7f0da6b87098", + "id": "0x7feb10dfc458", "kind": "IfStmt", "range": { "begin": { - "offset": 30626, - "line": 1007, + "offset": 30128, + "line": 991, "col": 5, "tokLen": 2 }, "end": { - "offset": 30668, - "line": 1008, + "offset": 30170, + "line": 992, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6b86fe8", + "id": "0x7feb10dfc3a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30630, - "line": 1007, + "offset": 30132, + "line": 991, "col": 9, "tokLen": 1 }, "end": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 } @@ -45036,16 +44172,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b86fd0", + "id": "0x7feb10dfc390", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30632, + "offset": 30134, "col": 11, "tokLen": 2 }, "end": { - "offset": 30632, + "offset": 30134, "col": 11, "tokLen": 2 } @@ -45057,16 +44193,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b86fb0", + "id": "0x7feb10dfc370", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30632, + "offset": 30134, "col": 11, "tokLen": 2 }, "end": { - "offset": 30632, + "offset": 30134, "col": 11, "tokLen": 2 } @@ -45076,7 +44212,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45087,16 +44223,16 @@ ] }, { - "id": "0x7f0da6b85d88", + "id": "0x7feb10dfb148", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30630, + "offset": 30132, "col": 9, "tokLen": 1 }, "end": { - "offset": 30630, + "offset": 30132, "col": 9, "tokLen": 1 } @@ -45104,11 +44240,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45117,16 +44253,16 @@ } }, { - "id": "0x7f0da6b86f98", + "id": "0x7feb10dfc358", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 }, "end": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 } @@ -45138,16 +44274,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b85da8", + "id": "0x7feb10dfb168", "kind": "StringLiteral", "range": { "begin": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 }, "end": { - "offset": 30635, + "offset": 30137, "col": 14, "tokLen": 10 } @@ -45163,33 +44299,33 @@ ] }, { - "id": "0x7f0da6b87088", + "id": "0x7feb10dfc448", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30655, - "line": 1008, + "offset": 30157, + "line": 992, "col": 9, "tokLen": 6 }, "end": { - "offset": 30668, + "offset": 30170, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6b87058", + "id": "0x7feb10dfc418", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30662, + "offset": 30164, "col": 16, "tokLen": 4 }, "end": { - "offset": 30668, + "offset": 30170, "col": 22, "tokLen": 12 } @@ -45199,7 +44335,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf6d0", + "id": "0x37ff0280", "kind": "EnumConstantDecl", "name": "TRIMBIT_SCAN", "type": { @@ -45212,35 +44348,35 @@ ] }, { - "id": "0x7f0da6b883c8", + "id": "0x7feb10dfd788", "kind": "IfStmt", "range": { "begin": { - "offset": 30686, - "line": 1009, + "offset": 30188, + "line": 993, "col": 5, "tokLen": 2 }, "end": { - "offset": 30731, - "line": 1010, + "offset": 30233, + "line": 994, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6b88318", + "id": "0x7feb10dfd6d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30690, - "line": 1009, + "offset": 30192, + "line": 993, "col": 9, "tokLen": 1 }, "end": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 } @@ -45252,16 +44388,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b88300", + "id": "0x7feb10dfd6c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30692, + "offset": 30194, "col": 11, "tokLen": 2 }, "end": { - "offset": 30692, + "offset": 30194, "col": 11, "tokLen": 2 } @@ -45273,16 +44409,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b882e0", + "id": "0x7feb10dfd6a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30692, + "offset": 30194, "col": 11, "tokLen": 2 }, "end": { - "offset": 30692, + "offset": 30194, "col": 11, "tokLen": 2 } @@ -45292,7 +44428,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45303,16 +44439,16 @@ ] }, { - "id": "0x7f0da6b870b8", + "id": "0x7feb10dfc478", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30690, + "offset": 30192, "col": 9, "tokLen": 1 }, "end": { - "offset": 30690, + "offset": 30192, "col": 9, "tokLen": 1 } @@ -45320,11 +44456,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45333,16 +44469,16 @@ } }, { - "id": "0x7f0da6b882c8", + "id": "0x7feb10dfd688", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 }, "end": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 } @@ -45354,16 +44490,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b870d8", + "id": "0x7feb10dfc498", "kind": "StringLiteral", "range": { "begin": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 }, "end": { - "offset": 30695, + "offset": 30197, "col": 14, "tokLen": 13 } @@ -45379,33 +44515,33 @@ ] }, { - "id": "0x7f0da6b883b8", + "id": "0x7feb10dfd778", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30718, - "line": 1010, + "offset": 30220, + "line": 994, "col": 9, "tokLen": 6 }, "end": { - "offset": 30731, + "offset": 30233, "col": 22, "tokLen": 12 } }, "inner": [ { - "id": "0x7f0da6b88388", + "id": "0x7feb10dfd748", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30725, + "offset": 30227, "col": 16, "tokLen": 4 }, "end": { - "offset": 30731, + "offset": 30233, "col": 22, "tokLen": 12 } @@ -45415,7 +44551,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf3b0", + "id": "0x37feff60", "kind": "EnumConstantDecl", "name": "HIGH_VOLTAGE", "type": { @@ -45428,35 +44564,35 @@ ] }, { - "id": "0x7f0da6b896f8", + "id": "0x7feb10dfeab8", "kind": "IfStmt", "range": { "begin": { - "offset": 30749, - "line": 1011, + "offset": 30251, + "line": 995, "col": 5, "tokLen": 2 }, "end": { - "offset": 30790, - "line": 1012, + "offset": 30292, + "line": 996, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b89648", + "id": "0x7feb10dfea08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30753, - "line": 1011, + "offset": 30255, + "line": 995, "col": 9, "tokLen": 1 }, "end": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 } @@ -45468,16 +44604,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b89630", + "id": "0x7feb10dfe9f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30755, + "offset": 30257, "col": 11, "tokLen": 2 }, "end": { - "offset": 30755, + "offset": 30257, "col": 11, "tokLen": 2 } @@ -45489,16 +44625,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b89610", + "id": "0x7feb10dfe9d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30755, + "offset": 30257, "col": 11, "tokLen": 2 }, "end": { - "offset": 30755, + "offset": 30257, "col": 11, "tokLen": 2 } @@ -45508,7 +44644,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45519,16 +44655,16 @@ ] }, { - "id": "0x7f0da6b883e8", + "id": "0x7feb10dfd7a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30753, + "offset": 30255, "col": 9, "tokLen": 1 }, "end": { - "offset": 30753, + "offset": 30255, "col": 9, "tokLen": 1 } @@ -45536,11 +44672,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45549,16 +44685,16 @@ } }, { - "id": "0x7f0da6b895f8", + "id": "0x7feb10dfe9b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 }, "end": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 } @@ -45570,16 +44706,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b88408", + "id": "0x7feb10dfd7c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 }, "end": { - "offset": 30758, + "offset": 30260, "col": 14, "tokLen": 9 } @@ -45595,33 +44731,33 @@ ] }, { - "id": "0x7f0da6b896e8", + "id": "0x7feb10dfeaa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30777, - "line": 1012, + "offset": 30279, + "line": 996, "col": 9, "tokLen": 6 }, "end": { - "offset": 30790, + "offset": 30292, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b896b8", + "id": "0x7feb10dfea78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30784, + "offset": 30286, "col": 16, "tokLen": 4 }, "end": { - "offset": 30790, + "offset": 30292, "col": 22, "tokLen": 8 } @@ -45631,7 +44767,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbe550", + "id": "0x37fef240", "kind": "EnumConstantDecl", "name": "IO_DELAY", "type": { @@ -45644,35 +44780,35 @@ ] }, { - "id": "0x7f0da6b8aa28", + "id": "0x7feb10dffde8", "kind": "IfStmt", "range": { "begin": { - "offset": 30804, - "line": 1013, + "offset": 30306, + "line": 997, "col": 5, "tokLen": 2 }, "end": { - "offset": 30846, - "line": 1014, + "offset": 30348, + "line": 998, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b8a978", + "id": "0x7feb10dffd38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30808, - "line": 1013, + "offset": 30310, + "line": 997, "col": 9, "tokLen": 1 }, "end": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 } @@ -45684,16 +44820,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8a960", + "id": "0x7feb10dffd20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30810, + "offset": 30312, "col": 11, "tokLen": 2 }, "end": { - "offset": 30810, + "offset": 30312, "col": 11, "tokLen": 2 } @@ -45705,16 +44841,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8a940", + "id": "0x7feb10dffd00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30810, + "offset": 30312, "col": 11, "tokLen": 2 }, "end": { - "offset": 30810, + "offset": 30312, "col": 11, "tokLen": 2 } @@ -45724,7 +44860,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45735,16 +44871,16 @@ ] }, { - "id": "0x7f0da6b89718", + "id": "0x7feb10dfead8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30808, + "offset": 30310, "col": 9, "tokLen": 1 }, "end": { - "offset": 30808, + "offset": 30310, "col": 9, "tokLen": 1 } @@ -45752,11 +44888,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45765,16 +44901,16 @@ } }, { - "id": "0x7f0da6b8a928", + "id": "0x7feb10dffce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 }, "end": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 } @@ -45786,16 +44922,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b89738", + "id": "0x7feb10dfeaf8", "kind": "StringLiteral", "range": { "begin": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 }, "end": { - "offset": 30813, + "offset": 30315, "col": 14, "tokLen": 10 } @@ -45811,33 +44947,33 @@ ] }, { - "id": "0x7f0da6b8aa18", + "id": "0x7feb10dffdd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30833, - "line": 1014, + "offset": 30335, + "line": 998, "col": 9, "tokLen": 6 }, "end": { - "offset": 30846, + "offset": 30348, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b8a9e8", + "id": "0x7feb10dffda8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30840, + "offset": 30342, "col": 16, "tokLen": 4 }, "end": { - "offset": 30846, + "offset": 30348, "col": 22, "tokLen": 15 } @@ -45847,7 +44983,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf400", + "id": "0x37feffb0", "kind": "EnumConstantDecl", "name": "TEMPERATURE_ADC", "type": { @@ -45860,35 +44996,35 @@ ] }, { - "id": "0x7f0da6b8bd58", + "id": "0x7feb10e01118", "kind": "IfStmt", "range": { "begin": { - "offset": 30867, - "line": 1015, + "offset": 30369, + "line": 999, "col": 5, "tokLen": 2 }, "end": { - "offset": 30910, - "line": 1016, + "offset": 30412, + "line": 1000, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8bca8", + "id": "0x7feb10e01068", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30871, - "line": 1015, + "offset": 30373, + "line": 999, "col": 9, "tokLen": 1 }, "end": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 } @@ -45900,16 +45036,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8bc90", + "id": "0x7feb10e01050", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30873, + "offset": 30375, "col": 11, "tokLen": 2 }, "end": { - "offset": 30873, + "offset": 30375, "col": 11, "tokLen": 2 } @@ -45921,16 +45057,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8bc70", + "id": "0x7feb10e01030", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30873, + "offset": 30375, "col": 11, "tokLen": 2 }, "end": { - "offset": 30873, + "offset": 30375, "col": 11, "tokLen": 2 } @@ -45940,7 +45076,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -45951,16 +45087,16 @@ ] }, { - "id": "0x7f0da6b8aa48", + "id": "0x7feb10dffe08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30871, + "offset": 30373, "col": 9, "tokLen": 1 }, "end": { - "offset": 30871, + "offset": 30373, "col": 9, "tokLen": 1 } @@ -45968,11 +45104,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -45981,16 +45117,16 @@ } }, { - "id": "0x7f0da6b8bc58", + "id": "0x7feb10e01018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 }, "end": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 } @@ -46002,16 +45138,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8aa68", + "id": "0x7feb10dffe28", "kind": "StringLiteral", "range": { "begin": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 }, "end": { - "offset": 30876, + "offset": 30378, "col": 14, "tokLen": 11 } @@ -46027,33 +45163,33 @@ ] }, { - "id": "0x7f0da6b8bd48", + "id": "0x7feb10e01108", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30897, - "line": 1016, + "offset": 30399, + "line": 1000, "col": 9, "tokLen": 6 }, "end": { - "offset": 30910, + "offset": 30412, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8bd18", + "id": "0x7feb10e010d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30904, + "offset": 30406, "col": 16, "tokLen": 4 }, "end": { - "offset": 30910, + "offset": 30412, "col": 22, "tokLen": 16 } @@ -46063,7 +45199,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf450", + "id": "0x37ff0000", "kind": "EnumConstantDecl", "name": "TEMPERATURE_FPGA", "type": { @@ -46076,35 +45212,35 @@ ] }, { - "id": "0x7f0da6b8d088", + "id": "0x7feb10e02448", "kind": "IfStmt", "range": { "begin": { - "offset": 30932, - "line": 1017, + "offset": 30434, + "line": 1001, "col": 5, "tokLen": 2 }, "end": { - "offset": 30978, - "line": 1018, + "offset": 30480, + "line": 1002, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b8cfd8", + "id": "0x7feb10e02398", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 30936, - "line": 1017, + "offset": 30438, + "line": 1001, "col": 9, "tokLen": 1 }, "end": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 } @@ -46116,16 +45252,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8cfc0", + "id": "0x7feb10e02380", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30938, + "offset": 30440, "col": 11, "tokLen": 2 }, "end": { - "offset": 30938, + "offset": 30440, "col": 11, "tokLen": 2 } @@ -46137,16 +45273,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8cfa0", + "id": "0x7feb10e02360", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30938, + "offset": 30440, "col": 11, "tokLen": 2 }, "end": { - "offset": 30938, + "offset": 30440, "col": 11, "tokLen": 2 } @@ -46156,7 +45292,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -46167,16 +45303,16 @@ ] }, { - "id": "0x7f0da6b8bd78", + "id": "0x7feb10e01138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30936, + "offset": 30438, "col": 9, "tokLen": 1 }, "end": { - "offset": 30936, + "offset": 30438, "col": 9, "tokLen": 1 } @@ -46184,11 +45320,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -46197,16 +45333,16 @@ } }, { - "id": "0x7f0da6b8cf88", + "id": "0x7feb10e02348", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 }, "end": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 } @@ -46218,16 +45354,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8bd98", + "id": "0x7feb10e01158", "kind": "StringLiteral", "range": { "begin": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 }, "end": { - "offset": 30941, + "offset": 30443, "col": 14, "tokLen": 14 } @@ -46243,33 +45379,33 @@ ] }, { - "id": "0x7f0da6b8d078", + "id": "0x7feb10e02438", "kind": "ReturnStmt", "range": { "begin": { - "offset": 30965, - "line": 1018, + "offset": 30467, + "line": 1002, "col": 9, "tokLen": 6 }, "end": { - "offset": 30978, + "offset": 30480, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b8d048", + "id": "0x7feb10e02408", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 30972, + "offset": 30474, "col": 16, "tokLen": 4 }, "end": { - "offset": 30978, + "offset": 30480, "col": 22, "tokLen": 19 } @@ -46279,7 +45415,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf4a0", + "id": "0x37ff0050", "kind": "EnumConstantDecl", "name": "TEMPERATURE_FPGAEXT", "type": { @@ -46292,35 +45428,35 @@ ] }, { - "id": "0x7f0da6b8e3b8", + "id": "0x7feb10e03778", "kind": "IfStmt", "range": { "begin": { - "offset": 31003, - "line": 1019, + "offset": 30505, + "line": 1003, "col": 5, "tokLen": 2 }, "end": { - "offset": 31046, - "line": 1020, + "offset": 30548, + "line": 1004, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8e308", + "id": "0x7feb10e036c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31007, - "line": 1019, + "offset": 30509, + "line": 1003, "col": 9, "tokLen": 1 }, "end": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 } @@ -46332,16 +45468,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8e2f0", + "id": "0x7feb10e036b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31009, + "offset": 30511, "col": 11, "tokLen": 2 }, "end": { - "offset": 31009, + "offset": 30511, "col": 11, "tokLen": 2 } @@ -46353,16 +45489,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8e2d0", + "id": "0x7feb10e03690", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31009, + "offset": 30511, "col": 11, "tokLen": 2 }, "end": { - "offset": 31009, + "offset": 30511, "col": 11, "tokLen": 2 } @@ -46372,7 +45508,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -46383,16 +45519,16 @@ ] }, { - "id": "0x7f0da6b8d0a8", + "id": "0x7feb10e02468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31007, + "offset": 30509, "col": 9, "tokLen": 1 }, "end": { - "offset": 31007, + "offset": 30509, "col": 9, "tokLen": 1 } @@ -46400,11 +45536,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -46413,16 +45549,16 @@ } }, { - "id": "0x7f0da6b8e2b8", + "id": "0x7feb10e03678", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 }, "end": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 } @@ -46434,16 +45570,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8d0c8", + "id": "0x7feb10e02488", "kind": "StringLiteral", "range": { "begin": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 }, "end": { - "offset": 31012, + "offset": 30514, "col": 14, "tokLen": 11 } @@ -46459,33 +45595,33 @@ ] }, { - "id": "0x7f0da6b8e3a8", + "id": "0x7feb10e03768", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31033, - "line": 1020, + "offset": 30535, + "line": 1004, "col": 9, "tokLen": 6 }, "end": { - "offset": 31046, + "offset": 30548, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8e378", + "id": "0x7feb10e03738", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31040, + "offset": 30542, "col": 16, "tokLen": 4 }, "end": { - "offset": 31046, + "offset": 30548, "col": 22, "tokLen": 16 } @@ -46495,7 +45631,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf4f0", + "id": "0x37ff00a0", "kind": "EnumConstantDecl", "name": "TEMPERATURE_10GE", "type": { @@ -46508,35 +45644,35 @@ ] }, { - "id": "0x7f0da6b8f6e8", + "id": "0x7feb10e04aa8", "kind": "IfStmt", "range": { "begin": { - "offset": 31068, - "line": 1021, + "offset": 30570, + "line": 1005, "col": 5, "tokLen": 2 }, "end": { - "offset": 31111, - "line": 1022, + "offset": 30613, + "line": 1006, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8f638", + "id": "0x7feb10e049f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31072, - "line": 1021, + "offset": 30574, + "line": 1005, "col": 9, "tokLen": 1 }, "end": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 } @@ -46548,16 +45684,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b8f620", + "id": "0x7feb10e049e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31074, + "offset": 30576, "col": 11, "tokLen": 2 }, "end": { - "offset": 31074, + "offset": 30576, "col": 11, "tokLen": 2 } @@ -46569,16 +45705,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b8f600", + "id": "0x7feb10e049c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31074, + "offset": 30576, "col": 11, "tokLen": 2 }, "end": { - "offset": 31074, + "offset": 30576, "col": 11, "tokLen": 2 } @@ -46588,7 +45724,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -46599,16 +45735,16 @@ ] }, { - "id": "0x7f0da6b8e3d8", + "id": "0x7feb10e03798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31072, + "offset": 30574, "col": 9, "tokLen": 1 }, "end": { - "offset": 31072, + "offset": 30574, "col": 9, "tokLen": 1 } @@ -46616,11 +45752,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -46629,16 +45765,16 @@ } }, { - "id": "0x7f0da6b8f5e8", + "id": "0x7feb10e049a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 }, "end": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 } @@ -46650,16 +45786,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8e3f8", + "id": "0x7feb10e037b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 }, "end": { - "offset": 31077, + "offset": 30579, "col": 14, "tokLen": 11 } @@ -46675,33 +45811,33 @@ ] }, { - "id": "0x7f0da6b8f6d8", + "id": "0x7feb10e04a98", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31098, - "line": 1022, + "offset": 30600, + "line": 1006, "col": 9, "tokLen": 6 }, "end": { - "offset": 31111, + "offset": 30613, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b8f6a8", + "id": "0x7feb10e04a68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31105, + "offset": 30607, "col": 16, "tokLen": 4 }, "end": { - "offset": 31111, + "offset": 30613, "col": 22, "tokLen": 16 } @@ -46711,7 +45847,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf540", + "id": "0x37ff00f0", "kind": "EnumConstantDecl", "name": "TEMPERATURE_DCDC", "type": { @@ -46724,35 +45860,35 @@ ] }, { - "id": "0x7f0da6b90a18", + "id": "0x7feb10e05dd8", "kind": "IfStmt", "range": { "begin": { - "offset": 31133, - "line": 1023, + "offset": 30635, + "line": 1007, "col": 5, "tokLen": 2 }, "end": { - "offset": 31176, - "line": 1024, + "offset": 30678, + "line": 1008, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b90968", + "id": "0x7feb10e05d28", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31137, - "line": 1023, + "offset": 30639, + "line": 1007, "col": 9, "tokLen": 1 }, "end": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 } @@ -46764,16 +45900,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b90950", + "id": "0x7feb10e05d10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31139, + "offset": 30641, "col": 11, "tokLen": 2 }, "end": { - "offset": 31139, + "offset": 30641, "col": 11, "tokLen": 2 } @@ -46785,16 +45921,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b90930", + "id": "0x7feb10e05cf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31139, + "offset": 30641, "col": 11, "tokLen": 2 }, "end": { - "offset": 31139, + "offset": 30641, "col": 11, "tokLen": 2 } @@ -46804,7 +45940,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -46815,16 +45951,16 @@ ] }, { - "id": "0x7f0da6b8f708", + "id": "0x7feb10e04ac8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31137, + "offset": 30639, "col": 9, "tokLen": 1 }, "end": { - "offset": 31137, + "offset": 30639, "col": 9, "tokLen": 1 } @@ -46832,11 +45968,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -46845,16 +45981,16 @@ } }, { - "id": "0x7f0da6b90918", + "id": "0x7feb10e05cd8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 }, "end": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 } @@ -46866,16 +46002,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b8f728", + "id": "0x7feb10e04ae8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 }, "end": { - "offset": 31142, + "offset": 30644, "col": 14, "tokLen": 11 } @@ -46891,33 +46027,33 @@ ] }, { - "id": "0x7f0da6b90a08", + "id": "0x7feb10e05dc8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31163, - "line": 1024, + "offset": 30665, + "line": 1008, "col": 9, "tokLen": 6 }, "end": { - "offset": 31176, + "offset": 30678, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b909d8", + "id": "0x7feb10e05d98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31170, + "offset": 30672, "col": 16, "tokLen": 4 }, "end": { - "offset": 31176, + "offset": 30678, "col": 22, "tokLen": 16 } @@ -46927,7 +46063,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf590", + "id": "0x37ff0140", "kind": "EnumConstantDecl", "name": "TEMPERATURE_SODL", "type": { @@ -46940,35 +46076,35 @@ ] }, { - "id": "0x7f0da6b91d48", + "id": "0x7feb10e07108", "kind": "IfStmt", "range": { "begin": { - "offset": 31198, - "line": 1025, + "offset": 30700, + "line": 1009, "col": 5, "tokLen": 2 }, "end": { - "offset": 31241, - "line": 1026, + "offset": 30743, + "line": 1010, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b91c98", + "id": "0x7feb10e07058", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31202, - "line": 1025, + "offset": 30704, + "line": 1009, "col": 9, "tokLen": 1 }, "end": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 } @@ -46980,16 +46116,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b91c80", + "id": "0x7feb10e07040", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31204, + "offset": 30706, "col": 11, "tokLen": 2 }, "end": { - "offset": 31204, + "offset": 30706, "col": 11, "tokLen": 2 } @@ -47001,16 +46137,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b91c60", + "id": "0x7feb10e07020", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31204, + "offset": 30706, "col": 11, "tokLen": 2 }, "end": { - "offset": 31204, + "offset": 30706, "col": 11, "tokLen": 2 } @@ -47020,7 +46156,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -47031,16 +46167,16 @@ ] }, { - "id": "0x7f0da6b90a38", + "id": "0x7feb10e05df8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31202, + "offset": 30704, "col": 9, "tokLen": 1 }, "end": { - "offset": 31202, + "offset": 30704, "col": 9, "tokLen": 1 } @@ -47048,11 +46184,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -47061,16 +46197,16 @@ } }, { - "id": "0x7f0da6b91c48", + "id": "0x7feb10e07008", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 }, "end": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 } @@ -47082,16 +46218,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b90a58", + "id": "0x7feb10e05e18", "kind": "StringLiteral", "range": { "begin": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 }, "end": { - "offset": 31207, + "offset": 30709, "col": 14, "tokLen": 11 } @@ -47107,33 +46243,33 @@ ] }, { - "id": "0x7f0da6b91d38", + "id": "0x7feb10e070f8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31228, - "line": 1026, + "offset": 30730, + "line": 1010, "col": 9, "tokLen": 6 }, "end": { - "offset": 31241, + "offset": 30743, "col": 22, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b91d08", + "id": "0x7feb10e070c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31235, + "offset": 30737, "col": 16, "tokLen": 4 }, "end": { - "offset": 31241, + "offset": 30743, "col": 22, "tokLen": 16 } @@ -47143,7 +46279,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf5e0", + "id": "0x37ff0190", "kind": "EnumConstantDecl", "name": "TEMPERATURE_SODR", "type": { @@ -47156,35 +46292,35 @@ ] }, { - "id": "0x7f0da6b93078", + "id": "0x7feb10e08438", "kind": "IfStmt", "range": { "begin": { - "offset": 31263, - "line": 1027, + "offset": 30765, + "line": 1011, "col": 5, "tokLen": 2 }, "end": { - "offset": 31308, - "line": 1028, + "offset": 30810, + "line": 1012, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6b92fc8", + "id": "0x7feb10e08388", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31267, - "line": 1027, + "offset": 30769, + "line": 1011, "col": 9, "tokLen": 1 }, "end": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 } @@ -47196,16 +46332,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b92fb0", + "id": "0x7feb10e08370", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31269, + "offset": 30771, "col": 11, "tokLen": 2 }, "end": { - "offset": 31269, + "offset": 30771, "col": 11, "tokLen": 2 } @@ -47217,16 +46353,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b92f90", + "id": "0x7feb10e08350", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31269, + "offset": 30771, "col": 11, "tokLen": 2 }, "end": { - "offset": 31269, + "offset": 30771, "col": 11, "tokLen": 2 } @@ -47236,7 +46372,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -47247,16 +46383,16 @@ ] }, { - "id": "0x7f0da6b91d68", + "id": "0x7feb10e07128", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31267, + "offset": 30769, "col": 9, "tokLen": 1 }, "end": { - "offset": 31267, + "offset": 30769, "col": 9, "tokLen": 1 } @@ -47264,11 +46400,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -47277,16 +46413,16 @@ } }, { - "id": "0x7f0da6b92f78", + "id": "0x7feb10e08338", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 }, "end": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 } @@ -47298,16 +46434,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b91d88", + "id": "0x7feb10e07148", "kind": "StringLiteral", "range": { "begin": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 }, "end": { - "offset": 31272, + "offset": 30774, "col": 14, "tokLen": 13 } @@ -47323,33 +46459,33 @@ ] }, { - "id": "0x7f0da6b93068", + "id": "0x7feb10e08428", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31295, - "line": 1028, + "offset": 30797, + "line": 1012, "col": 9, "tokLen": 6 }, "end": { - "offset": 31308, + "offset": 30810, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6b93038", + "id": "0x7feb10e083f8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31302, + "offset": 30804, "col": 16, "tokLen": 4 }, "end": { - "offset": 31308, + "offset": 30810, "col": 22, "tokLen": 17 } @@ -47359,7 +46495,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf630", + "id": "0x37ff01e0", "kind": "EnumConstantDecl", "name": "TEMPERATURE_FPGA2", "type": { @@ -47372,35 +46508,35 @@ ] }, { - "id": "0x7f0da6b943a8", + "id": "0x7feb10e09768", "kind": "IfStmt", "range": { "begin": { - "offset": 31331, - "line": 1029, + "offset": 30833, + "line": 1013, "col": 5, "tokLen": 2 }, "end": { - "offset": 31376, - "line": 1030, + "offset": 30878, + "line": 1014, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6b942f8", + "id": "0x7feb10e096b8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31335, - "line": 1029, + "offset": 30837, + "line": 1013, "col": 9, "tokLen": 1 }, "end": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 } @@ -47412,16 +46548,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b942e0", + "id": "0x7feb10e096a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31337, + "offset": 30839, "col": 11, "tokLen": 2 }, "end": { - "offset": 31337, + "offset": 30839, "col": 11, "tokLen": 2 } @@ -47433,16 +46569,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b942c0", + "id": "0x7feb10e09680", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31337, + "offset": 30839, "col": 11, "tokLen": 2 }, "end": { - "offset": 31337, + "offset": 30839, "col": 11, "tokLen": 2 } @@ -47452,7 +46588,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -47463,16 +46599,16 @@ ] }, { - "id": "0x7f0da6b93098", + "id": "0x7feb10e08458", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31335, + "offset": 30837, "col": 9, "tokLen": 1 }, "end": { - "offset": 31335, + "offset": 30837, "col": 9, "tokLen": 1 } @@ -47480,11 +46616,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -47493,16 +46629,16 @@ } }, { - "id": "0x7f0da6b942a8", + "id": "0x7feb10e09668", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 }, "end": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 } @@ -47514,16 +46650,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b930b8", + "id": "0x7feb10e08478", "kind": "StringLiteral", "range": { "begin": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 }, "end": { - "offset": 31340, + "offset": 30842, "col": 14, "tokLen": 13 } @@ -47539,33 +46675,33 @@ ] }, { - "id": "0x7f0da6b94398", + "id": "0x7feb10e09758", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31363, - "line": 1030, + "offset": 30865, + "line": 1014, "col": 9, "tokLen": 6 }, "end": { - "offset": 31376, + "offset": 30878, "col": 22, "tokLen": 17 } }, "inner": [ { - "id": "0x7f0da6b94368", + "id": "0x7feb10e09728", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31370, + "offset": 30872, "col": 16, "tokLen": 4 }, "end": { - "offset": 31376, + "offset": 30878, "col": 22, "tokLen": 17 } @@ -47575,7 +46711,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdbf680", + "id": "0x37ff0230", "kind": "EnumConstantDecl", "name": "TEMPERATURE_FPGA3", "type": { @@ -47588,35 +46724,35 @@ ] }, { - "id": "0x7f0da6b956d8", + "id": "0x7feb10e0aa98", "kind": "IfStmt", "range": { "begin": { - "offset": 31399, - "line": 1031, + "offset": 30901, + "line": 1015, "col": 5, "tokLen": 2 }, "end": { - "offset": 31445, - "line": 1032, + "offset": 30947, + "line": 1016, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6b95628", + "id": "0x7feb10e0a9e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31403, - "line": 1031, + "offset": 30905, + "line": 1015, "col": 9, "tokLen": 1 }, "end": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 } @@ -47628,16 +46764,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b95610", + "id": "0x7feb10e0a9d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31405, + "offset": 30907, "col": 11, "tokLen": 2 }, "end": { - "offset": 31405, + "offset": 30907, "col": 11, "tokLen": 2 } @@ -47649,16 +46785,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b955f0", + "id": "0x7feb10e0a9b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31405, + "offset": 30907, "col": 11, "tokLen": 2 }, "end": { - "offset": 31405, + "offset": 30907, "col": 11, "tokLen": 2 } @@ -47668,7 +46804,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -47679,16 +46815,16 @@ ] }, { - "id": "0x7f0da6b943c8", + "id": "0x7feb10e09788", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31403, + "offset": 30905, "col": 9, "tokLen": 1 }, "end": { - "offset": 31403, + "offset": 30905, "col": 9, "tokLen": 1 } @@ -47696,11 +46832,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -47709,16 +46845,16 @@ } }, { - "id": "0x7f0da6b955d8", + "id": "0x7feb10e0a998", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 }, "end": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 } @@ -47730,16 +46866,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b943e8", + "id": "0x7feb10e097a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 }, "end": { - "offset": 31408, + "offset": 30910, "col": 14, "tokLen": 14 } @@ -47755,33 +46891,33 @@ ] }, { - "id": "0x7f0da6b956c8", + "id": "0x7feb10e0aa88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31432, - "line": 1032, + "offset": 30934, + "line": 1016, "col": 9, "tokLen": 6 }, "end": { - "offset": 31445, + "offset": 30947, "col": 22, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6b95698", + "id": "0x7feb10e0aa58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31439, + "offset": 30941, "col": 16, "tokLen": 4 }, "end": { - "offset": 31445, + "offset": 30947, "col": 22, "tokLen": 13 } @@ -47791,7 +46927,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc00a0", + "id": "0x37ff0c50", "kind": "EnumConstantDecl", "name": "SLOW_ADC_TEMP", "type": { @@ -47804,17 +46940,17 @@ ] }, { - "id": "0x7f0da6b95d68", + "id": "0x7feb10e0b128", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 31464, - "line": 1033, + "offset": 30966, + "line": 1017, "col": 5, "tokLen": 5 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47826,16 +46962,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b95d50", + "id": "0x7feb10e0b110", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 31464, + "offset": 30966, "col": 5, "tokLen": 5 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47846,16 +46982,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b95d20", + "id": "0x7feb10e0b0e0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47873,16 +47009,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b95d08", + "id": "0x7feb10e0b0c8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47895,16 +47031,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b95ce0", + "id": "0x7feb10e0b0a0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47916,7 +47052,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -47925,16 +47061,16 @@ }, "inner": [ { - "id": "0x7f0da6b95cc0", + "id": "0x7feb10e0b080", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47944,9 +47080,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b95cb8", + "temp": "0x7feb10e0b078", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -47955,16 +47091,16 @@ }, "inner": [ { - "id": "0x7f0da6b95c88", + "id": "0x7feb10e0b048", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 31470, + "offset": 30972, "col": 11, "tokLen": 12 }, "end": { - "offset": 31507, + "offset": 31009, "col": 48, "tokLen": 1 } @@ -47981,16 +47117,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b95c70", + "id": "0x7feb10e0b030", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48004,16 +47140,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b95c58", + "id": "0x7feb10e0b018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48026,16 +47162,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b95c38", + "id": "0x7feb10e0aff8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48045,9 +47181,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b95c30", + "temp": "0x7feb10e0aff0", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -48056,16 +47192,16 @@ }, "inner": [ { - "id": "0x7f0da6b95bf8", + "id": "0x7feb10e0afb8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48078,16 +47214,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b95be0", + "id": "0x7feb10e0afa0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31504, + "offset": 31006, "col": 45, "tokLen": 1 }, "end": { - "offset": 31504, + "offset": 31006, "col": 45, "tokLen": 1 } @@ -48099,16 +47235,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b95bc0", + "id": "0x7feb10e0af80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31504, + "offset": 31006, "col": 45, "tokLen": 1 }, "end": { - "offset": 31504, + "offset": 31006, "col": 45, "tokLen": 1 } @@ -48118,7 +47254,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -48129,16 +47265,16 @@ ] }, { - "id": "0x7f0da6b95ba8", + "id": "0x7feb10e0af68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 } @@ -48150,16 +47286,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b95708", + "id": "0x7feb10e0aac8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 }, "end": { - "offset": 31483, + "offset": 30985, "col": 24, "tokLen": 20 } @@ -48173,16 +47309,16 @@ ] }, { - "id": "0x7f0da6b95738", + "id": "0x7feb10e0aaf8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 }, "end": { - "offset": 31506, + "offset": 31008, "col": 47, "tokLen": 1 } @@ -48190,11 +47326,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6e4ae70", + "id": "0x7feb10e8ff00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -48229,29 +47365,29 @@ ] }, { - "id": "0x7f0da6b961f8", + "id": "0x7feb10e0b598", "kind": "FunctionDecl", "loc": { - "offset": 31541, + "offset": 31043, "file": "ToString.cpp", - "line": 1036, + "line": 1020, "col": 29, "tokLen": 8 }, "range": { "begin": { - "offset": 31513, + "offset": 31015, "col": 1, "tokLen": 8 }, "end": { - "offset": 31901, - "line": 1046, + "offset": 31403, + "line": 1030, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3789b8", + "previousDecl": "0x385a8fa8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs9burstModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -48265,13 +47401,13 @@ }, "inner": [ { - "id": "0x2cdc1230", + "id": "0x37ff1de0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::burstMode" }, "decl": { - "id": "0x2cdc1188", + "id": "0x37ff1d38", "kind": "EnumDecl", "name": "burstMode" } @@ -48279,22 +47415,22 @@ ] }, { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "loc": { - "offset": 31569, - "line": 1036, + "offset": 31071, + "line": 1020, "col": 57, "tokLen": 1 }, "range": { "begin": { - "offset": 31550, + "offset": 31052, "col": 38, "tokLen": 5 }, "end": { - "offset": 31569, + "offset": 31071, "col": 57, "tokLen": 1 } @@ -48306,52 +47442,52 @@ } }, { - "id": "0x7f0da6b9b730", + "id": "0x7feb10e10ad0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 31572, + "offset": 31074, "col": 60, "tokLen": 1 }, "end": { - "offset": 31901, - "line": 1046, + "offset": 31403, + "line": 1030, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b976f8", + "id": "0x7feb10e0ca98", "kind": "IfStmt", "range": { "begin": { - "offset": 31578, - "line": 1037, + "offset": 31080, + "line": 1021, "col": 5, "tokLen": 2 }, "end": { - "offset": 31626, - "line": 1038, + "offset": 31128, + "line": 1022, "col": 22, "tokLen": 14 } }, "inner": [ { - "id": "0x7f0da6b97648", + "id": "0x7feb10e0c9e8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31582, - "line": 1037, + "offset": 31084, + "line": 1021, "col": 9, "tokLen": 1 }, "end": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 } @@ -48363,16 +47499,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b97630", + "id": "0x7feb10e0c9d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31584, + "offset": 31086, "col": 11, "tokLen": 2 }, "end": { - "offset": 31584, + "offset": 31086, "col": 11, "tokLen": 2 } @@ -48384,16 +47520,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b97610", + "id": "0x7feb10e0c9b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31584, + "offset": 31086, "col": 11, "tokLen": 2 }, "end": { - "offset": 31584, + "offset": 31086, "col": 11, "tokLen": 2 } @@ -48403,7 +47539,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -48414,16 +47550,16 @@ ] }, { - "id": "0x7f0da6b963e0", + "id": "0x7feb10e0b780", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31582, + "offset": 31084, "col": 9, "tokLen": 1 }, "end": { - "offset": 31582, + "offset": 31084, "col": 9, "tokLen": 1 } @@ -48431,11 +47567,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -48444,16 +47580,16 @@ } }, { - "id": "0x7f0da6b975f8", + "id": "0x7feb10e0c998", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 }, "end": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 } @@ -48465,16 +47601,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b96400", + "id": "0x7feb10e0b7a0", "kind": "StringLiteral", "range": { "begin": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 }, "end": { - "offset": 31587, + "offset": 31089, "col": 14, "tokLen": 16 } @@ -48490,33 +47626,33 @@ ] }, { - "id": "0x7f0da6b976e8", + "id": "0x7feb10e0ca88", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31613, - "line": 1038, + "offset": 31115, + "line": 1022, "col": 9, "tokLen": 6 }, "end": { - "offset": 31626, + "offset": 31128, "col": 22, "tokLen": 14 } }, "inner": [ { - "id": "0x7f0da6b976b8", + "id": "0x7feb10e0ca58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31620, + "offset": 31122, "col": 16, "tokLen": 4 }, "end": { - "offset": 31626, + "offset": 31128, "col": 22, "tokLen": 14 } @@ -48526,7 +47662,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1250", + "id": "0x37ff1e00", "kind": "EnumConstantDecl", "name": "BURST_INTERNAL", "type": { @@ -48539,35 +47675,35 @@ ] }, { - "id": "0x7f0da6b98a28", + "id": "0x7feb10e0ddc8", "kind": "IfStmt", "range": { "begin": { - "offset": 31646, - "line": 1039, + "offset": 31148, + "line": 1023, "col": 5, "tokLen": 2 }, "end": { - "offset": 31694, - "line": 1040, + "offset": 31196, + "line": 1024, "col": 22, "tokLen": 14 } }, "inner": [ { - "id": "0x7f0da6b98978", + "id": "0x7feb10e0dd18", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31650, - "line": 1039, + "offset": 31152, + "line": 1023, "col": 9, "tokLen": 1 }, "end": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 } @@ -48579,16 +47715,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b98960", + "id": "0x7feb10e0dd00", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31652, + "offset": 31154, "col": 11, "tokLen": 2 }, "end": { - "offset": 31652, + "offset": 31154, "col": 11, "tokLen": 2 } @@ -48600,16 +47736,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b98940", + "id": "0x7feb10e0dce0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31652, + "offset": 31154, "col": 11, "tokLen": 2 }, "end": { - "offset": 31652, + "offset": 31154, "col": 11, "tokLen": 2 } @@ -48619,7 +47755,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -48630,16 +47766,16 @@ ] }, { - "id": "0x7f0da6b97718", + "id": "0x7feb10e0cab8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31650, + "offset": 31152, "col": 9, "tokLen": 1 }, "end": { - "offset": 31650, + "offset": 31152, "col": 9, "tokLen": 1 } @@ -48647,11 +47783,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -48660,16 +47796,16 @@ } }, { - "id": "0x7f0da6b98928", + "id": "0x7feb10e0dcc8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 }, "end": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 } @@ -48681,16 +47817,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b97738", + "id": "0x7feb10e0cad8", "kind": "StringLiteral", "range": { "begin": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 }, "end": { - "offset": 31655, + "offset": 31157, "col": 14, "tokLen": 16 } @@ -48706,33 +47842,33 @@ ] }, { - "id": "0x7f0da6b98a18", + "id": "0x7feb10e0ddb8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31681, - "line": 1040, + "offset": 31183, + "line": 1024, "col": 9, "tokLen": 6 }, "end": { - "offset": 31694, + "offset": 31196, "col": 22, "tokLen": 14 } }, "inner": [ { - "id": "0x7f0da6b989e8", + "id": "0x7feb10e0dd88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31688, + "offset": 31190, "col": 16, "tokLen": 4 }, "end": { - "offset": 31694, + "offset": 31196, "col": 22, "tokLen": 14 } @@ -48742,7 +47878,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc12a0", + "id": "0x37ff1e50", "kind": "EnumConstantDecl", "name": "BURST_EXTERNAL", "type": { @@ -48755,35 +47891,35 @@ ] }, { - "id": "0x7f0da6b99d58", + "id": "0x7feb10e0f0f8", "kind": "IfStmt", "range": { "begin": { - "offset": 31714, - "line": 1041, + "offset": 31216, + "line": 1025, "col": 5, "tokLen": 2 }, "end": { - "offset": 31759, - "line": 1042, + "offset": 31261, + "line": 1026, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b99ca8", + "id": "0x7feb10e0f048", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31718, - "line": 1041, + "offset": 31220, + "line": 1025, "col": 9, "tokLen": 1 }, "end": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 } @@ -48795,16 +47931,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b99c90", + "id": "0x7feb10e0f030", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31720, + "offset": 31222, "col": 11, "tokLen": 2 }, "end": { - "offset": 31720, + "offset": 31222, "col": 11, "tokLen": 2 } @@ -48816,16 +47952,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b99c70", + "id": "0x7feb10e0f010", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31720, + "offset": 31222, "col": 11, "tokLen": 2 }, "end": { - "offset": 31720, + "offset": 31222, "col": 11, "tokLen": 2 } @@ -48835,7 +47971,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -48846,16 +47982,16 @@ ] }, { - "id": "0x7f0da6b98a48", + "id": "0x7feb10e0dde8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31718, + "offset": 31220, "col": 9, "tokLen": 1 }, "end": { - "offset": 31718, + "offset": 31220, "col": 9, "tokLen": 1 } @@ -48863,11 +47999,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -48876,16 +48012,16 @@ } }, { - "id": "0x7f0da6b99c58", + "id": "0x7feb10e0eff8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 }, "end": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 } @@ -48897,16 +48033,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b98a68", + "id": "0x7feb10e0de08", "kind": "StringLiteral", "range": { "begin": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 }, "end": { - "offset": 31723, + "offset": 31225, "col": 14, "tokLen": 13 } @@ -48922,33 +48058,33 @@ ] }, { - "id": "0x7f0da6b99d48", + "id": "0x7feb10e0f0e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31746, - "line": 1042, + "offset": 31248, + "line": 1026, "col": 9, "tokLen": 6 }, "end": { - "offset": 31759, + "offset": 31261, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b99d18", + "id": "0x7feb10e0f0b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31753, + "offset": 31255, "col": 16, "tokLen": 4 }, "end": { - "offset": 31759, + "offset": 31261, "col": 22, "tokLen": 19 } @@ -48958,7 +48094,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc12f0", + "id": "0x37ff1ea0", "kind": "EnumConstantDecl", "name": "CONTINUOUS_INTERNAL", "type": { @@ -48971,35 +48107,35 @@ ] }, { - "id": "0x7f0da6b9b088", + "id": "0x7feb10e10428", "kind": "IfStmt", "range": { "begin": { - "offset": 31784, - "line": 1043, + "offset": 31286, + "line": 1027, "col": 5, "tokLen": 2 }, "end": { - "offset": 31829, - "line": 1044, + "offset": 31331, + "line": 1028, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b9afd8", + "id": "0x7feb10e10378", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31788, - "line": 1043, + "offset": 31290, + "line": 1027, "col": 9, "tokLen": 1 }, "end": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 } @@ -49011,16 +48147,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b9afc0", + "id": "0x7feb10e10360", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31790, + "offset": 31292, "col": 11, "tokLen": 2 }, "end": { - "offset": 31790, + "offset": 31292, "col": 11, "tokLen": 2 } @@ -49032,16 +48168,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b9afa0", + "id": "0x7feb10e10340", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31790, + "offset": 31292, "col": 11, "tokLen": 2 }, "end": { - "offset": 31790, + "offset": 31292, "col": 11, "tokLen": 2 } @@ -49051,7 +48187,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -49062,16 +48198,16 @@ ] }, { - "id": "0x7f0da6b99d78", + "id": "0x7feb10e0f118", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31788, + "offset": 31290, "col": 9, "tokLen": 1 }, "end": { - "offset": 31788, + "offset": 31290, "col": 9, "tokLen": 1 } @@ -49079,11 +48215,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -49092,16 +48228,16 @@ } }, { - "id": "0x7f0da6b9af88", + "id": "0x7feb10e10328", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 }, "end": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 } @@ -49113,16 +48249,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b99d98", + "id": "0x7feb10e0f138", "kind": "StringLiteral", "range": { "begin": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 }, "end": { - "offset": 31793, + "offset": 31295, "col": 14, "tokLen": 13 } @@ -49138,33 +48274,33 @@ ] }, { - "id": "0x7f0da6b9b078", + "id": "0x7feb10e10418", "kind": "ReturnStmt", "range": { "begin": { - "offset": 31816, - "line": 1044, + "offset": 31318, + "line": 1028, "col": 9, "tokLen": 6 }, "end": { - "offset": 31829, + "offset": 31331, "col": 22, "tokLen": 19 } }, "inner": [ { - "id": "0x7f0da6b9b048", + "id": "0x7feb10e103e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31823, + "offset": 31325, "col": 16, "tokLen": 4 }, "end": { - "offset": 31829, + "offset": 31331, "col": 22, "tokLen": 19 } @@ -49174,7 +48310,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1340", + "id": "0x37ff1ef0", "kind": "EnumConstantDecl", "name": "CONTINUOUS_EXTERNAL", "type": { @@ -49187,17 +48323,17 @@ ] }, { - "id": "0x7f0da6b9b718", + "id": "0x7feb10e10ab8", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 31854, - "line": 1045, + "offset": 31356, + "line": 1029, "col": 5, "tokLen": 5 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49209,16 +48345,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b9b700", + "id": "0x7feb10e10aa0", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 31854, + "offset": 31356, "col": 5, "tokLen": 5 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49229,16 +48365,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b9b6d0", + "id": "0x7feb10e10a70", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49256,16 +48392,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b9b6b8", + "id": "0x7feb10e10a58", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49278,16 +48414,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b9b690", + "id": "0x7feb10e10a30", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49299,7 +48435,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -49308,16 +48444,16 @@ }, "inner": [ { - "id": "0x7f0da6b9b670", + "id": "0x7feb10e10a10", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49327,9 +48463,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b9b668", + "temp": "0x7feb10e10a08", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -49338,16 +48474,16 @@ }, "inner": [ { - "id": "0x7f0da6b9b638", + "id": "0x7feb10e109d8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 31860, + "offset": 31362, "col": 11, "tokLen": 12 }, "end": { - "offset": 31898, + "offset": 31400, "col": 49, "tokLen": 1 } @@ -49364,16 +48500,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b9b620", + "id": "0x7feb10e109c0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49387,16 +48523,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b9b608", + "id": "0x7feb10e109a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49409,16 +48545,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b9b5e8", + "id": "0x7feb10e10988", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49428,9 +48564,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b9b5e0", + "temp": "0x7feb10e10980", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -49439,16 +48575,16 @@ }, "inner": [ { - "id": "0x7f0da6b9b5a8", + "id": "0x7feb10e10948", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49461,16 +48597,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b9b590", + "id": "0x7feb10e10930", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31895, + "offset": 31397, "col": 46, "tokLen": 1 }, "end": { - "offset": 31895, + "offset": 31397, "col": 46, "tokLen": 1 } @@ -49482,16 +48618,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b9b570", + "id": "0x7feb10e10910", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31895, + "offset": 31397, "col": 46, "tokLen": 1 }, "end": { - "offset": 31895, + "offset": 31397, "col": 46, "tokLen": 1 } @@ -49501,7 +48637,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -49512,16 +48648,16 @@ ] }, { - "id": "0x7f0da6b9b558", + "id": "0x7feb10e108f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 } @@ -49533,16 +48669,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b9b0b8", + "id": "0x7feb10e10458", "kind": "StringLiteral", "range": { "begin": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 }, "end": { - "offset": 31873, + "offset": 31375, "col": 24, "tokLen": 21 } @@ -49556,16 +48692,16 @@ ] }, { - "id": "0x7f0da6b9b0e8", + "id": "0x7feb10e10488", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 }, "end": { - "offset": 31897, + "offset": 31399, "col": 48, "tokLen": 1 } @@ -49573,11 +48709,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b96120", + "id": "0x7feb10e0b4c0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -49612,29 +48748,29 @@ ] }, { - "id": "0x7f0da6b9b8e8", + "id": "0x7feb10e10c88", "kind": "FunctionDecl", "loc": { - "offset": 31939, + "offset": 31441, "file": "ToString.cpp", - "line": 1048, + "line": 1032, "col": 36, "tokLen": 8 }, "range": { "begin": { - "offset": 31904, + "offset": 31406, "col": 1, "tokLen": 8 }, "end": { - "offset": 32157, - "line": 1054, + "offset": 31659, + "line": 1038, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d378f08", + "previousDecl": "0x385a94f8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs16timingSourceTypeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -49648,13 +48784,13 @@ }, "inner": [ { - "id": "0x2cdc14b0", + "id": "0x37ff2060", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingSourceType" }, "decl": { - "id": "0x2cdc1408", + "id": "0x37ff1fb8", "kind": "EnumDecl", "name": "timingSourceType" } @@ -49662,22 +48798,22 @@ ] }, { - "id": "0x7f0da6b9b810", + "id": "0x7feb10e10bb0", "kind": "ParmVarDecl", "loc": { - "offset": 31967, - "line": 1048, + "offset": 31469, + "line": 1032, "col": 64, "tokLen": 1 }, "range": { "begin": { - "offset": 31948, + "offset": 31450, "col": 45, "tokLen": 5 }, "end": { - "offset": 31967, + "offset": 31469, "col": 64, "tokLen": 1 } @@ -49689,52 +48825,52 @@ } }, { - "id": "0x7f0da6b5d808", + "id": "0x7feb10e13b88", "kind": "CompoundStmt", "range": { "begin": { - "offset": 31970, + "offset": 31472, "col": 67, "tokLen": 1 }, "end": { - "offset": 32157, - "line": 1054, + "offset": 31659, + "line": 1038, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b5bdf8", + "id": "0x7feb10e12178", "kind": "IfStmt", "range": { "begin": { - "offset": 31976, - "line": 1049, + "offset": 31478, + "line": 1033, "col": 5, "tokLen": 2 }, "end": { - "offset": 32018, - "line": 1050, + "offset": 31520, + "line": 1034, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b5bd48", + "id": "0x7feb10e120c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 31980, - "line": 1049, + "offset": 31482, + "line": 1033, "col": 9, "tokLen": 1 }, "end": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 } @@ -49746,16 +48882,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b5bd30", + "id": "0x7feb10e120b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31982, + "offset": 31484, "col": 11, "tokLen": 2 }, "end": { - "offset": 31982, + "offset": 31484, "col": 11, "tokLen": 2 } @@ -49767,16 +48903,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b5bd10", + "id": "0x7feb10e12090", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31982, + "offset": 31484, "col": 11, "tokLen": 2 }, "end": { - "offset": 31982, + "offset": 31484, "col": 11, "tokLen": 2 } @@ -49786,7 +48922,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -49797,16 +48933,16 @@ ] }, { - "id": "0x7f0da6b9bad0", + "id": "0x7feb10e10e70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 31980, + "offset": 31482, "col": 9, "tokLen": 1 }, "end": { - "offset": 31980, + "offset": 31482, "col": 9, "tokLen": 1 } @@ -49814,11 +48950,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b9b810", + "id": "0x7feb10e10bb0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -49827,16 +48963,16 @@ } }, { - "id": "0x7f0da6b5bcf8", + "id": "0x7feb10e12078", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 }, "end": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 } @@ -49848,16 +48984,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b9baf0", + "id": "0x7feb10e10e90", "kind": "StringLiteral", "range": { "begin": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 }, "end": { - "offset": 31985, + "offset": 31487, "col": 14, "tokLen": 10 } @@ -49873,33 +49009,33 @@ ] }, { - "id": "0x7f0da6b5bde8", + "id": "0x7feb10e12168", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32005, - "line": 1050, + "offset": 31507, + "line": 1034, "col": 9, "tokLen": 6 }, "end": { - "offset": 32018, + "offset": 31520, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b5bdb8", + "id": "0x7feb10e12138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32012, + "offset": 31514, "col": 16, "tokLen": 4 }, "end": { - "offset": 32018, + "offset": 31520, "col": 22, "tokLen": 15 } @@ -49909,7 +49045,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc14d0", + "id": "0x37ff2080", "kind": "EnumConstantDecl", "name": "TIMING_INTERNAL", "type": { @@ -49922,35 +49058,35 @@ ] }, { - "id": "0x7f0da6b5d128", + "id": "0x7feb10e134a8", "kind": "IfStmt", "range": { "begin": { - "offset": 32039, - "line": 1051, + "offset": 31541, + "line": 1035, "col": 5, "tokLen": 2 }, "end": { - "offset": 32081, - "line": 1052, + "offset": 31583, + "line": 1036, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b5d078", + "id": "0x7feb10e133f8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32043, - "line": 1051, + "offset": 31545, + "line": 1035, "col": 9, "tokLen": 1 }, "end": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 } @@ -49962,16 +49098,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b5d060", + "id": "0x7feb10e133e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32045, + "offset": 31547, "col": 11, "tokLen": 2 }, "end": { - "offset": 32045, + "offset": 31547, "col": 11, "tokLen": 2 } @@ -49983,16 +49119,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b5d040", + "id": "0x7feb10e133c0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32045, + "offset": 31547, "col": 11, "tokLen": 2 }, "end": { - "offset": 32045, + "offset": 31547, "col": 11, "tokLen": 2 } @@ -50002,7 +49138,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -50013,16 +49149,16 @@ ] }, { - "id": "0x7f0da6b5be18", + "id": "0x7feb10e12198", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32043, + "offset": 31545, "col": 9, "tokLen": 1 }, "end": { - "offset": 32043, + "offset": 31545, "col": 9, "tokLen": 1 } @@ -50030,11 +49166,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b9b810", + "id": "0x7feb10e10bb0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -50043,16 +49179,16 @@ } }, { - "id": "0x7f0da6b5d028", + "id": "0x7feb10e133a8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 }, "end": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 } @@ -50064,16 +49200,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b5be38", + "id": "0x7feb10e121b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 }, "end": { - "offset": 32048, + "offset": 31550, "col": 14, "tokLen": 10 } @@ -50089,33 +49225,33 @@ ] }, { - "id": "0x7f0da6b5d118", + "id": "0x7feb10e13498", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32068, - "line": 1052, + "offset": 31570, + "line": 1036, "col": 9, "tokLen": 6 }, "end": { - "offset": 32081, + "offset": 31583, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b5d0e8", + "id": "0x7feb10e13468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32075, + "offset": 31577, "col": 16, "tokLen": 4 }, "end": { - "offset": 32081, + "offset": 31583, "col": 22, "tokLen": 15 } @@ -50125,7 +49261,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1520", + "id": "0x37ff20d0", "kind": "EnumConstantDecl", "name": "TIMING_EXTERNAL", "type": { @@ -50138,17 +49274,17 @@ ] }, { - "id": "0x7f0da6b5d7f0", + "id": "0x7feb10e13b70", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 32102, - "line": 1053, + "offset": 31604, + "line": 1037, "col": 5, "tokLen": 5 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50160,16 +49296,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b5d7d8", + "id": "0x7feb10e13b58", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 32102, + "offset": 31604, "col": 5, "tokLen": 5 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50180,16 +49316,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b5d7a8", + "id": "0x7feb10e13b28", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50207,16 +49343,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b5d790", + "id": "0x7feb10e13b10", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50229,16 +49365,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b5d768", + "id": "0x7feb10e13ae8", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50250,7 +49386,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -50259,16 +49395,16 @@ }, "inner": [ { - "id": "0x7f0da6b5d748", + "id": "0x7feb10e13ac8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50278,9 +49414,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b5d740", + "temp": "0x7feb10e13ac0", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -50289,16 +49425,16 @@ }, "inner": [ { - "id": "0x7f0da6b5d710", + "id": "0x7feb10e13a90", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32108, + "offset": 31610, "col": 11, "tokLen": 12 }, "end": { - "offset": 32154, + "offset": 31656, "col": 57, "tokLen": 1 } @@ -50315,16 +49451,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b5d6f8", + "id": "0x7feb10e13a78", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50338,16 +49474,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b5d6e0", + "id": "0x7feb10e13a60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50360,16 +49496,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b5d6c0", + "id": "0x7feb10e13a40", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50379,9 +49515,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b5d6b8", + "temp": "0x7feb10e13a38", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -50390,16 +49526,16 @@ }, "inner": [ { - "id": "0x7f0da6b5d680", + "id": "0x7feb10e13a00", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50412,16 +49548,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b5d668", + "id": "0x7feb10e139e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32151, + "offset": 31653, "col": 54, "tokLen": 1 }, "end": { - "offset": 32151, + "offset": 31653, "col": 54, "tokLen": 1 } @@ -50433,16 +49569,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b5d648", + "id": "0x7feb10e139c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32151, + "offset": 31653, "col": 54, "tokLen": 1 }, "end": { - "offset": 32151, + "offset": 31653, "col": 54, "tokLen": 1 } @@ -50452,7 +49588,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -50463,16 +49599,16 @@ ] }, { - "id": "0x7f0da6b5d630", + "id": "0x7feb10e139b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 } @@ -50484,16 +49620,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b5d158", + "id": "0x7feb10e134d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 }, "end": { - "offset": 32121, + "offset": 31623, "col": 24, "tokLen": 29 } @@ -50507,16 +49643,16 @@ ] }, { - "id": "0x7f0da6b5d190", + "id": "0x7feb10e13510", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 }, "end": { - "offset": 32153, + "offset": 31655, "col": 56, "tokLen": 1 } @@ -50524,11 +49660,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b9b810", + "id": "0x7feb10e10bb0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -50563,29 +49699,29 @@ ] }, { - "id": "0x7f0da6b5d9a8", + "id": "0x7feb10e13d28", "kind": "FunctionDecl", "loc": { - "offset": 32190, + "offset": 31692, "file": "ToString.cpp", - "line": 1056, + "line": 1040, "col": 31, "tokLen": 8 }, "range": { "begin": { - "offset": 32160, + "offset": 31662, "col": 1, "tokLen": 8 }, "end": { - "offset": 32600, - "line": 1070, + "offset": 32102, + "line": 1054, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d379458", + "previousDecl": "0x385a9a48", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs11M3_GainCapsEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -50599,13 +49735,13 @@ }, "inner": [ { - "id": "0x2cdc1610", + "id": "0x37ff21c0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::M3_GainCaps" }, "decl": { - "id": "0x2cdc1570", + "id": "0x37ff2120", "kind": "EnumDecl", "name": "M3_GainCaps" } @@ -50613,22 +49749,22 @@ ] }, { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "loc": { - "offset": 32218, - "line": 1056, + "offset": 31720, + "line": 1040, "col": 59, "tokLen": 1 }, "range": { "begin": { - "offset": 32199, + "offset": 31701, "col": 40, "tokLen": 5 }, "end": { - "offset": 32218, + "offset": 31720, "col": 59, "tokLen": 1 } @@ -50640,52 +49776,52 @@ } }, { - "id": "0x7f0da6b65530", + "id": "0x3873b730", "kind": "CompoundStmt", "range": { "begin": { - "offset": 32221, + "offset": 31723, "col": 62, "tokLen": 1 }, "end": { - "offset": 32600, - "line": 1070, + "offset": 32102, + "line": 1054, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b5ee98", + "id": "0x7feb10e15218", "kind": "IfStmt", "range": { "begin": { - "offset": 32227, - "line": 1057, + "offset": 31729, + "line": 1041, "col": 5, "tokLen": 2 }, "end": { - "offset": 32267, - "line": 1058, + "offset": 31769, + "line": 1042, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b5ede8", + "id": "0x7feb10e15168", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32231, - "line": 1057, + "offset": 31733, + "line": 1041, "col": 9, "tokLen": 1 }, "end": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 } @@ -50697,16 +49833,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b5edd0", + "id": "0x7feb10e15150", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32233, + "offset": 31735, "col": 11, "tokLen": 2 }, "end": { - "offset": 32233, + "offset": 31735, "col": 11, "tokLen": 2 } @@ -50718,16 +49854,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b5edb0", + "id": "0x7feb10e15130", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32233, + "offset": 31735, "col": 11, "tokLen": 2 }, "end": { - "offset": 32233, + "offset": 31735, "col": 11, "tokLen": 2 } @@ -50737,7 +49873,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -50748,16 +49884,16 @@ ] }, { - "id": "0x7f0da6b5db90", + "id": "0x7feb10e13f10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32231, + "offset": 31733, "col": 9, "tokLen": 1 }, "end": { - "offset": 32231, + "offset": 31733, "col": 9, "tokLen": 1 } @@ -50765,11 +49901,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -50778,16 +49914,16 @@ } }, { - "id": "0x7f0da6b5ed98", + "id": "0x7feb10e15118", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 }, "end": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 } @@ -50799,16 +49935,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b5dbb0", + "id": "0x7feb10e13f30", "kind": "StringLiteral", "range": { "begin": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 }, "end": { - "offset": 32236, + "offset": 31738, "col": 14, "tokLen": 8 } @@ -50824,33 +49960,33 @@ ] }, { - "id": "0x7f0da6b5ee88", + "id": "0x7feb10e15208", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32254, - "line": 1058, + "offset": 31756, + "line": 1042, "col": 9, "tokLen": 6 }, "end": { - "offset": 32267, + "offset": 31769, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b5ee58", + "id": "0x7feb10e151d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32261, + "offset": 31763, "col": 16, "tokLen": 4 }, "end": { - "offset": 32267, + "offset": 31769, "col": 22, "tokLen": 9 } @@ -50860,7 +49996,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc16b0", + "id": "0x37ff2260", "kind": "EnumConstantDecl", "name": "M3_C10pre", "type": { @@ -50873,35 +50009,35 @@ ] }, { - "id": "0x7f0da6b601c8", + "id": "0x7feb10e16548", "kind": "IfStmt", "range": { "begin": { - "offset": 32282, - "line": 1059, + "offset": 31784, + "line": 1043, "col": 5, "tokLen": 2 }, "end": { - "offset": 32321, - "line": 1060, + "offset": 31823, + "line": 1044, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b60118", + "id": "0x7feb10e16498", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32286, - "line": 1059, + "offset": 31788, + "line": 1043, "col": 9, "tokLen": 1 }, "end": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 } @@ -50913,16 +50049,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b60100", + "id": "0x7feb10e16480", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32288, + "offset": 31790, "col": 11, "tokLen": 2 }, "end": { - "offset": 32288, + "offset": 31790, "col": 11, "tokLen": 2 } @@ -50934,16 +50070,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b600e0", + "id": "0x7feb10e16460", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32288, + "offset": 31790, "col": 11, "tokLen": 2 }, "end": { - "offset": 32288, + "offset": 31790, "col": 11, "tokLen": 2 } @@ -50953,7 +50089,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -50964,16 +50100,16 @@ ] }, { - "id": "0x7f0da6b5eeb8", + "id": "0x7feb10e15238", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32286, + "offset": 31788, "col": 9, "tokLen": 1 }, "end": { - "offset": 32286, + "offset": 31788, "col": 9, "tokLen": 1 } @@ -50981,11 +50117,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -50994,16 +50130,16 @@ } }, { - "id": "0x7f0da6b600c8", + "id": "0x7feb10e16448", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 }, "end": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 } @@ -51015,16 +50151,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b5eed8", + "id": "0x7feb10e15258", "kind": "StringLiteral", "range": { "begin": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 }, "end": { - "offset": 32291, + "offset": 31793, "col": 14, "tokLen": 7 } @@ -51040,33 +50176,33 @@ ] }, { - "id": "0x7f0da6b601b8", + "id": "0x7feb10e16538", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32308, - "line": 1060, + "offset": 31810, + "line": 1044, "col": 9, "tokLen": 6 }, "end": { - "offset": 32321, + "offset": 31823, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b60188", + "id": "0x7feb10e16508", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32315, + "offset": 31817, "col": 16, "tokLen": 4 }, "end": { - "offset": 32321, + "offset": 31823, "col": 22, "tokLen": 8 } @@ -51076,7 +50212,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1780", + "id": "0x37ff2330", "kind": "EnumConstantDecl", "name": "M3_C15sh", "type": { @@ -51089,35 +50225,35 @@ ] }, { - "id": "0x7f0da6b614f8", + "id": "0x387376f8", "kind": "IfStmt", "range": { "begin": { - "offset": 32335, - "line": 1061, + "offset": 31837, + "line": 1045, "col": 5, "tokLen": 2 }, "end": { - "offset": 32374, - "line": 1062, + "offset": 31876, + "line": 1046, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b61448", + "id": "0x38737648", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32339, - "line": 1061, + "offset": 31841, + "line": 1045, "col": 9, "tokLen": 1 }, "end": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 } @@ -51129,16 +50265,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b61430", + "id": "0x38737630", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32341, + "offset": 31843, "col": 11, "tokLen": 2 }, "end": { - "offset": 32341, + "offset": 31843, "col": 11, "tokLen": 2 } @@ -51150,16 +50286,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b61410", + "id": "0x38737610", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32341, + "offset": 31843, "col": 11, "tokLen": 2 }, "end": { - "offset": 32341, + "offset": 31843, "col": 11, "tokLen": 2 } @@ -51169,7 +50305,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -51180,16 +50316,16 @@ ] }, { - "id": "0x7f0da6b601e8", + "id": "0x7feb10e16568", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32339, + "offset": 31841, "col": 9, "tokLen": 1 }, "end": { - "offset": 32339, + "offset": 31841, "col": 9, "tokLen": 1 } @@ -51197,11 +50333,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -51210,16 +50346,16 @@ } }, { - "id": "0x7f0da6b613f8", + "id": "0x387375f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 }, "end": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 } @@ -51231,16 +50367,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b60208", + "id": "0x7feb10e16588", "kind": "StringLiteral", "range": { "begin": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 }, "end": { - "offset": 32344, + "offset": 31846, "col": 14, "tokLen": 7 } @@ -51256,33 +50392,33 @@ ] }, { - "id": "0x7f0da6b614e8", + "id": "0x387376e8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32361, - "line": 1062, + "offset": 31863, + "line": 1046, "col": 9, "tokLen": 6 }, "end": { - "offset": 32374, + "offset": 31876, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b614b8", + "id": "0x387376b8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32368, + "offset": 31870, "col": 16, "tokLen": 4 }, "end": { - "offset": 32374, + "offset": 31876, "col": 22, "tokLen": 8 } @@ -51292,7 +50428,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1850", + "id": "0x37ff2400", "kind": "EnumConstantDecl", "name": "M3_C30sh", "type": { @@ -51305,35 +50441,35 @@ ] }, { - "id": "0x7f0da6b62828", + "id": "0x38738a28", "kind": "IfStmt", "range": { "begin": { - "offset": 32388, - "line": 1063, + "offset": 31890, + "line": 1047, "col": 5, "tokLen": 2 }, "end": { - "offset": 32427, - "line": 1064, + "offset": 31929, + "line": 1048, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b62778", + "id": "0x38738978", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32392, - "line": 1063, + "offset": 31894, + "line": 1047, "col": 9, "tokLen": 1 }, "end": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 } @@ -51345,16 +50481,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b62760", + "id": "0x38738960", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32394, + "offset": 31896, "col": 11, "tokLen": 2 }, "end": { - "offset": 32394, + "offset": 31896, "col": 11, "tokLen": 2 } @@ -51366,16 +50502,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b62740", + "id": "0x38738940", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32394, + "offset": 31896, "col": 11, "tokLen": 2 }, "end": { - "offset": 32394, + "offset": 31896, "col": 11, "tokLen": 2 } @@ -51385,7 +50521,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -51396,16 +50532,16 @@ ] }, { - "id": "0x7f0da6b61518", + "id": "0x38737718", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32392, + "offset": 31894, "col": 9, "tokLen": 1 }, "end": { - "offset": 32392, + "offset": 31894, "col": 9, "tokLen": 1 } @@ -51413,11 +50549,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -51426,16 +50562,16 @@ } }, { - "id": "0x7f0da6b62728", + "id": "0x38738928", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 }, "end": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 } @@ -51447,16 +50583,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b61538", + "id": "0x38737738", "kind": "StringLiteral", "range": { "begin": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 }, "end": { - "offset": 32397, + "offset": 31899, "col": 14, "tokLen": 7 } @@ -51472,33 +50608,33 @@ ] }, { - "id": "0x7f0da6b62818", + "id": "0x38738a18", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32414, - "line": 1064, + "offset": 31916, + "line": 1048, "col": 9, "tokLen": 6 }, "end": { - "offset": 32427, + "offset": 31929, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b627e8", + "id": "0x387389e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32421, + "offset": 31923, "col": 16, "tokLen": 4 }, "end": { - "offset": 32427, + "offset": 31929, "col": 22, "tokLen": 8 } @@ -51508,7 +50644,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1920", + "id": "0x37ff24d0", "kind": "EnumConstantDecl", "name": "M3_C50sh", "type": { @@ -51521,35 +50657,35 @@ ] }, { - "id": "0x7f0da6b63b58", + "id": "0x38739d58", "kind": "IfStmt", "range": { "begin": { - "offset": 32441, - "line": 1065, + "offset": 31943, + "line": 1049, "col": 5, "tokLen": 2 }, "end": { - "offset": 32483, - "line": 1066, + "offset": 31985, + "line": 1050, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6b63aa8", + "id": "0x38739ca8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32445, - "line": 1065, + "offset": 31947, + "line": 1049, "col": 9, "tokLen": 1 }, "end": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 } @@ -51561,16 +50697,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b63a90", + "id": "0x38739c90", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32447, + "offset": 31949, "col": 11, "tokLen": 2 }, "end": { - "offset": 32447, + "offset": 31949, "col": 11, "tokLen": 2 } @@ -51582,16 +50718,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b63a70", + "id": "0x38739c70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32447, + "offset": 31949, "col": 11, "tokLen": 2 }, "end": { - "offset": 32447, + "offset": 31949, "col": 11, "tokLen": 2 } @@ -51601,7 +50737,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -51612,16 +50748,16 @@ ] }, { - "id": "0x7f0da6b62848", + "id": "0x38738a48", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32445, + "offset": 31947, "col": 9, "tokLen": 1 }, "end": { - "offset": 32445, + "offset": 31947, "col": 9, "tokLen": 1 } @@ -51629,11 +50765,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -51642,16 +50778,16 @@ } }, { - "id": "0x7f0da6b63a58", + "id": "0x38739c58", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 }, "end": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 } @@ -51663,16 +50799,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b62868", + "id": "0x38738a68", "kind": "StringLiteral", "range": { "begin": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 }, "end": { - "offset": 32450, + "offset": 31952, "col": 14, "tokLen": 10 } @@ -51688,33 +50824,33 @@ ] }, { - "id": "0x7f0da6b63b48", + "id": "0x38739d48", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32470, - "line": 1066, + "offset": 31972, + "line": 1050, "col": 9, "tokLen": 6 }, "end": { - "offset": 32483, + "offset": 31985, "col": 22, "tokLen": 11 } }, "inner": [ { - "id": "0x7f0da6b63b18", + "id": "0x38739d18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32477, + "offset": 31979, "col": 16, "tokLen": 4 }, "end": { - "offset": 32483, + "offset": 31985, "col": 22, "tokLen": 11 } @@ -51724,7 +50860,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc19f0", + "id": "0x37ff25a0", "kind": "EnumConstantDecl", "name": "M3_C225ACsh", "type": { @@ -51737,35 +50873,35 @@ ] }, { - "id": "0x7f0da6b64e88", + "id": "0x3873b088", "kind": "IfStmt", "range": { "begin": { - "offset": 32500, - "line": 1067, + "offset": 32002, + "line": 1051, "col": 5, "tokLen": 2 }, "end": { - "offset": 32540, - "line": 1068, + "offset": 32042, + "line": 1052, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b64dd8", + "id": "0x3873afd8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32504, - "line": 1067, + "offset": 32006, + "line": 1051, "col": 9, "tokLen": 1 }, "end": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 } @@ -51777,16 +50913,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b64dc0", + "id": "0x3873afc0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32506, + "offset": 32008, "col": 11, "tokLen": 2 }, "end": { - "offset": 32506, + "offset": 32008, "col": 11, "tokLen": 2 } @@ -51798,16 +50934,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b64da0", + "id": "0x3873afa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32506, + "offset": 32008, "col": 11, "tokLen": 2 }, "end": { - "offset": 32506, + "offset": 32008, "col": 11, "tokLen": 2 } @@ -51817,7 +50953,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -51828,16 +50964,16 @@ ] }, { - "id": "0x7f0da6b63b78", + "id": "0x38739d78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32504, + "offset": 32006, "col": 9, "tokLen": 1 }, "end": { - "offset": 32504, + "offset": 32006, "col": 9, "tokLen": 1 } @@ -51845,11 +50981,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -51858,16 +50994,16 @@ } }, { - "id": "0x7f0da6b64d88", + "id": "0x3873af88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 }, "end": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 } @@ -51879,16 +51015,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b63b98", + "id": "0x38739d98", "kind": "StringLiteral", "range": { "begin": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 }, "end": { - "offset": 32509, + "offset": 32011, "col": 14, "tokLen": 8 } @@ -51904,33 +51040,33 @@ ] }, { - "id": "0x7f0da6b64e78", + "id": "0x3873b078", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32527, - "line": 1068, + "offset": 32029, + "line": 1052, "col": 9, "tokLen": 6 }, "end": { - "offset": 32540, + "offset": 32042, "col": 22, "tokLen": 9 } }, "inner": [ { - "id": "0x7f0da6b64e48", + "id": "0x3873b048", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32534, + "offset": 32036, "col": 16, "tokLen": 4 }, "end": { - "offset": 32540, + "offset": 32042, "col": 22, "tokLen": 9 } @@ -51940,7 +51076,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1ac0", + "id": "0x37ff2670", "kind": "EnumConstantDecl", "name": "M3_C15pre", "type": { @@ -51953,17 +51089,17 @@ ] }, { - "id": "0x7f0da6b65518", + "id": "0x3873b718", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 32555, - "line": 1069, + "offset": 32057, + "line": 1053, "col": 5, "tokLen": 5 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -51975,16 +51111,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b65500", + "id": "0x3873b700", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 32555, + "offset": 32057, "col": 5, "tokLen": 5 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -51995,16 +51131,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b654d0", + "id": "0x3873b6d0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52022,16 +51158,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b654b8", + "id": "0x3873b6b8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52044,16 +51180,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b65490", + "id": "0x3873b690", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52065,7 +51201,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -52074,16 +51210,16 @@ }, "inner": [ { - "id": "0x7f0da6b65470", + "id": "0x3873b670", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52093,9 +51229,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b65468", + "temp": "0x3873b668", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -52104,16 +51240,16 @@ }, "inner": [ { - "id": "0x7f0da6b65438", + "id": "0x3873b638", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32561, + "offset": 32063, "col": 11, "tokLen": 12 }, "end": { - "offset": 32597, + "offset": 32099, "col": 47, "tokLen": 1 } @@ -52130,16 +51266,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b65420", + "id": "0x3873b620", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52153,16 +51289,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b65408", + "id": "0x3873b608", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52175,16 +51311,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b653e8", + "id": "0x3873b5e8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52194,9 +51330,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b653e0", + "temp": "0x3873b5e0", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -52205,16 +51341,16 @@ }, "inner": [ { - "id": "0x7f0da6b653a8", + "id": "0x3873b5a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52227,16 +51363,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b65390", + "id": "0x3873b590", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32594, + "offset": 32096, "col": 44, "tokLen": 1 }, "end": { - "offset": 32594, + "offset": 32096, "col": 44, "tokLen": 1 } @@ -52248,16 +51384,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b65370", + "id": "0x3873b570", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32594, + "offset": 32096, "col": 44, "tokLen": 1 }, "end": { - "offset": 32594, + "offset": 32096, "col": 44, "tokLen": 1 } @@ -52267,7 +51403,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -52278,16 +51414,16 @@ ] }, { - "id": "0x7f0da6b65358", + "id": "0x3873b558", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 } @@ -52299,16 +51435,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b64eb8", + "id": "0x3873b0b8", "kind": "StringLiteral", "range": { "begin": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 }, "end": { - "offset": 32574, + "offset": 32076, "col": 24, "tokLen": 19 } @@ -52322,16 +51458,16 @@ ] }, { - "id": "0x7f0da6b64ee8", + "id": "0x3873b0e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 }, "end": { - "offset": 32596, + "offset": 32098, "col": 46, "tokLen": 1 } @@ -52339,11 +51475,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b5d8d8", + "id": "0x7feb10e13c58", "kind": "ParmVarDecl", "name": "s", "type": { @@ -52378,29 +51514,29 @@ ] }, { - "id": "0x7f0da6b656f8", + "id": "0x3873b8f8", "kind": "FunctionDecl", "loc": { - "offset": 32634, + "offset": 32136, "file": "ToString.cpp", - "line": 1072, + "line": 1056, "col": 32, "tokLen": 8 }, "range": { "begin": { - "offset": 32603, + "offset": 32105, "col": 1, "tokLen": 8 }, "end": { - "offset": 32917, - "line": 1082, + "offset": 32419, + "line": 1066, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d3799a8", + "previousDecl": "0x385a9f98", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs12portPositionEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -52414,13 +51550,13 @@ }, "inner": [ { - "id": "0x2cdc1c40", + "id": "0x37ff27f0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::portPosition" }, "decl": { - "id": "0x2cdc1ba0", + "id": "0x37ff2750", "kind": "EnumDecl", "name": "portPosition" } @@ -52428,22 +51564,22 @@ ] }, { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "loc": { - "offset": 32662, - "line": 1072, + "offset": 32164, + "line": 1056, "col": 60, "tokLen": 1 }, "range": { "begin": { - "offset": 32643, + "offset": 32145, "col": 41, "tokLen": 5 }, "end": { - "offset": 32662, + "offset": 32164, "col": 60, "tokLen": 1 } @@ -52455,52 +51591,52 @@ } }, { - "id": "0x7f0da6b6ac20", + "id": "0x38740e20", "kind": "CompoundStmt", "range": { "begin": { - "offset": 32665, + "offset": 32167, "col": 63, "tokLen": 1 }, "end": { - "offset": 32917, - "line": 1082, + "offset": 32419, + "line": 1066, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b66be8", + "id": "0x3873cde8", "kind": "IfStmt", "range": { "begin": { - "offset": 32671, - "line": 1073, + "offset": 32173, + "line": 1057, "col": 5, "tokLen": 2 }, "end": { - "offset": 32709, - "line": 1074, + "offset": 32211, + "line": 1058, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b66b38", + "id": "0x3873cd38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32675, - "line": 1073, + "offset": 32177, + "line": 1057, "col": 9, "tokLen": 1 }, "end": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 } @@ -52512,16 +51648,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b66b20", + "id": "0x3873cd20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32677, + "offset": 32179, "col": 11, "tokLen": 2 }, "end": { - "offset": 32677, + "offset": 32179, "col": 11, "tokLen": 2 } @@ -52533,16 +51669,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b66b00", + "id": "0x3873cd00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32677, + "offset": 32179, "col": 11, "tokLen": 2 }, "end": { - "offset": 32677, + "offset": 32179, "col": 11, "tokLen": 2 } @@ -52552,7 +51688,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -52563,16 +51699,16 @@ ] }, { - "id": "0x7f0da6b658e0", + "id": "0x3873bae0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32675, + "offset": 32177, "col": 9, "tokLen": 1 }, "end": { - "offset": 32675, + "offset": 32177, "col": 9, "tokLen": 1 } @@ -52580,11 +51716,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -52593,16 +51729,16 @@ } }, { - "id": "0x7f0da6b66ae8", + "id": "0x3873cce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 }, "end": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 } @@ -52614,16 +51750,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b65900", + "id": "0x3873bb00", "kind": "StringLiteral", "range": { "begin": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 }, "end": { - "offset": 32680, + "offset": 32182, "col": 14, "tokLen": 6 } @@ -52639,33 +51775,33 @@ ] }, { - "id": "0x7f0da6b66bd8", + "id": "0x3873cdd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32696, - "line": 1074, + "offset": 32198, + "line": 1058, "col": 9, "tokLen": 6 }, "end": { - "offset": 32709, + "offset": 32211, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b66ba8", + "id": "0x3873cda8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32703, + "offset": 32205, "col": 16, "tokLen": 4 }, "end": { - "offset": 32709, + "offset": 32211, "col": 22, "tokLen": 4 } @@ -52675,7 +51811,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1c60", + "id": "0x37ff2810", "kind": "EnumConstantDecl", "name": "LEFT", "type": { @@ -52688,35 +51824,35 @@ ] }, { - "id": "0x7f0da6b67f18", + "id": "0x3873e118", "kind": "IfStmt", "range": { "begin": { - "offset": 32719, - "line": 1075, + "offset": 32221, + "line": 1059, "col": 5, "tokLen": 2 }, "end": { - "offset": 32758, - "line": 1076, + "offset": 32260, + "line": 1060, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b67e68", + "id": "0x3873e068", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32723, - "line": 1075, + "offset": 32225, + "line": 1059, "col": 9, "tokLen": 1 }, "end": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 } @@ -52728,16 +51864,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b67e50", + "id": "0x3873e050", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32725, + "offset": 32227, "col": 11, "tokLen": 2 }, "end": { - "offset": 32725, + "offset": 32227, "col": 11, "tokLen": 2 } @@ -52749,16 +51885,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b67e30", + "id": "0x3873e030", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32725, + "offset": 32227, "col": 11, "tokLen": 2 }, "end": { - "offset": 32725, + "offset": 32227, "col": 11, "tokLen": 2 } @@ -52768,7 +51904,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -52779,16 +51915,16 @@ ] }, { - "id": "0x7f0da6b66c08", + "id": "0x3873ce08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32723, + "offset": 32225, "col": 9, "tokLen": 1 }, "end": { - "offset": 32723, + "offset": 32225, "col": 9, "tokLen": 1 } @@ -52796,11 +51932,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -52809,16 +51945,16 @@ } }, { - "id": "0x7f0da6b67e18", + "id": "0x3873e018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 }, "end": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 } @@ -52830,16 +51966,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b66c28", + "id": "0x3873ce28", "kind": "StringLiteral", "range": { "begin": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 }, "end": { - "offset": 32728, + "offset": 32230, "col": 14, "tokLen": 7 } @@ -52855,33 +51991,33 @@ ] }, { - "id": "0x7f0da6b67f08", + "id": "0x3873e108", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32745, - "line": 1076, + "offset": 32247, + "line": 1060, "col": 9, "tokLen": 6 }, "end": { - "offset": 32758, + "offset": 32260, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b67ed8", + "id": "0x3873e0d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32752, + "offset": 32254, "col": 16, "tokLen": 4 }, "end": { - "offset": 32758, + "offset": 32260, "col": 22, "tokLen": 5 } @@ -52891,7 +52027,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1cb0", + "id": "0x37ff2860", "kind": "EnumConstantDecl", "name": "RIGHT", "type": { @@ -52904,35 +52040,35 @@ ] }, { - "id": "0x7f0da6b69248", + "id": "0x3873f448", "kind": "IfStmt", "range": { "begin": { - "offset": 32769, - "line": 1077, + "offset": 32271, + "line": 1061, "col": 5, "tokLen": 2 }, "end": { - "offset": 32806, - "line": 1078, + "offset": 32308, + "line": 1062, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6b69198", + "id": "0x3873f398", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32773, - "line": 1077, + "offset": 32275, + "line": 1061, "col": 9, "tokLen": 1 }, "end": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 } @@ -52944,16 +52080,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b69180", + "id": "0x3873f380", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32775, + "offset": 32277, "col": 11, "tokLen": 2 }, "end": { - "offset": 32775, + "offset": 32277, "col": 11, "tokLen": 2 } @@ -52965,16 +52101,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b69160", + "id": "0x3873f360", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32775, + "offset": 32277, "col": 11, "tokLen": 2 }, "end": { - "offset": 32775, + "offset": 32277, "col": 11, "tokLen": 2 } @@ -52984,7 +52120,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -52995,16 +52131,16 @@ ] }, { - "id": "0x7f0da6b67f38", + "id": "0x3873e138", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32773, + "offset": 32275, "col": 9, "tokLen": 1 }, "end": { - "offset": 32773, + "offset": 32275, "col": 9, "tokLen": 1 } @@ -53012,11 +52148,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -53025,16 +52161,16 @@ } }, { - "id": "0x7f0da6b69148", + "id": "0x3873f348", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 }, "end": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 } @@ -53046,16 +52182,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b67f58", + "id": "0x3873e158", "kind": "StringLiteral", "range": { "begin": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 }, "end": { - "offset": 32778, + "offset": 32280, "col": 14, "tokLen": 5 } @@ -53071,33 +52207,33 @@ ] }, { - "id": "0x7f0da6b69238", + "id": "0x3873f438", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32793, - "line": 1078, + "offset": 32295, + "line": 1062, "col": 9, "tokLen": 6 }, "end": { - "offset": 32806, + "offset": 32308, "col": 22, "tokLen": 3 } }, "inner": [ { - "id": "0x7f0da6b69208", + "id": "0x3873f408", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32800, + "offset": 32302, "col": 16, "tokLen": 4 }, "end": { - "offset": 32806, + "offset": 32308, "col": 22, "tokLen": 3 } @@ -53107,7 +52243,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1d00", + "id": "0x37ff28b0", "kind": "EnumConstantDecl", "name": "TOP", "type": { @@ -53120,35 +52256,35 @@ ] }, { - "id": "0x7f0da6b6a578", + "id": "0x38740778", "kind": "IfStmt", "range": { "begin": { - "offset": 32815, - "line": 1079, + "offset": 32317, + "line": 1063, "col": 5, "tokLen": 2 }, "end": { - "offset": 32855, - "line": 1080, + "offset": 32357, + "line": 1064, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b6a4c8", + "id": "0x387406c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32819, - "line": 1079, + "offset": 32321, + "line": 1063, "col": 9, "tokLen": 1 }, "end": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 } @@ -53160,16 +52296,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6a4b0", + "id": "0x387406b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32821, + "offset": 32323, "col": 11, "tokLen": 2 }, "end": { - "offset": 32821, + "offset": 32323, "col": 11, "tokLen": 2 } @@ -53181,16 +52317,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6a490", + "id": "0x38740690", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32821, + "offset": 32323, "col": 11, "tokLen": 2 }, "end": { - "offset": 32821, + "offset": 32323, "col": 11, "tokLen": 2 } @@ -53200,7 +52336,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -53211,16 +52347,16 @@ ] }, { - "id": "0x7f0da6b69268", + "id": "0x3873f468", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32819, + "offset": 32321, "col": 9, "tokLen": 1 }, "end": { - "offset": 32819, + "offset": 32321, "col": 9, "tokLen": 1 } @@ -53228,11 +52364,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -53241,16 +52377,16 @@ } }, { - "id": "0x7f0da6b6a478", + "id": "0x38740678", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 }, "end": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 } @@ -53262,16 +52398,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b69288", + "id": "0x3873f488", "kind": "StringLiteral", "range": { "begin": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 }, "end": { - "offset": 32824, + "offset": 32326, "col": 14, "tokLen": 8 } @@ -53287,33 +52423,33 @@ ] }, { - "id": "0x7f0da6b6a568", + "id": "0x38740768", "kind": "ReturnStmt", "range": { "begin": { - "offset": 32842, - "line": 1080, + "offset": 32344, + "line": 1064, "col": 9, "tokLen": 6 }, "end": { - "offset": 32855, + "offset": 32357, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b6a538", + "id": "0x38740738", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32849, + "offset": 32351, "col": 16, "tokLen": 4 }, "end": { - "offset": 32855, + "offset": 32357, "col": 22, "tokLen": 6 } @@ -53323,7 +52459,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc1d50", + "id": "0x37ff2900", "kind": "EnumConstantDecl", "name": "BOTTOM", "type": { @@ -53336,17 +52472,17 @@ ] }, { - "id": "0x7f0da6b6ac08", + "id": "0x38740e08", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 32867, - "line": 1081, + "offset": 32369, + "line": 1065, "col": 5, "tokLen": 5 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53358,16 +52494,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b6abf0", + "id": "0x38740df0", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 32867, + "offset": 32369, "col": 5, "tokLen": 5 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53378,16 +52514,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b6abc0", + "id": "0x38740dc0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53405,16 +52541,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6aba8", + "id": "0x38740da8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53427,16 +52563,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b6ab80", + "id": "0x38740d80", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53448,7 +52584,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -53457,16 +52593,16 @@ }, "inner": [ { - "id": "0x7f0da6b6ab60", + "id": "0x38740d60", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53476,9 +52612,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b6ab58", + "temp": "0x38740d58", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -53487,16 +52623,16 @@ }, "inner": [ { - "id": "0x7f0da6b6ab28", + "id": "0x38740d28", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 32873, + "offset": 32375, "col": 11, "tokLen": 12 }, "end": { - "offset": 32914, + "offset": 32416, "col": 52, "tokLen": 1 } @@ -53513,16 +52649,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6ab10", + "id": "0x38740d10", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53536,16 +52672,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b6aaf8", + "id": "0x38740cf8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53558,16 +52694,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6aad8", + "id": "0x38740cd8", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53577,9 +52713,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b6aad0", + "temp": "0x38740cd0", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -53588,16 +52724,16 @@ }, "inner": [ { - "id": "0x7f0da6b6aa98", + "id": "0x38740c98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53610,16 +52746,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6aa80", + "id": "0x38740c80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32911, + "offset": 32413, "col": 49, "tokLen": 1 }, "end": { - "offset": 32911, + "offset": 32413, "col": 49, "tokLen": 1 } @@ -53631,16 +52767,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6aa60", + "id": "0x38740c60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32911, + "offset": 32413, "col": 49, "tokLen": 1 }, "end": { - "offset": 32911, + "offset": 32413, "col": 49, "tokLen": 1 } @@ -53650,7 +52786,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -53661,16 +52797,16 @@ ] }, { - "id": "0x7f0da6b6aa48", + "id": "0x38740c48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 } @@ -53682,16 +52818,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6a5a8", + "id": "0x387407a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 }, "end": { - "offset": 32886, + "offset": 32388, "col": 24, "tokLen": 24 } @@ -53705,16 +52841,16 @@ ] }, { - "id": "0x7f0da6b6a5d8", + "id": "0x387407d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 }, "end": { - "offset": 32913, + "offset": 32415, "col": 51, "tokLen": 1 } @@ -53722,11 +52858,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b65620", + "id": "0x3873b820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -53761,29 +52897,29 @@ ] }, { - "id": "0x7f0da6b6add8", + "id": "0x38740fd8", "kind": "FunctionDecl", "loc": { - "offset": 32957, + "offset": 32459, "file": "ToString.cpp", - "line": 1084, + "line": 1068, "col": 38, "tokLen": 8 }, "range": { "begin": { - "offset": 32920, + "offset": 32422, "col": 1, "tokLen": 8 }, "end": { - "offset": 33380, - "line": 1095, + "offset": 32882, + "line": 1079, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d379ef8", + "previousDecl": "0x385aa4e8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs18streamingInterfaceEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -53797,13 +52933,13 @@ }, "inner": [ { - "id": "0x2cdc1fd0", + "id": "0x37ff2b80", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::streamingInterface" }, "decl": { - "id": "0x2cdc1f30", + "id": "0x37ff2ae0", "kind": "EnumDecl", "name": "streamingInterface" } @@ -53811,22 +52947,22 @@ ] }, { - "id": "0x7f0da6b6ad00", + "id": "0x38740f00", "kind": "ParmVarDecl", "loc": { - "offset": 32985, - "line": 1084, + "offset": 32487, + "line": 1068, "col": 66, "tokLen": 1 }, "range": { "begin": { - "offset": 32966, + "offset": 32468, "col": 47, "tokLen": 5 }, "end": { - "offset": 32985, + "offset": 32487, "col": 66, "tokLen": 1 } @@ -53838,55 +52974,55 @@ } }, { - "id": "0x7f0da6b6f708", + "id": "0x38745908", "kind": "CompoundStmt", "range": { "begin": { - "offset": 32988, + "offset": 32490, "col": 69, "tokLen": 1 }, "end": { - "offset": 33380, - "line": 1095, + "offset": 32882, + "line": 1079, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b6b0c0", + "id": "0x387412c0", "kind": "DeclStmt", "range": { "begin": { - "offset": 32994, - "line": 1085, + "offset": 32496, + "line": 1069, "col": 5, "tokLen": 3 }, "end": { - "offset": 33012, + "offset": 32514, "col": 23, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "loc": { - "offset": 33006, + "offset": 32508, "col": 17, "tokLen": 2 }, "range": { "begin": { - "offset": 32994, + "offset": 32496, "col": 5, "tokLen": 3 }, "end": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 } @@ -53896,21 +53032,21 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "init": "c", "inner": [ { - "id": "0x7f0da6b6b090", + "id": "0x38741290", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 }, "end": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 } @@ -53918,7 +53054,7 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "prvalue", "ctorType": { @@ -53928,16 +53064,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6b070", + "id": "0x38741270", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 }, "end": { - "offset": 33011, + "offset": 32513, "col": 22, "tokLen": 1 } @@ -53945,11 +53081,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6ad00", + "id": "0x38740f00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -53964,35 +53100,35 @@ ] }, { - "id": "0x7f0da6b6b610", + "id": "0x38741810", "kind": "IfStmt", "range": { "begin": { - "offset": 33018, - "line": 1086, + "offset": 32520, + "line": 1070, "col": 5, "tokLen": 2 }, "end": { - "offset": 33085, - "line": 1087, + "offset": 32587, + "line": 1071, "col": 30, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b6b320", + "id": "0x38741520", "kind": "BinaryOperator", "range": { "begin": { - "offset": 33022, - "line": 1086, + "offset": 32524, + "line": 1070, "col": 9, "tokLen": 1 }, "end": { - "offset": 33050, + "offset": 32552, "col": 37, "tokLen": 4 } @@ -54004,16 +53140,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b6b1b0", + "id": "0x387413b0", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 33022, + "offset": 32524, "col": 9, "tokLen": 1 }, "end": { - "offset": 33032, + "offset": 32534, "col": 19, "tokLen": 1 } @@ -54021,21 +53157,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b6b180", + "id": "0x38741380", "kind": "MemberExpr", "range": { "begin": { - "offset": 33022, + "offset": 32524, "col": 9, "tokLen": 1 }, "end": { - "offset": 33024, + "offset": 32526, "col": 11, "tokLen": 4 } @@ -54046,19 +53182,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8caab0", + "referencedMemberDecl": "0x37afc4e0", "inner": [ { - "id": "0x7f0da6b6b0d8", + "id": "0x387412d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33022, + "offset": 32524, "col": 9, "tokLen": 1 }, "end": { - "offset": 33022, + "offset": 32524, "col": 9, "tokLen": 1 } @@ -54066,11 +53202,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6ad00", + "id": "0x38740f00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -54081,16 +53217,16 @@ ] }, { - "id": "0x7f0da6b6b168", + "id": "0x38741368", "kind": "CharacterLiteral", "range": { "begin": { - "offset": 33029, + "offset": 32531, "col": 16, "tokLen": 3 }, "end": { - "offset": 33029, + "offset": 32531, "col": 16, "tokLen": 3 } @@ -54102,7 +53238,7 @@ "value": 44 }, { - "id": "0x7f0da6b6b1f8", + "id": "0x387413f8", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -54111,23 +53247,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b6b308", + "id": "0x38741508", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33037, + "offset": 32539, "col": 24, "tokLen": 3 }, "end": { - "offset": 33050, + "offset": 32552, "col": 37, "tokLen": 4 } @@ -54135,22 +53271,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b6b2d8", + "id": "0x387414d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33037, + "offset": 32539, "col": 24, "tokLen": 3 }, "end": { - "offset": 33050, + "offset": 32552, "col": 37, "tokLen": 4 } @@ -54158,17 +53294,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -54178,17 +53314,17 @@ ] }, { - "id": "0x7f0da6b6b568", + "id": "0x38741768", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 33064, - "line": 1087, + "offset": 32566, + "line": 1071, "col": 9, "tokLen": 2 }, "end": { - "offset": 33085, + "offset": 32587, "col": 30, "tokLen": 1 } @@ -54200,16 +53336,16 @@ "valueCategory": "lvalue", "inner": [ { - "id": "0x7f0da6b6b538", + "id": "0x38741738", "kind": "MemberExpr", "range": { "begin": { - "offset": 33064, + "offset": 32566, "col": 9, "tokLen": 2 }, "end": { - "offset": 33067, + "offset": 32569, "col": 12, "tokLen": 5 } @@ -54220,19 +53356,19 @@ "valueCategory": "prvalue", "name": "erase", "isArrow": false, - "referencedMemberDecl": "0x2c8c3390", + "referencedMemberDecl": "0x37af4dc0", "inner": [ { - "id": "0x7f0da6b6b340", + "id": "0x38741540", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33064, + "offset": 32566, "col": 9, "tokLen": 2 }, "end": { - "offset": 33064, + "offset": 32566, "col": 9, "tokLen": 2 } @@ -54240,33 +53376,33 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } ] }, { - "id": "0x7f0da6b6b4a0", + "id": "0x387416a0", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 }, "end": { - "offset": 33084, + "offset": 32586, "col": 29, "tokLen": 1 } @@ -54274,21 +53410,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b6b470", + "id": "0x38741670", "kind": "MemberExpr", "range": { "begin": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 }, "end": { - "offset": 33076, + "offset": 32578, "col": 21, "tokLen": 4 } @@ -54299,19 +53435,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8caab0", + "referencedMemberDecl": "0x37afc4e0", "inner": [ { - "id": "0x7f0da6b6b4d0", + "id": "0x387416d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 }, "end": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 } @@ -54323,16 +53459,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6b3c8", + "id": "0x387415c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 }, "end": { - "offset": 33073, + "offset": 32575, "col": 18, "tokLen": 2 } @@ -54340,17 +53476,17 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } @@ -54359,16 +53495,16 @@ ] }, { - "id": "0x7f0da6b6b458", + "id": "0x38741658", "kind": "CharacterLiteral", "range": { "begin": { - "offset": 33081, + "offset": 32583, "col": 26, "tokLen": 3 }, "end": { - "offset": 33081, + "offset": 32583, "col": 26, "tokLen": 3 } @@ -54380,7 +53516,7 @@ "value": 44 }, { - "id": "0x7f0da6b6b4e8", + "id": "0x387416e8", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -54389,14 +53525,14 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b6b5f0", + "id": "0x387417f0", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -54405,7 +53541,7 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } @@ -54414,35 +53550,35 @@ ] }, { - "id": "0x7f0da6b6c968", + "id": "0x38742b68", "kind": "IfStmt", "range": { "begin": { - "offset": 33092, - "line": 1088, + "offset": 32594, + "line": 1072, "col": 5, "tokLen": 2 }, "end": { - "offset": 33151, - "line": 1089, + "offset": 32653, + "line": 1073, "col": 42, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b6c8a0", + "id": "0x38742aa0", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33096, - "line": 1088, + "offset": 32598, + "line": 1072, "col": 9, "tokLen": 2 }, "end": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 } @@ -54454,16 +53590,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6c888", + "id": "0x38742a88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33099, + "offset": 32601, "col": 12, "tokLen": 2 }, "end": { - "offset": 33099, + "offset": 32601, "col": 12, "tokLen": 2 } @@ -54475,16 +53611,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6c868", + "id": "0x38742a68", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33099, + "offset": 32601, "col": 12, "tokLen": 2 }, "end": { - "offset": 33099, + "offset": 32601, "col": 12, "tokLen": 2 } @@ -54494,7 +53630,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -54505,16 +53641,16 @@ ] }, { - "id": "0x7f0da6b6c838", + "id": "0x38742a38", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33096, + "offset": 32598, "col": 9, "tokLen": 2 }, "end": { - "offset": 33096, + "offset": 32598, "col": 9, "tokLen": 2 } @@ -54527,16 +53663,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6b630", + "id": "0x38741830", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33096, + "offset": 32598, "col": 9, "tokLen": 2 }, "end": { - "offset": 33096, + "offset": 32598, "col": 9, "tokLen": 2 } @@ -54544,33 +53680,33 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } ] }, { - "id": "0x7f0da6b6c850", + "id": "0x38742a50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 }, "end": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 } @@ -54582,16 +53718,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6b650", + "id": "0x38741850", "kind": "StringLiteral", "range": { "begin": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 }, "end": { - "offset": 33102, + "offset": 32604, "col": 15, "tokLen": 6 } @@ -54607,33 +53743,33 @@ ] }, { - "id": "0x7f0da6b6c958", + "id": "0x38742b58", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33118, - "line": 1089, + "offset": 32620, + "line": 1073, "col": 9, "tokLen": 6 }, "end": { - "offset": 33151, + "offset": 32653, "col": 42, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b6c928", + "id": "0x38742b28", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33125, + "offset": 32627, "col": 16, "tokLen": 4 }, "end": { - "offset": 33151, + "offset": 32653, "col": 42, "tokLen": 4 } @@ -54643,7 +53779,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2030", + "id": "0x37ff2be0", "kind": "EnumConstantDecl", "name": "NONE", "type": { @@ -54656,35 +53792,35 @@ ] }, { - "id": "0x7f0da6b6dcc8", + "id": "0x38743ec8", "kind": "IfStmt", "range": { "begin": { - "offset": 33161, - "line": 1090, + "offset": 32663, + "line": 1074, "col": 5, "tokLen": 2 }, "end": { - "offset": 33219, - "line": 1091, + "offset": 32721, + "line": 1075, "col": 42, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b6dc00", + "id": "0x38743e00", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33165, - "line": 1090, + "offset": 32667, + "line": 1074, "col": 9, "tokLen": 2 }, "end": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 } @@ -54696,16 +53832,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6dbe8", + "id": "0x38743de8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33168, + "offset": 32670, "col": 12, "tokLen": 2 }, "end": { - "offset": 33168, + "offset": 32670, "col": 12, "tokLen": 2 } @@ -54717,16 +53853,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6dbc8", + "id": "0x38743dc8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33168, + "offset": 32670, "col": 12, "tokLen": 2 }, "end": { - "offset": 33168, + "offset": 32670, "col": 12, "tokLen": 2 } @@ -54736,7 +53872,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -54747,16 +53883,16 @@ ] }, { - "id": "0x7f0da6b6db98", + "id": "0x38743d98", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33165, + "offset": 32667, "col": 9, "tokLen": 2 }, "end": { - "offset": 33165, + "offset": 32667, "col": 9, "tokLen": 2 } @@ -54769,16 +53905,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6c988", + "id": "0x38742b88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33165, + "offset": 32667, "col": 9, "tokLen": 2 }, "end": { - "offset": 33165, + "offset": 32667, "col": 9, "tokLen": 2 } @@ -54786,33 +53922,33 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } ] }, { - "id": "0x7f0da6b6dbb0", + "id": "0x38743db0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 }, "end": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 } @@ -54824,16 +53960,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6c9a8", + "id": "0x38742ba8", "kind": "StringLiteral", "range": { "begin": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 }, "end": { - "offset": 33171, + "offset": 32673, "col": 15, "tokLen": 5 } @@ -54849,33 +53985,33 @@ ] }, { - "id": "0x7f0da6b6dcb8", + "id": "0x38743eb8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33186, - "line": 1091, + "offset": 32688, + "line": 1075, "col": 9, "tokLen": 6 }, "end": { - "offset": 33219, + "offset": 32721, "col": 42, "tokLen": 16 } }, "inner": [ { - "id": "0x7f0da6b6dc88", + "id": "0x38743e88", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33193, + "offset": 32695, "col": 16, "tokLen": 4 }, "end": { - "offset": 33219, + "offset": 32721, "col": 42, "tokLen": 16 } @@ -54885,7 +54021,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2100", + "id": "0x37ff2cb0", "kind": "EnumConstantDecl", "name": "LOW_LATENCY_LINK", "type": { @@ -54898,35 +54034,35 @@ ] }, { - "id": "0x7f0da6b6f028", + "id": "0x38745228", "kind": "IfStmt", "range": { "begin": { - "offset": 33241, - "line": 1092, + "offset": 32743, + "line": 1076, "col": 5, "tokLen": 2 }, "end": { - "offset": 33301, - "line": 1093, + "offset": 32803, + "line": 1077, "col": 42, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6b6ef60", + "id": "0x38745160", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33245, - "line": 1092, + "offset": 32747, + "line": 1076, "col": 9, "tokLen": 2 }, "end": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 } @@ -54938,16 +54074,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6ef48", + "id": "0x38745148", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33248, + "offset": 32750, "col": 12, "tokLen": 2 }, "end": { - "offset": 33248, + "offset": 32750, "col": 12, "tokLen": 2 } @@ -54959,16 +54095,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6ef28", + "id": "0x38745128", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33248, + "offset": 32750, "col": 12, "tokLen": 2 }, "end": { - "offset": 33248, + "offset": 32750, "col": 12, "tokLen": 2 } @@ -54978,7 +54114,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -54989,16 +54125,16 @@ ] }, { - "id": "0x7f0da6b6eef8", + "id": "0x387450f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33245, + "offset": 32747, "col": 9, "tokLen": 2 }, "end": { - "offset": 33245, + "offset": 32747, "col": 9, "tokLen": 2 } @@ -55011,16 +54147,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6dce8", + "id": "0x38743ee8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33245, + "offset": 32747, "col": 9, "tokLen": 2 }, "end": { - "offset": 33245, + "offset": 32747, "col": 9, "tokLen": 2 } @@ -55028,33 +54164,33 @@ "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6b008", + "id": "0x38741208", "kind": "VarDecl", "name": "rs", "type": { "desugaredQualType": "std::basic_string", "qualType": "std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" } } } ] }, { - "id": "0x7f0da6b6ef10", + "id": "0x38745110", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 }, "end": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 } @@ -55066,16 +54202,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6dd08", + "id": "0x38743f08", "kind": "StringLiteral", "range": { "begin": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 }, "end": { - "offset": 33251, + "offset": 32753, "col": 15, "tokLen": 7 } @@ -55091,33 +54227,33 @@ ] }, { - "id": "0x7f0da6b6f018", + "id": "0x38745218", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33268, - "line": 1093, + "offset": 32770, + "line": 1077, "col": 9, "tokLen": 6 }, "end": { - "offset": 33301, + "offset": 32803, "col": 42, "tokLen": 13 } }, "inner": [ { - "id": "0x7f0da6b6efe8", + "id": "0x387451e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33275, + "offset": 32777, "col": 16, "tokLen": 4 }, "end": { - "offset": 33301, + "offset": 32803, "col": 42, "tokLen": 13 } @@ -55127,7 +54263,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc21d0", + "id": "0x37ff2d80", "kind": "EnumConstantDecl", "name": "ETHERNET_10GB", "type": { @@ -55140,17 +54276,17 @@ ] }, { - "id": "0x7f0da6b6f6f0", + "id": "0x387458f0", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 33320, - "line": 1094, + "offset": 32822, + "line": 1078, "col": 5, "tokLen": 5 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55162,16 +54298,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b6f6d8", + "id": "0x387458d8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 33320, + "offset": 32822, "col": 5, "tokLen": 5 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55182,16 +54318,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b6f6a8", + "id": "0x387458a8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55209,16 +54345,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6f690", + "id": "0x38745890", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55231,16 +54367,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b6f668", + "id": "0x38745868", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55252,7 +54388,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -55261,16 +54397,16 @@ }, "inner": [ { - "id": "0x7f0da6b6f648", + "id": "0x38745848", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55280,9 +54416,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b6f640", + "temp": "0x38745840", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -55291,16 +54427,16 @@ }, "inner": [ { - "id": "0x7f0da6b6f610", + "id": "0x38745810", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33326, + "offset": 32828, "col": 11, "tokLen": 12 }, "end": { - "offset": 33377, + "offset": 32879, "col": 62, "tokLen": 1 } @@ -55317,16 +54453,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b6f5f8", + "id": "0x387457f8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55340,16 +54476,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b6f5e0", + "id": "0x387457e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55362,16 +54498,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b6f5c0", + "id": "0x387457c0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55381,9 +54517,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b6f5b8", + "temp": "0x387457b8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -55392,16 +54528,16 @@ }, "inner": [ { - "id": "0x7f0da6b6f580", + "id": "0x38745780", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55414,16 +54550,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b6f568", + "id": "0x38745768", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33374, + "offset": 32876, "col": 59, "tokLen": 1 }, "end": { - "offset": 33374, + "offset": 32876, "col": 59, "tokLen": 1 } @@ -55435,16 +54571,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b6f548", + "id": "0x38745748", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33374, + "offset": 32876, "col": 59, "tokLen": 1 }, "end": { - "offset": 33374, + "offset": 32876, "col": 59, "tokLen": 1 } @@ -55454,7 +54590,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -55465,16 +54601,16 @@ ] }, { - "id": "0x7f0da6b6f530", + "id": "0x38745730", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 } @@ -55486,16 +54622,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6f058", + "id": "0x38745258", "kind": "StringLiteral", "range": { "begin": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 }, "end": { - "offset": 33339, + "offset": 32841, "col": 24, "tokLen": 34 } @@ -55509,16 +54645,16 @@ ] }, { - "id": "0x7f0da6b6f090", + "id": "0x38745290", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 }, "end": { - "offset": 33376, + "offset": 32878, "col": 61, "tokLen": 1 } @@ -55526,11 +54662,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6ad00", + "id": "0x38740f00", "kind": "ParmVarDecl", "name": "s", "type": { @@ -55565,29 +54701,29 @@ ] }, { - "id": "0x7f0da6b6f8c8", + "id": "0x38745ac8", "kind": "FunctionDecl", "loc": { - "offset": 33415, + "offset": 32917, "file": "ToString.cpp", - "line": 1097, + "line": 1081, "col": 33, "tokLen": 8 }, "range": { "begin": { - "offset": 33383, + "offset": 32885, "col": 1, "tokLen": 8 }, "end": { - "offset": 33605, - "line": 1103, + "offset": 33107, + "line": 1087, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37a448", + "previousDecl": "0x385aaa38", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs13vetoAlgorithmEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -55601,13 +54737,13 @@ }, "inner": [ { - "id": "0x2cdc2390", + "id": "0x37ff2f40", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::vetoAlgorithm" }, "decl": { - "id": "0x2cdc22f0", + "id": "0x37ff2ea0", "kind": "EnumDecl", "name": "vetoAlgorithm" } @@ -55615,22 +54751,22 @@ ] }, { - "id": "0x7f0da6b6f7f0", + "id": "0x387459f0", "kind": "ParmVarDecl", "loc": { - "offset": 33443, - "line": 1097, + "offset": 32945, + "line": 1081, "col": 61, "tokLen": 1 }, "range": { "begin": { - "offset": 33424, + "offset": 32926, "col": 42, "tokLen": 5 }, "end": { - "offset": 33443, + "offset": 32945, "col": 61, "tokLen": 1 } @@ -55642,52 +54778,52 @@ } }, { - "id": "0x7f0da6b72790", + "id": "0x38748990", "kind": "CompoundStmt", "range": { "begin": { - "offset": 33446, + "offset": 32948, "col": 64, "tokLen": 1 }, "end": { - "offset": 33605, - "line": 1103, + "offset": 33107, + "line": 1087, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b70db8", + "id": "0x38746fb8", "kind": "IfStmt", "range": { "begin": { - "offset": 33452, - "line": 1098, + "offset": 32954, + "line": 1082, "col": 5, "tokLen": 2 }, "end": { - "offset": 33490, - "line": 1099, + "offset": 32992, + "line": 1083, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b70d08", + "id": "0x38746f08", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33456, - "line": 1098, + "offset": 32958, + "line": 1082, "col": 9, "tokLen": 1 }, "end": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 } @@ -55699,16 +54835,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b70cf0", + "id": "0x38746ef0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33458, + "offset": 32960, "col": 11, "tokLen": 2 }, "end": { - "offset": 33458, + "offset": 32960, "col": 11, "tokLen": 2 } @@ -55720,16 +54856,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b70cd0", + "id": "0x38746ed0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33458, + "offset": 32960, "col": 11, "tokLen": 2 }, "end": { - "offset": 33458, + "offset": 32960, "col": 11, "tokLen": 2 } @@ -55739,7 +54875,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -55750,16 +54886,16 @@ ] }, { - "id": "0x7f0da6b6fab0", + "id": "0x38745cb0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33456, + "offset": 32958, "col": 9, "tokLen": 1 }, "end": { - "offset": 33456, + "offset": 32958, "col": 9, "tokLen": 1 } @@ -55767,11 +54903,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6f7f0", + "id": "0x387459f0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -55780,16 +54916,16 @@ } }, { - "id": "0x7f0da6b70cb8", + "id": "0x38746eb8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 }, "end": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 } @@ -55801,16 +54937,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b6fad0", + "id": "0x38745cd0", "kind": "StringLiteral", "range": { "begin": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 }, "end": { - "offset": 33461, + "offset": 32963, "col": 14, "tokLen": 6 } @@ -55826,33 +54962,33 @@ ] }, { - "id": "0x7f0da6b70da8", + "id": "0x38746fa8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33477, - "line": 1099, + "offset": 32979, + "line": 1083, "col": 9, "tokLen": 6 }, "end": { - "offset": 33490, + "offset": 32992, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b70d78", + "id": "0x38746f78", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33484, + "offset": 32986, "col": 16, "tokLen": 4 }, "end": { - "offset": 33490, + "offset": 32992, "col": 22, "tokLen": 8 } @@ -55862,7 +54998,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc23b0", + "id": "0x37ff2f60", "kind": "EnumConstantDecl", "name": "ALG_HITS", "type": { @@ -55875,35 +55011,35 @@ ] }, { - "id": "0x7f0da6b720e8", + "id": "0x387482e8", "kind": "IfStmt", "range": { "begin": { - "offset": 33504, - "line": 1100, + "offset": 33006, + "line": 1084, "col": 5, "tokLen": 2 }, "end": { - "offset": 33541, - "line": 1101, + "offset": 33043, + "line": 1085, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b72038", + "id": "0x38748238", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33508, - "line": 1100, + "offset": 33010, + "line": 1084, "col": 9, "tokLen": 1 }, "end": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 } @@ -55915,16 +55051,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b72020", + "id": "0x38748220", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33510, + "offset": 33012, "col": 11, "tokLen": 2 }, "end": { - "offset": 33510, + "offset": 33012, "col": 11, "tokLen": 2 } @@ -55936,16 +55072,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b72000", + "id": "0x38748200", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33510, + "offset": 33012, "col": 11, "tokLen": 2 }, "end": { - "offset": 33510, + "offset": 33012, "col": 11, "tokLen": 2 } @@ -55955,7 +55091,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -55966,16 +55102,16 @@ ] }, { - "id": "0x7f0da6b70dd8", + "id": "0x38746fd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33508, + "offset": 33010, "col": 9, "tokLen": 1 }, "end": { - "offset": 33508, + "offset": 33010, "col": 9, "tokLen": 1 } @@ -55983,11 +55119,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6f7f0", + "id": "0x387459f0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -55996,16 +55132,16 @@ } }, { - "id": "0x7f0da6b71fe8", + "id": "0x387481e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 }, "end": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 } @@ -56017,16 +55153,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b70df8", + "id": "0x38746ff8", "kind": "StringLiteral", "range": { "begin": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 }, "end": { - "offset": 33513, + "offset": 33015, "col": 14, "tokLen": 5 } @@ -56042,33 +55178,33 @@ ] }, { - "id": "0x7f0da6b720d8", + "id": "0x387482d8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33528, - "line": 1101, + "offset": 33030, + "line": 1085, "col": 9, "tokLen": 6 }, "end": { - "offset": 33541, + "offset": 33043, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b720a8", + "id": "0x387482a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33535, + "offset": 33037, "col": 16, "tokLen": 4 }, "end": { - "offset": 33541, + "offset": 33043, "col": 22, "tokLen": 7 } @@ -56078,7 +55214,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2400", + "id": "0x37ff2fb0", "kind": "EnumConstantDecl", "name": "ALG_RAW", "type": { @@ -56091,17 +55227,17 @@ ] }, { - "id": "0x7f0da6b72778", + "id": "0x38748978", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 33554, - "line": 1102, + "offset": 33056, + "line": 1086, "col": 5, "tokLen": 5 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56113,16 +55249,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b72760", + "id": "0x38748960", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 33554, + "offset": 33056, "col": 5, "tokLen": 5 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56133,16 +55269,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b72730", + "id": "0x38748930", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56160,16 +55296,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b72718", + "id": "0x38748918", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56182,16 +55318,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b726f0", + "id": "0x387488f0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56203,7 +55339,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -56212,16 +55348,16 @@ }, "inner": [ { - "id": "0x7f0da6b726d0", + "id": "0x387488d0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56231,9 +55367,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b726c8", + "temp": "0x387488c8", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -56242,16 +55378,16 @@ }, "inner": [ { - "id": "0x7f0da6b72698", + "id": "0x38748898", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 33560, + "offset": 33062, "col": 11, "tokLen": 12 }, "end": { - "offset": 33602, + "offset": 33104, "col": 53, "tokLen": 1 } @@ -56268,16 +55404,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b72680", + "id": "0x38748880", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56291,16 +55427,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b72668", + "id": "0x38748868", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56313,16 +55449,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b72648", + "id": "0x38748848", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56332,9 +55468,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b72640", + "temp": "0x38748840", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -56343,16 +55479,16 @@ }, "inner": [ { - "id": "0x7f0da6b72608", + "id": "0x38748808", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56365,16 +55501,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b725f0", + "id": "0x387487f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33599, + "offset": 33101, "col": 50, "tokLen": 1 }, "end": { - "offset": 33599, + "offset": 33101, "col": 50, "tokLen": 1 } @@ -56386,16 +55522,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b725d0", + "id": "0x387487d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33599, + "offset": 33101, "col": 50, "tokLen": 1 }, "end": { - "offset": 33599, + "offset": 33101, "col": 50, "tokLen": 1 } @@ -56405,7 +55541,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -56416,16 +55552,16 @@ ] }, { - "id": "0x7f0da6b725b8", + "id": "0x387487b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 } @@ -56437,16 +55573,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b72118", + "id": "0x38748318", "kind": "StringLiteral", "range": { "begin": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 }, "end": { - "offset": 33573, + "offset": 33075, "col": 24, "tokLen": 25 } @@ -56460,16 +55596,16 @@ ] }, { - "id": "0x7f0da6b72148", + "id": "0x38748348", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 }, "end": { - "offset": 33601, + "offset": 33103, "col": 52, "tokLen": 1 } @@ -56477,11 +55613,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b6f7f0", + "id": "0x387459f0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -56516,29 +55652,29 @@ ] }, { - "id": "0x7f0da6b72938", + "id": "0x38748b38", "kind": "FunctionDecl", "loc": { - "offset": 33635, + "offset": 33137, "file": "ToString.cpp", - "line": 1105, + "line": 1089, "col": 28, "tokLen": 8 }, "range": { "begin": { - "offset": 33608, + "offset": 33110, "col": 1, "tokLen": 8 }, "end": { - "offset": 34061, - "line": 1119, + "offset": 33563, + "line": 1103, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37a998", + "previousDecl": "0x385aaf88", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8gainModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -56552,13 +55688,13 @@ }, "inner": [ { - "id": "0x2cdc24f0", + "id": "0x37ff30a0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::gainMode" }, "decl": { - "id": "0x2cdc2450", + "id": "0x37ff3000", "kind": "EnumDecl", "name": "gainMode" } @@ -56566,22 +55702,22 @@ ] }, { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "loc": { - "offset": 33663, - "line": 1105, + "offset": 33165, + "line": 1089, "col": 56, "tokLen": 1 }, "range": { "begin": { - "offset": 33644, + "offset": 33146, "col": 37, "tokLen": 5 }, "end": { - "offset": 33663, + "offset": 33165, "col": 56, "tokLen": 1 } @@ -56593,52 +55729,52 @@ } }, { - "id": "0x7f0da6b7a4c0", + "id": "0x387506c0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 33666, + "offset": 33168, "col": 59, "tokLen": 1 }, "end": { - "offset": 34061, - "line": 1119, + "offset": 33563, + "line": 1103, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b73e28", + "id": "0x3874a028", "kind": "IfStmt", "range": { "begin": { - "offset": 33672, - "line": 1106, + "offset": 33174, + "line": 1090, "col": 5, "tokLen": 2 }, "end": { - "offset": 33713, - "line": 1107, + "offset": 33215, + "line": 1091, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b73d78", + "id": "0x38749f78", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33676, - "line": 1106, + "offset": 33178, + "line": 1090, "col": 9, "tokLen": 1 }, "end": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 } @@ -56650,16 +55786,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b73d60", + "id": "0x38749f60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33678, + "offset": 33180, "col": 11, "tokLen": 2 }, "end": { - "offset": 33678, + "offset": 33180, "col": 11, "tokLen": 2 } @@ -56671,16 +55807,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b73d40", + "id": "0x38749f40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33678, + "offset": 33180, "col": 11, "tokLen": 2 }, "end": { - "offset": 33678, + "offset": 33180, "col": 11, "tokLen": 2 } @@ -56690,7 +55826,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -56701,16 +55837,16 @@ ] }, { - "id": "0x7f0da6b72b20", + "id": "0x38748d20", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33676, + "offset": 33178, "col": 9, "tokLen": 1 }, "end": { - "offset": 33676, + "offset": 33178, "col": 9, "tokLen": 1 } @@ -56718,11 +55854,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -56731,16 +55867,16 @@ } }, { - "id": "0x7f0da6b73d28", + "id": "0x38749f28", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 }, "end": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 } @@ -56752,16 +55888,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b72b40", + "id": "0x38748d40", "kind": "StringLiteral", "range": { "begin": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 }, "end": { - "offset": 33681, + "offset": 33183, "col": 14, "tokLen": 9 } @@ -56777,33 +55913,33 @@ ] }, { - "id": "0x7f0da6b73e18", + "id": "0x3874a018", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33700, - "line": 1107, + "offset": 33202, + "line": 1091, "col": 9, "tokLen": 6 }, "end": { - "offset": 33713, + "offset": 33215, "col": 22, "tokLen": 7 } }, "inner": [ { - "id": "0x7f0da6b73de8", + "id": "0x38749fe8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33707, + "offset": 33209, "col": 16, "tokLen": 4 }, "end": { - "offset": 33713, + "offset": 33215, "col": 22, "tokLen": 7 } @@ -56813,7 +55949,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2510", + "id": "0x37ff30c0", "kind": "EnumConstantDecl", "name": "DYNAMIC", "type": { @@ -56826,35 +55962,35 @@ ] }, { - "id": "0x7f0da6b75158", + "id": "0x3874b358", "kind": "IfStmt", "range": { "begin": { - "offset": 33726, - "line": 1108, + "offset": 33228, + "line": 1092, "col": 5, "tokLen": 2 }, "end": { - "offset": 33773, - "line": 1109, + "offset": 33275, + "line": 1093, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b750a8", + "id": "0x3874b2a8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33730, - "line": 1108, + "offset": 33232, + "line": 1092, "col": 9, "tokLen": 1 }, "end": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 } @@ -56866,16 +56002,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b75090", + "id": "0x3874b290", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33732, + "offset": 33234, "col": 11, "tokLen": 2 }, "end": { - "offset": 33732, + "offset": 33234, "col": 11, "tokLen": 2 } @@ -56887,16 +56023,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b75070", + "id": "0x3874b270", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33732, + "offset": 33234, "col": 11, "tokLen": 2 }, "end": { - "offset": 33732, + "offset": 33234, "col": 11, "tokLen": 2 } @@ -56906,7 +56042,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -56917,16 +56053,16 @@ ] }, { - "id": "0x7f0da6b73e48", + "id": "0x3874a048", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33730, + "offset": 33232, "col": 9, "tokLen": 1 }, "end": { - "offset": 33730, + "offset": 33232, "col": 9, "tokLen": 1 } @@ -56934,11 +56070,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -56947,16 +56083,16 @@ } }, { - "id": "0x7f0da6b75058", + "id": "0x3874b258", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 }, "end": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 } @@ -56968,16 +56104,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b73e68", + "id": "0x3874a068", "kind": "StringLiteral", "range": { "begin": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 }, "end": { - "offset": 33735, + "offset": 33237, "col": 14, "tokLen": 15 } @@ -56993,33 +56129,33 @@ ] }, { - "id": "0x7f0da6b75148", + "id": "0x3874b348", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33760, - "line": 1109, + "offset": 33262, + "line": 1093, "col": 9, "tokLen": 6 }, "end": { - "offset": 33773, + "offset": 33275, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b75118", + "id": "0x3874b318", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33767, + "offset": 33269, "col": 16, "tokLen": 4 }, "end": { - "offset": 33773, + "offset": 33275, "col": 22, "tokLen": 15 } @@ -57029,7 +56165,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2560", + "id": "0x37ff3110", "kind": "EnumConstantDecl", "name": "FORCE_SWITCH_G1", "type": { @@ -57042,35 +56178,35 @@ ] }, { - "id": "0x7f0da6b76488", + "id": "0x3874c688", "kind": "IfStmt", "range": { "begin": { - "offset": 33794, - "line": 1110, + "offset": 33296, + "line": 1094, "col": 5, "tokLen": 2 }, "end": { - "offset": 33841, - "line": 1111, + "offset": 33343, + "line": 1095, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b763d8", + "id": "0x3874c5d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33798, - "line": 1110, + "offset": 33300, + "line": 1094, "col": 9, "tokLen": 1 }, "end": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 } @@ -57082,16 +56218,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b763c0", + "id": "0x3874c5c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33800, + "offset": 33302, "col": 11, "tokLen": 2 }, "end": { - "offset": 33800, + "offset": 33302, "col": 11, "tokLen": 2 } @@ -57103,16 +56239,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b763a0", + "id": "0x3874c5a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33800, + "offset": 33302, "col": 11, "tokLen": 2 }, "end": { - "offset": 33800, + "offset": 33302, "col": 11, "tokLen": 2 } @@ -57122,7 +56258,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -57133,16 +56269,16 @@ ] }, { - "id": "0x7f0da6b75178", + "id": "0x3874b378", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33798, + "offset": 33300, "col": 9, "tokLen": 1 }, "end": { - "offset": 33798, + "offset": 33300, "col": 9, "tokLen": 1 } @@ -57150,11 +56286,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -57163,16 +56299,16 @@ } }, { - "id": "0x7f0da6b76388", + "id": "0x3874c588", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 }, "end": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 } @@ -57184,16 +56320,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b75198", + "id": "0x3874b398", "kind": "StringLiteral", "range": { "begin": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 }, "end": { - "offset": 33803, + "offset": 33305, "col": 14, "tokLen": 15 } @@ -57209,33 +56345,33 @@ ] }, { - "id": "0x7f0da6b76478", + "id": "0x3874c678", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33828, - "line": 1111, + "offset": 33330, + "line": 1095, "col": 9, "tokLen": 6 }, "end": { - "offset": 33841, + "offset": 33343, "col": 22, "tokLen": 15 } }, "inner": [ { - "id": "0x7f0da6b76448", + "id": "0x3874c648", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33835, + "offset": 33337, "col": 16, "tokLen": 4 }, "end": { - "offset": 33841, + "offset": 33343, "col": 22, "tokLen": 15 } @@ -57245,7 +56381,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc25b0", + "id": "0x37ff3160", "kind": "EnumConstantDecl", "name": "FORCE_SWITCH_G2", "type": { @@ -57258,35 +56394,35 @@ ] }, { - "id": "0x7f0da6b777b8", + "id": "0x3874d9b8", "kind": "IfStmt", "range": { "begin": { - "offset": 33862, - "line": 1112, + "offset": 33364, + "line": 1096, "col": 5, "tokLen": 2 }, "end": { - "offset": 33901, - "line": 1113, + "offset": 33403, + "line": 1097, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b77708", + "id": "0x3874d908", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33866, - "line": 1112, + "offset": 33368, + "line": 1096, "col": 9, "tokLen": 1 }, "end": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 } @@ -57298,16 +56434,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b776f0", + "id": "0x3874d8f0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33868, + "offset": 33370, "col": 11, "tokLen": 2 }, "end": { - "offset": 33868, + "offset": 33370, "col": 11, "tokLen": 2 } @@ -57319,16 +56455,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b776d0", + "id": "0x3874d8d0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33868, + "offset": 33370, "col": 11, "tokLen": 2 }, "end": { - "offset": 33868, + "offset": 33370, "col": 11, "tokLen": 2 } @@ -57338,7 +56474,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -57349,16 +56485,16 @@ ] }, { - "id": "0x7f0da6b764a8", + "id": "0x3874c6a8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33866, + "offset": 33368, "col": 9, "tokLen": 1 }, "end": { - "offset": 33866, + "offset": 33368, "col": 9, "tokLen": 1 } @@ -57366,11 +56502,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -57379,16 +56515,16 @@ } }, { - "id": "0x7f0da6b776b8", + "id": "0x3874d8b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 }, "end": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 } @@ -57400,16 +56536,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b764c8", + "id": "0x3874c6c8", "kind": "StringLiteral", "range": { "begin": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 }, "end": { - "offset": 33871, + "offset": 33373, "col": 14, "tokLen": 7 } @@ -57425,33 +56561,33 @@ ] }, { - "id": "0x7f0da6b777a8", + "id": "0x3874d9a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33888, - "line": 1113, + "offset": 33390, + "line": 1097, "col": 9, "tokLen": 6 }, "end": { - "offset": 33901, + "offset": 33403, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b77778", + "id": "0x3874d978", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33895, + "offset": 33397, "col": 16, "tokLen": 4 }, "end": { - "offset": 33901, + "offset": 33403, "col": 22, "tokLen": 6 } @@ -57461,7 +56597,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2600", + "id": "0x37ff31b0", "kind": "EnumConstantDecl", "name": "FIX_G1", "type": { @@ -57474,35 +56610,35 @@ ] }, { - "id": "0x7f0da6b78ae8", + "id": "0x3874ece8", "kind": "IfStmt", "range": { "begin": { - "offset": 33913, - "line": 1114, + "offset": 33415, + "line": 1098, "col": 5, "tokLen": 2 }, "end": { - "offset": 33952, - "line": 1115, + "offset": 33454, + "line": 1099, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b78a38", + "id": "0x3874ec38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33917, - "line": 1114, + "offset": 33419, + "line": 1098, "col": 9, "tokLen": 1 }, "end": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 } @@ -57514,16 +56650,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b78a20", + "id": "0x3874ec20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33919, + "offset": 33421, "col": 11, "tokLen": 2 }, "end": { - "offset": 33919, + "offset": 33421, "col": 11, "tokLen": 2 } @@ -57535,16 +56671,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b78a00", + "id": "0x3874ec00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33919, + "offset": 33421, "col": 11, "tokLen": 2 }, "end": { - "offset": 33919, + "offset": 33421, "col": 11, "tokLen": 2 } @@ -57554,7 +56690,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -57565,16 +56701,16 @@ ] }, { - "id": "0x7f0da6b777d8", + "id": "0x3874d9d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33917, + "offset": 33419, "col": 9, "tokLen": 1 }, "end": { - "offset": 33917, + "offset": 33419, "col": 9, "tokLen": 1 } @@ -57582,11 +56718,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -57595,16 +56731,16 @@ } }, { - "id": "0x7f0da6b789e8", + "id": "0x3874ebe8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 }, "end": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 } @@ -57616,16 +56752,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b777f8", + "id": "0x3874d9f8", "kind": "StringLiteral", "range": { "begin": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 }, "end": { - "offset": 33922, + "offset": 33424, "col": 14, "tokLen": 7 } @@ -57641,33 +56777,33 @@ ] }, { - "id": "0x7f0da6b78ad8", + "id": "0x3874ecd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33939, - "line": 1115, + "offset": 33441, + "line": 1099, "col": 9, "tokLen": 6 }, "end": { - "offset": 33952, + "offset": 33454, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b78aa8", + "id": "0x3874eca8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33946, + "offset": 33448, "col": 16, "tokLen": 4 }, "end": { - "offset": 33952, + "offset": 33454, "col": 22, "tokLen": 6 } @@ -57677,7 +56813,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2650", + "id": "0x37ff3200", "kind": "EnumConstantDecl", "name": "FIX_G2", "type": { @@ -57690,35 +56826,35 @@ ] }, { - "id": "0x7f0da6b79e18", + "id": "0x38750018", "kind": "IfStmt", "range": { "begin": { - "offset": 33964, - "line": 1116, + "offset": 33466, + "line": 1100, "col": 5, "tokLen": 2 }, "end": { - "offset": 34003, - "line": 1117, + "offset": 33505, + "line": 1101, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b79d68", + "id": "0x3874ff68", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 33968, - "line": 1116, + "offset": 33470, + "line": 1100, "col": 9, "tokLen": 1 }, "end": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 } @@ -57730,16 +56866,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b79d50", + "id": "0x3874ff50", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33970, + "offset": 33472, "col": 11, "tokLen": 2 }, "end": { - "offset": 33970, + "offset": 33472, "col": 11, "tokLen": 2 } @@ -57751,16 +56887,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b79d30", + "id": "0x3874ff30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33970, + "offset": 33472, "col": 11, "tokLen": 2 }, "end": { - "offset": 33970, + "offset": 33472, "col": 11, "tokLen": 2 } @@ -57770,7 +56906,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -57781,16 +56917,16 @@ ] }, { - "id": "0x7f0da6b78b08", + "id": "0x3874ed08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33968, + "offset": 33470, "col": 9, "tokLen": 1 }, "end": { - "offset": 33968, + "offset": 33470, "col": 9, "tokLen": 1 } @@ -57798,11 +56934,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -57811,16 +56947,16 @@ } }, { - "id": "0x7f0da6b79d18", + "id": "0x3874ff18", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 }, "end": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 } @@ -57832,16 +56968,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b78b28", + "id": "0x3874ed28", "kind": "StringLiteral", "range": { "begin": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 }, "end": { - "offset": 33973, + "offset": 33475, "col": 14, "tokLen": 7 } @@ -57857,33 +56993,33 @@ ] }, { - "id": "0x7f0da6b79e08", + "id": "0x38750008", "kind": "ReturnStmt", "range": { "begin": { - "offset": 33990, - "line": 1117, + "offset": 33492, + "line": 1101, "col": 9, "tokLen": 6 }, "end": { - "offset": 34003, + "offset": 33505, "col": 22, "tokLen": 6 } }, "inner": [ { - "id": "0x7f0da6b79dd8", + "id": "0x3874ffd8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 33997, + "offset": 33499, "col": 16, "tokLen": 4 }, "end": { - "offset": 34003, + "offset": 33505, "col": 22, "tokLen": 6 } @@ -57893,7 +57029,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc26a0", + "id": "0x37ff3250", "kind": "EnumConstantDecl", "name": "FIX_G0", "type": { @@ -57906,17 +57042,17 @@ ] }, { - "id": "0x7f0da6b7a4a8", + "id": "0x387506a8", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 34015, - "line": 1118, + "offset": 33517, + "line": 1102, "col": 5, "tokLen": 5 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -57928,16 +57064,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b7a490", + "id": "0x38750690", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 34015, + "offset": 33517, "col": 5, "tokLen": 5 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -57948,16 +57084,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b7a460", + "id": "0x38750660", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -57975,16 +57111,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b7a448", + "id": "0x38750648", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -57997,16 +57133,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b7a420", + "id": "0x38750620", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -58018,7 +57154,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -58027,16 +57163,16 @@ }, "inner": [ { - "id": "0x7f0da6b7a400", + "id": "0x38750600", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -58046,9 +57182,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b7a3f8", + "temp": "0x387505f8", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -58057,16 +57193,16 @@ }, "inner": [ { - "id": "0x7f0da6b7a3c8", + "id": "0x387505c8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34021, + "offset": 33523, "col": 11, "tokLen": 12 }, "end": { - "offset": 34058, + "offset": 33560, "col": 48, "tokLen": 1 } @@ -58083,16 +57219,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b7a3b0", + "id": "0x387505b0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58106,16 +57242,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b7a398", + "id": "0x38750598", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58128,16 +57264,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b7a378", + "id": "0x38750578", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58147,9 +57283,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b7a370", + "temp": "0x38750570", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -58158,16 +57294,16 @@ }, "inner": [ { - "id": "0x7f0da6b7a338", + "id": "0x38750538", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58180,16 +57316,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b7a320", + "id": "0x38750520", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34055, + "offset": 33557, "col": 45, "tokLen": 1 }, "end": { - "offset": 34055, + "offset": 33557, "col": 45, "tokLen": 1 } @@ -58201,16 +57337,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b7a300", + "id": "0x38750500", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34055, + "offset": 33557, "col": 45, "tokLen": 1 }, "end": { - "offset": 34055, + "offset": 33557, "col": 45, "tokLen": 1 } @@ -58220,7 +57356,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -58231,16 +57367,16 @@ ] }, { - "id": "0x7f0da6b7a2e8", + "id": "0x387504e8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 } @@ -58252,16 +57388,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b79e48", + "id": "0x38750048", "kind": "StringLiteral", "range": { "begin": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 }, "end": { - "offset": 34034, + "offset": 33536, "col": 24, "tokLen": 20 } @@ -58275,16 +57411,16 @@ ] }, { - "id": "0x7f0da6b79e78", + "id": "0x38750078", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 }, "end": { - "offset": 34057, + "offset": 33559, "col": 47, "tokLen": 1 } @@ -58292,11 +57428,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b72860", + "id": "0x38748a60", "kind": "ParmVarDecl", "name": "s", "type": { @@ -58331,29 +57467,29 @@ ] }, { - "id": "0x7f0da6b7a688", + "id": "0x38750888", "kind": "FunctionDecl", "loc": { - "offset": 34091, + "offset": 33593, "file": "ToString.cpp", - "line": 1121, + "line": 1105, "col": 28, "tokLen": 8 }, "range": { "begin": { - "offset": 34064, + "offset": 33566, "col": 1, "tokLen": 8 }, "end": { - "offset": 34280, - "line": 1127, + "offset": 33782, + "line": 1111, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37aee8", + "previousDecl": "0x385ab4d8", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs8polarityEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -58367,13 +57503,13 @@ }, "inner": [ { - "id": "0x2cdc2790", + "id": "0x37ff3340", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::polarity" }, "decl": { - "id": "0x2cdc26f0", + "id": "0x37ff32a0", "kind": "EnumDecl", "name": "polarity" } @@ -58381,22 +57517,22 @@ ] }, { - "id": "0x7f0da6b7a5b0", + "id": "0x387507b0", "kind": "ParmVarDecl", "loc": { - "offset": 34119, - "line": 1121, + "offset": 33621, + "line": 1105, "col": 56, "tokLen": 1 }, "range": { "begin": { - "offset": 34100, + "offset": 33602, "col": 37, "tokLen": 5 }, "end": { - "offset": 34119, + "offset": 33621, "col": 56, "tokLen": 1 } @@ -58408,52 +57544,52 @@ } }, { - "id": "0x7f0da6b3c560", + "id": "0x38753750", "kind": "CompoundStmt", "range": { "begin": { - "offset": 34122, + "offset": 33624, "col": 59, "tokLen": 1 }, "end": { - "offset": 34280, - "line": 1127, + "offset": 33782, + "line": 1111, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b3ab88", + "id": "0x38751d78", "kind": "IfStmt", "range": { "begin": { - "offset": 34128, - "line": 1122, + "offset": 33630, + "line": 1106, "col": 5, "tokLen": 2 }, "end": { - "offset": 34165, - "line": 1123, + "offset": 33667, + "line": 1107, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3aad8", + "id": "0x38751cc8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34132, - "line": 1122, + "offset": 33634, + "line": 1106, "col": 9, "tokLen": 1 }, "end": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 } @@ -58465,16 +57601,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3aac0", + "id": "0x38751cb0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34134, + "offset": 33636, "col": 11, "tokLen": 2 }, "end": { - "offset": 34134, + "offset": 33636, "col": 11, "tokLen": 2 } @@ -58486,16 +57622,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3aaa0", + "id": "0x38751c90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34134, + "offset": 33636, "col": 11, "tokLen": 2 }, "end": { - "offset": 34134, + "offset": 33636, "col": 11, "tokLen": 2 } @@ -58505,7 +57641,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -58516,16 +57652,16 @@ ] }, { - "id": "0x7f0da6b7a870", + "id": "0x38750a70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34132, + "offset": 33634, "col": 9, "tokLen": 1 }, "end": { - "offset": 34132, + "offset": 33634, "col": 9, "tokLen": 1 } @@ -58533,11 +57669,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b7a5b0", + "id": "0x387507b0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -58546,16 +57682,16 @@ } }, { - "id": "0x7f0da6b3aa88", + "id": "0x38751c78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 }, "end": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 } @@ -58567,16 +57703,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b7a890", + "id": "0x38750a90", "kind": "StringLiteral", "range": { "begin": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 }, "end": { - "offset": 34137, + "offset": 33639, "col": 14, "tokLen": 5 } @@ -58592,33 +57728,33 @@ ] }, { - "id": "0x7f0da6b3ab78", + "id": "0x38751d68", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34152, - "line": 1123, + "offset": 33654, + "line": 1107, "col": 9, "tokLen": 6 }, "end": { - "offset": 34165, + "offset": 33667, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3ab48", + "id": "0x38751d38", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34159, + "offset": 33661, "col": 16, "tokLen": 4 }, "end": { - "offset": 34165, + "offset": 33667, "col": 22, "tokLen": 8 } @@ -58628,7 +57764,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc27b0", + "id": "0x37ff3360", "kind": "EnumConstantDecl", "name": "POSITIVE", "type": { @@ -58641,35 +57777,35 @@ ] }, { - "id": "0x7f0da6b3beb8", + "id": "0x387530a8", "kind": "IfStmt", "range": { "begin": { - "offset": 34179, - "line": 1124, + "offset": 33681, + "line": 1108, "col": 5, "tokLen": 2 }, "end": { - "offset": 34216, - "line": 1125, + "offset": 33718, + "line": 1109, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3be08", + "id": "0x38752ff8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34183, - "line": 1124, + "offset": 33685, + "line": 1108, "col": 9, "tokLen": 1 }, "end": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 } @@ -58681,16 +57817,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3bdf0", + "id": "0x38752fe0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34185, + "offset": 33687, "col": 11, "tokLen": 2 }, "end": { - "offset": 34185, + "offset": 33687, "col": 11, "tokLen": 2 } @@ -58702,16 +57838,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3bdd0", + "id": "0x38752fc0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34185, + "offset": 33687, "col": 11, "tokLen": 2 }, "end": { - "offset": 34185, + "offset": 33687, "col": 11, "tokLen": 2 } @@ -58721,7 +57857,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -58732,16 +57868,16 @@ ] }, { - "id": "0x7f0da6b3aba8", + "id": "0x38751d98", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34183, + "offset": 33685, "col": 9, "tokLen": 1 }, "end": { - "offset": 34183, + "offset": 33685, "col": 9, "tokLen": 1 } @@ -58749,11 +57885,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b7a5b0", + "id": "0x387507b0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -58762,16 +57898,16 @@ } }, { - "id": "0x7f0da6b3bdb8", + "id": "0x38752fa8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 }, "end": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 } @@ -58783,16 +57919,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3abc8", + "id": "0x38751db8", "kind": "StringLiteral", "range": { "begin": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 }, "end": { - "offset": 34188, + "offset": 33690, "col": 14, "tokLen": 5 } @@ -58808,33 +57944,33 @@ ] }, { - "id": "0x7f0da6b3bea8", + "id": "0x38753098", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34203, - "line": 1125, + "offset": 33705, + "line": 1109, "col": 9, "tokLen": 6 }, "end": { - "offset": 34216, + "offset": 33718, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3be78", + "id": "0x38753068", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34210, + "offset": 33712, "col": 16, "tokLen": 4 }, "end": { - "offset": 34216, + "offset": 33718, "col": 22, "tokLen": 8 } @@ -58844,7 +57980,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2800", + "id": "0x37ff33b0", "kind": "EnumConstantDecl", "name": "NEGATIVE", "type": { @@ -58857,17 +57993,17 @@ ] }, { - "id": "0x7f0da6b3c548", + "id": "0x38753738", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 34230, - "line": 1126, + "offset": 33732, + "line": 1110, "col": 5, "tokLen": 5 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58879,16 +58015,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b3c530", + "id": "0x38753720", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 34230, + "offset": 33732, "col": 5, "tokLen": 5 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58899,16 +58035,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b3c500", + "id": "0x387536f0", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58926,16 +58062,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b3c4e8", + "id": "0x387536d8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58948,16 +58084,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b3c4c0", + "id": "0x387536b0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58969,7 +58105,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -58978,16 +58114,16 @@ }, "inner": [ { - "id": "0x7f0da6b3c4a0", + "id": "0x38753690", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -58997,9 +58133,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b3c498", + "temp": "0x38753688", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -59008,16 +58144,16 @@ }, "inner": [ { - "id": "0x7f0da6b3c468", + "id": "0x38753658", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34236, + "offset": 33738, "col": 11, "tokLen": 12 }, "end": { - "offset": 34277, + "offset": 33779, "col": 52, "tokLen": 1 } @@ -59034,16 +58170,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b3c450", + "id": "0x38753640", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59057,16 +58193,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b3c438", + "id": "0x38753628", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59079,16 +58215,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b3c418", + "id": "0x38753608", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59098,9 +58234,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b3c410", + "temp": "0x38753600", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -59109,16 +58245,16 @@ }, "inner": [ { - "id": "0x7f0da6b3c3d8", + "id": "0x387535c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59131,16 +58267,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3c3c0", + "id": "0x387535b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34274, + "offset": 33776, "col": 49, "tokLen": 1 }, "end": { - "offset": 34274, + "offset": 33776, "col": 49, "tokLen": 1 } @@ -59152,16 +58288,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3c3a0", + "id": "0x38753590", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34274, + "offset": 33776, "col": 49, "tokLen": 1 }, "end": { - "offset": 34274, + "offset": 33776, "col": 49, "tokLen": 1 } @@ -59171,7 +58307,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -59182,16 +58318,16 @@ ] }, { - "id": "0x7f0da6b3c388", + "id": "0x38753578", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 } @@ -59203,16 +58339,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3bee8", + "id": "0x387530d8", "kind": "StringLiteral", "range": { "begin": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 }, "end": { - "offset": 34249, + "offset": 33751, "col": 24, "tokLen": 24 } @@ -59226,16 +58362,16 @@ ] }, { - "id": "0x7f0da6b3bf18", + "id": "0x38753108", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 }, "end": { - "offset": 34276, + "offset": 33778, "col": 51, "tokLen": 1 } @@ -59243,11 +58379,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b7a5b0", + "id": "0x387507b0", "kind": "ParmVarDecl", "name": "s", "type": { @@ -59282,29 +58418,29 @@ ] }, { - "id": "0x7f0da6b3c708", + "id": "0x387538f8", "kind": "FunctionDecl", "loc": { - "offset": 34319, + "offset": 33821, "file": "ToString.cpp", - "line": 1129, + "line": 1113, "col": 37, "tokLen": 8 }, "range": { "begin": { - "offset": 34283, + "offset": 33785, "col": 1, "tokLen": 8 }, "end": { - "offset": 34518, - "line": 1135, + "offset": 34020, + "line": 1119, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37b438", + "previousDecl": "0x385aba28", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs17timingInfoDecoderEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -59318,13 +58454,13 @@ }, "inner": [ { - "id": "0x2cdc28f0", + "id": "0x37ff34a0", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::timingInfoDecoder" }, "decl": { - "id": "0x2cdc2850", + "id": "0x37ff3400", "kind": "EnumDecl", "name": "timingInfoDecoder" } @@ -59332,22 +58468,22 @@ ] }, { - "id": "0x7f0da6b3c630", + "id": "0x38753820", "kind": "ParmVarDecl", "loc": { - "offset": 34347, - "line": 1129, + "offset": 33849, + "line": 1113, "col": 65, "tokLen": 1 }, "range": { "begin": { - "offset": 34328, + "offset": 33830, "col": 46, "tokLen": 5 }, "end": { - "offset": 34347, + "offset": 33849, "col": 65, "tokLen": 1 } @@ -59359,52 +58495,52 @@ } }, { - "id": "0x7f0da6b3f608", + "id": "0x387567f8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 34350, + "offset": 33852, "col": 68, "tokLen": 1 }, "end": { - "offset": 34518, - "line": 1135, + "offset": 34020, + "line": 1119, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b3dbf8", + "id": "0x38754de8", "kind": "IfStmt", "range": { "begin": { - "offset": 34356, - "line": 1130, + "offset": 33858, + "line": 1114, "col": 5, "tokLen": 2 }, "end": { - "offset": 34398, - "line": 1131, + "offset": 33900, + "line": 1115, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3db48", + "id": "0x38754d38", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34360, - "line": 1130, + "offset": 33862, + "line": 1114, "col": 9, "tokLen": 1 }, "end": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 } @@ -59416,16 +58552,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3db30", + "id": "0x38754d20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34362, + "offset": 33864, "col": 11, "tokLen": 2 }, "end": { - "offset": 34362, + "offset": 33864, "col": 11, "tokLen": 2 } @@ -59437,16 +58573,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3db10", + "id": "0x38754d00", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34362, + "offset": 33864, "col": 11, "tokLen": 2 }, "end": { - "offset": 34362, + "offset": 33864, "col": 11, "tokLen": 2 } @@ -59456,7 +58592,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -59467,16 +58603,16 @@ ] }, { - "id": "0x7f0da6b3c8f0", + "id": "0x38753ae0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34360, + "offset": 33862, "col": 9, "tokLen": 1 }, "end": { - "offset": 34360, + "offset": 33862, "col": 9, "tokLen": 1 } @@ -59484,11 +58620,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3c630", + "id": "0x38753820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -59497,16 +58633,16 @@ } }, { - "id": "0x7f0da6b3daf8", + "id": "0x38754ce8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 }, "end": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 } @@ -59518,16 +58654,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3c910", + "id": "0x38753b00", "kind": "StringLiteral", "range": { "begin": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 }, "end": { - "offset": 34365, + "offset": 33867, "col": 14, "tokLen": 10 } @@ -59543,33 +58679,33 @@ ] }, { - "id": "0x7f0da6b3dbe8", + "id": "0x38754dd8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34385, - "line": 1131, + "offset": 33887, + "line": 1115, "col": 9, "tokLen": 6 }, "end": { - "offset": 34398, + "offset": 33900, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b3dbb8", + "id": "0x38754da8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34392, + "offset": 33894, "col": 16, "tokLen": 4 }, "end": { - "offset": 34398, + "offset": 33900, "col": 22, "tokLen": 8 } @@ -59579,7 +58715,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2910", + "id": "0x37ff34c0", "kind": "EnumConstantDecl", "name": "SWISSFEL", "type": { @@ -59592,35 +58728,35 @@ ] }, { - "id": "0x7f0da6b3ef28", + "id": "0x38756118", "kind": "IfStmt", "range": { "begin": { - "offset": 34412, - "line": 1132, + "offset": 33914, + "line": 1116, "col": 5, "tokLen": 2 }, "end": { - "offset": 34451, - "line": 1133, + "offset": 33953, + "line": 1117, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b3ee78", + "id": "0x38756068", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34416, - "line": 1132, + "offset": 33918, + "line": 1116, "col": 9, "tokLen": 1 }, "end": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 } @@ -59632,16 +58768,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3ee60", + "id": "0x38756050", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34418, + "offset": 33920, "col": 11, "tokLen": 2 }, "end": { - "offset": 34418, + "offset": 33920, "col": 11, "tokLen": 2 } @@ -59653,16 +58789,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3ee40", + "id": "0x38756030", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34418, + "offset": 33920, "col": 11, "tokLen": 2 }, "end": { - "offset": 34418, + "offset": 33920, "col": 11, "tokLen": 2 } @@ -59672,7 +58808,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -59683,16 +58819,16 @@ ] }, { - "id": "0x7f0da6b3dc18", + "id": "0x38754e08", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34416, + "offset": 33918, "col": 9, "tokLen": 1 }, "end": { - "offset": 34416, + "offset": 33918, "col": 9, "tokLen": 1 } @@ -59700,11 +58836,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3c630", + "id": "0x38753820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -59713,16 +58849,16 @@ } }, { - "id": "0x7f0da6b3ee28", + "id": "0x38756018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 }, "end": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 } @@ -59734,16 +58870,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3dc38", + "id": "0x38754e28", "kind": "StringLiteral", "range": { "begin": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 }, "end": { - "offset": 34421, + "offset": 33923, "col": 14, "tokLen": 7 } @@ -59759,33 +58895,33 @@ ] }, { - "id": "0x7f0da6b3ef18", + "id": "0x38756108", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34438, - "line": 1133, + "offset": 33940, + "line": 1117, "col": 9, "tokLen": 6 }, "end": { - "offset": 34451, + "offset": 33953, "col": 22, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b3eee8", + "id": "0x387560d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34445, + "offset": 33947, "col": 16, "tokLen": 4 }, "end": { - "offset": 34451, + "offset": 33953, "col": 22, "tokLen": 5 } @@ -59795,7 +58931,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2960", + "id": "0x37ff3510", "kind": "EnumConstantDecl", "name": "SHINE", "type": { @@ -59808,17 +58944,17 @@ ] }, { - "id": "0x7f0da6b3f5f0", + "id": "0x387567e0", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 34462, - "line": 1134, + "offset": 33964, + "line": 1118, "col": 5, "tokLen": 5 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59830,16 +58966,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b3f5d8", + "id": "0x387567c8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 34462, + "offset": 33964, "col": 5, "tokLen": 5 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59850,16 +58986,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b3f5a8", + "id": "0x38756798", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59877,16 +59013,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b3f590", + "id": "0x38756780", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59899,16 +59035,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b3f568", + "id": "0x38756758", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59920,7 +59056,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -59929,16 +59065,16 @@ }, "inner": [ { - "id": "0x7f0da6b3f548", + "id": "0x38756738", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59948,9 +59084,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b3f540", + "temp": "0x38756730", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -59959,16 +59095,16 @@ }, "inner": [ { - "id": "0x7f0da6b3f510", + "id": "0x38756700", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34468, + "offset": 33970, "col": 11, "tokLen": 12 }, "end": { - "offset": 34515, + "offset": 34017, "col": 58, "tokLen": 1 } @@ -59985,16 +59121,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b3f4f8", + "id": "0x387566e8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60008,16 +59144,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b3f4e0", + "id": "0x387566d0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60030,16 +59166,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b3f4c0", + "id": "0x387566b0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60049,9 +59185,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b3f4b8", + "temp": "0x387566a8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -60060,16 +59196,16 @@ }, "inner": [ { - "id": "0x7f0da6b3f480", + "id": "0x38756670", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60082,16 +59218,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b3f468", + "id": "0x38756658", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34512, + "offset": 34014, "col": 55, "tokLen": 1 }, "end": { - "offset": 34512, + "offset": 34014, "col": 55, "tokLen": 1 } @@ -60103,16 +59239,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b3f448", + "id": "0x38756638", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34512, + "offset": 34014, "col": 55, "tokLen": 1 }, "end": { - "offset": 34512, + "offset": 34014, "col": 55, "tokLen": 1 } @@ -60122,7 +59258,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -60133,16 +59269,16 @@ ] }, { - "id": "0x7f0da6b3f430", + "id": "0x38756620", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 } @@ -60154,16 +59290,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3ef58", + "id": "0x38756148", "kind": "StringLiteral", "range": { "begin": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 }, "end": { - "offset": 34481, + "offset": 33983, "col": 24, "tokLen": 30 } @@ -60177,16 +59313,16 @@ ] }, { - "id": "0x7f0da6b3ef90", + "id": "0x38756180", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 }, "end": { - "offset": 34514, + "offset": 34016, "col": 57, "tokLen": 1 } @@ -60194,11 +59330,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3c630", + "id": "0x38753820", "kind": "ParmVarDecl", "name": "s", "type": { @@ -60233,29 +59369,29 @@ ] }, { - "id": "0x7f0da6b3f7a8", + "id": "0x38756998", "kind": "FunctionDecl", "loc": { - "offset": 34554, + "offset": 34056, "file": "ToString.cpp", - "line": 1137, + "line": 1121, "col": 34, "tokLen": 8 }, "range": { "begin": { - "offset": 34521, + "offset": 34023, "col": 1, "tokLen": 8 }, "end": { - "offset": 34747, - "line": 1143, + "offset": 34249, + "line": 1127, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37b988", + "previousDecl": "0x385abf78", "name": "StringTo", "mangledName": "_ZN3sls8StringToIN15slsDetectorDefs14collectionModeEEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -60269,13 +59405,13 @@ }, "inner": [ { - "id": "0x2cdc2a50", + "id": "0x37ff3600", "kind": "EnumType", "type": { "qualType": "slsDetectorDefs::collectionMode" }, "decl": { - "id": "0x2cdc29b0", + "id": "0x37ff3560", "kind": "EnumDecl", "name": "collectionMode" } @@ -60283,22 +59419,22 @@ ] }, { - "id": "0x7f0da6b3f6d8", + "id": "0x387568c8", "kind": "ParmVarDecl", "loc": { - "offset": 34582, - "line": 1137, + "offset": 34084, + "line": 1121, "col": 62, "tokLen": 1 }, "range": { "begin": { - "offset": 34563, + "offset": 34065, "col": 43, "tokLen": 5 }, "end": { - "offset": 34582, + "offset": 34084, "col": 62, "tokLen": 1 } @@ -60310,52 +59446,52 @@ } }, { - "id": "0x7f0da6b426a8", + "id": "0x7feb10dd8a58", "kind": "CompoundStmt", "range": { "begin": { - "offset": 34585, + "offset": 34087, "col": 65, "tokLen": 1 }, "end": { - "offset": 34747, - "line": 1143, + "offset": 34249, + "line": 1127, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b40c98", + "id": "0x7feb10dd7048", "kind": "IfStmt", "range": { "begin": { - "offset": 34591, - "line": 1138, + "offset": 34093, + "line": 1122, "col": 5, "tokLen": 2 }, "end": { - "offset": 34629, - "line": 1139, + "offset": 34131, + "line": 1123, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b40be8", + "id": "0x7feb10dd6f98", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34595, - "line": 1138, + "offset": 34097, + "line": 1122, "col": 9, "tokLen": 1 }, "end": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 } @@ -60367,16 +59503,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b40bd0", + "id": "0x7feb10dd6f80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34597, + "offset": 34099, "col": 11, "tokLen": 2 }, "end": { - "offset": 34597, + "offset": 34099, "col": 11, "tokLen": 2 } @@ -60388,16 +59524,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b40bb0", + "id": "0x7feb10dd6f60", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34597, + "offset": 34099, "col": 11, "tokLen": 2 }, "end": { - "offset": 34597, + "offset": 34099, "col": 11, "tokLen": 2 } @@ -60407,7 +59543,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -60418,16 +59554,16 @@ ] }, { - "id": "0x7f0da6b3f990", + "id": "0x38756b80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34595, + "offset": 34097, "col": 9, "tokLen": 1 }, "end": { - "offset": 34595, + "offset": 34097, "col": 9, "tokLen": 1 } @@ -60435,11 +59571,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3f6d8", + "id": "0x387568c8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -60448,16 +59584,16 @@ } }, { - "id": "0x7f0da6b40b98", + "id": "0x7feb10dd6f48", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 }, "end": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 } @@ -60469,16 +59605,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b3f9b0", + "id": "0x38756ba0", "kind": "StringLiteral", "range": { "begin": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 }, "end": { - "offset": 34600, + "offset": 34102, "col": 14, "tokLen": 6 } @@ -60494,33 +59630,33 @@ ] }, { - "id": "0x7f0da6b40c88", + "id": "0x7feb10dd7038", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34616, - "line": 1139, + "offset": 34118, + "line": 1123, "col": 9, "tokLen": 6 }, "end": { - "offset": 34629, + "offset": 34131, "col": 22, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b40c58", + "id": "0x7feb10dd7008", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34623, + "offset": 34125, "col": 16, "tokLen": 4 }, "end": { - "offset": 34629, + "offset": 34131, "col": 22, "tokLen": 4 } @@ -60530,7 +59666,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2a70", + "id": "0x37ff3620", "kind": "EnumConstantDecl", "name": "HOLE", "type": { @@ -60543,35 +59679,35 @@ ] }, { - "id": "0x7f0da6b41fc8", + "id": "0x7feb10dd8378", "kind": "IfStmt", "range": { "begin": { - "offset": 34639, - "line": 1140, + "offset": 34141, + "line": 1124, "col": 5, "tokLen": 2 }, "end": { - "offset": 34681, - "line": 1141, + "offset": 34183, + "line": 1125, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b41f18", + "id": "0x7feb10dd82c8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34643, - "line": 1140, + "offset": 34145, + "line": 1124, "col": 9, "tokLen": 1 }, "end": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 } @@ -60583,16 +59719,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b41f00", + "id": "0x7feb10dd82b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34645, + "offset": 34147, "col": 11, "tokLen": 2 }, "end": { - "offset": 34645, + "offset": 34147, "col": 11, "tokLen": 2 } @@ -60604,16 +59740,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b41ee0", + "id": "0x7feb10dd8290", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34645, + "offset": 34147, "col": 11, "tokLen": 2 }, "end": { - "offset": 34645, + "offset": 34147, "col": 11, "tokLen": 2 } @@ -60623,7 +59759,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d2f20c8", + "id": "0x38522f78", "kind": "FunctionDecl", "name": "operator==", "type": { @@ -60634,16 +59770,16 @@ ] }, { - "id": "0x7f0da6b40cb8", + "id": "0x7feb10dd7068", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34643, + "offset": 34145, "col": 9, "tokLen": 1 }, "end": { - "offset": 34643, + "offset": 34145, "col": 9, "tokLen": 1 } @@ -60651,11 +59787,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3f6d8", + "id": "0x387568c8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -60664,16 +59800,16 @@ } }, { - "id": "0x7f0da6b41ec8", + "id": "0x7feb10dd8278", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 }, "end": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 } @@ -60685,16 +59821,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b40cd8", + "id": "0x7feb10dd7088", "kind": "StringLiteral", "range": { "begin": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 }, "end": { - "offset": 34648, + "offset": 34150, "col": 14, "tokLen": 10 } @@ -60710,33 +59846,33 @@ ] }, { - "id": "0x7f0da6b41fb8", + "id": "0x7feb10dd8368", "kind": "ReturnStmt", "range": { "begin": { - "offset": 34668, - "line": 1141, + "offset": 34170, + "line": 1125, "col": 9, "tokLen": 6 }, "end": { - "offset": 34681, + "offset": 34183, "col": 22, "tokLen": 8 } }, "inner": [ { - "id": "0x7f0da6b41f88", + "id": "0x7feb10dd8338", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34675, + "offset": 34177, "col": 16, "tokLen": 4 }, "end": { - "offset": 34681, + "offset": 34183, "col": 22, "tokLen": 8 } @@ -60746,7 +59882,7 @@ }, "valueCategory": "prvalue", "referencedDecl": { - "id": "0x2cdc2ac0", + "id": "0x37ff3670", "kind": "EnumConstantDecl", "name": "ELECTRON", "type": { @@ -60759,17 +59895,17 @@ ] }, { - "id": "0x7f0da6b42690", + "id": "0x7feb10dd8a40", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 34695, - "line": 1142, + "offset": 34197, + "line": 1126, "col": 5, "tokLen": 5 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60781,16 +59917,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b42678", + "id": "0x7feb10dd8a28", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 34695, + "offset": 34197, "col": 5, "tokLen": 5 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60801,16 +59937,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b42648", + "id": "0x7feb10dd89f8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60828,16 +59964,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b42630", + "id": "0x7feb10dd89e0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60850,16 +59986,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b42608", + "id": "0x7feb10dd89b8", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60871,7 +60007,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -60880,16 +60016,16 @@ }, "inner": [ { - "id": "0x7f0da6b425e8", + "id": "0x7feb10dd8998", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60899,9 +60035,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b425e0", + "temp": "0x7feb10dd8990", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -60910,16 +60046,16 @@ }, "inner": [ { - "id": "0x7f0da6b425b0", + "id": "0x7feb10dd8960", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 34701, + "offset": 34203, "col": 11, "tokLen": 12 }, "end": { - "offset": 34744, + "offset": 34246, "col": 54, "tokLen": 1 } @@ -60936,16 +60072,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b42598", + "id": "0x7feb10dd8948", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -60959,16 +60095,16 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b42580", + "id": "0x7feb10dd8930", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -60981,16 +60117,16 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b42560", + "id": "0x7feb10dd8910", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -61000,9 +60136,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b42558", + "temp": "0x7feb10dd8908", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -61011,16 +60147,16 @@ }, "inner": [ { - "id": "0x7f0da6b42520", + "id": "0x7feb10dd88d0", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -61033,16 +60169,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b42508", + "id": "0x7feb10dd88b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34741, + "offset": 34243, "col": 51, "tokLen": 1 }, "end": { - "offset": 34741, + "offset": 34243, "col": 51, "tokLen": 1 } @@ -61054,16 +60190,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b424e8", + "id": "0x7feb10dd8898", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34741, + "offset": 34243, "col": 51, "tokLen": 1 }, "end": { - "offset": 34741, + "offset": 34243, "col": 51, "tokLen": 1 } @@ -61073,7 +60209,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -61084,16 +60220,16 @@ ] }, { - "id": "0x7f0da6b424d0", + "id": "0x7feb10dd8880", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 } @@ -61105,16 +60241,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b41ff8", + "id": "0x7feb10dd83a8", "kind": "StringLiteral", "range": { "begin": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 }, "end": { - "offset": 34714, + "offset": 34216, "col": 24, "tokLen": 26 } @@ -61128,16 +60264,16 @@ ] }, { - "id": "0x7f0da6b42028", + "id": "0x7feb10dd83d8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 }, "end": { - "offset": 34743, + "offset": 34245, "col": 53, "tokLen": 1 } @@ -61145,11 +60281,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b3f6d8", + "id": "0x387568c8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -61184,29 +60320,29 @@ ] }, { - "id": "0x7f0da6b427f8", + "id": "0x7feb10dd8ba8", "kind": "FunctionDecl", "loc": { - "offset": 34770, + "offset": 34272, "file": "ToString.cpp", - "line": 1145, + "line": 1129, "col": 21, "tokLen": 8 }, "range": { "begin": { - "offset": 34750, + "offset": 34252, "col": 1, "tokLen": 8 }, "end": { - "offset": 35199, - "line": 1154, + "offset": 34701, + "line": 1138, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37be88", + "previousDecl": "0x385ac478", "name": "StringTo", "mangledName": "_ZN3sls8StringToIhEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -61220,7 +60356,7 @@ }, "inner": [ { - "id": "0x2bf08d50", + "id": "0x3713ad30", "kind": "BuiltinType", "type": { "qualType": "unsigned char" @@ -61229,22 +60365,22 @@ ] }, { - "id": "0x7f0da6b42738", + "id": "0x7feb10dd8ae8", "kind": "ParmVarDecl", "loc": { - "offset": 34798, - "line": 1145, + "offset": 34300, + "line": 1129, "col": 49, "tokLen": 1 }, "range": { "begin": { - "offset": 34779, + "offset": 34281, "col": 30, "tokLen": 5 }, "end": { - "offset": 34798, + "offset": 34300, "col": 49, "tokLen": 1 } @@ -61256,55 +60392,55 @@ } }, { - "id": "0x7f0da6b44c30", + "id": "0x7feb10ddafe0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 34801, + "offset": 34303, "col": 52, "tokLen": 1 }, "end": { - "offset": 35199, - "line": 1154, + "offset": 34701, + "line": 1138, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b42ce0", + "id": "0x7feb10dd9090", "kind": "DeclStmt", "range": { "begin": { - "offset": 34807, - "line": 1146, + "offset": 34309, + "line": 1130, "col": 5, "tokLen": 3 }, "end": { - "offset": 34861, + "offset": 34363, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b429c8", + "id": "0x7feb10dd8d78", "kind": "VarDecl", "loc": { - "offset": 34811, + "offset": 34313, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 34807, + "offset": 34309, "col": 5, "tokLen": 3 }, "end": { - "offset": 34859, + "offset": 34361, "col": 57, "tokLen": 2 } @@ -61317,16 +60453,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b42cb0", + "id": "0x7feb10dd9060", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34859, + "offset": 34361, "col": 57, "tokLen": 2 } @@ -61337,16 +60473,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b42c50", + "id": "0x7feb10dd9000", "kind": "BinaryOperator", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34847, + "offset": 34349, "col": 45, "tokLen": 4 } @@ -61358,16 +60494,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b42b10", + "id": "0x7feb10dd8ec0", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34829, + "offset": 34331, "col": 27, "tokLen": 1 } @@ -61375,21 +60511,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b42ae0", + "id": "0x7feb10dd8e90", "kind": "MemberExpr", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34820, + "offset": 34322, "col": 18, "tokLen": 4 } @@ -61400,19 +60536,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b42a30", + "id": "0x7feb10dd8de0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 }, "end": { - "offset": 34818, + "offset": 34320, "col": 16, "tokLen": 1 } @@ -61420,11 +60556,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42738", + "id": "0x7feb10dd8ae8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -61435,16 +60571,16 @@ ] }, { - "id": "0x7f0da6b42b40", + "id": "0x7feb10dd8ef0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34825, + "offset": 34327, "col": 23, "tokLen": 4 }, "end": { - "offset": 34825, + "offset": 34327, "col": 23, "tokLen": 4 } @@ -61456,16 +60592,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b42ac0", + "id": "0x7feb10dd8e70", "kind": "StringLiteral", "range": { "begin": { - "offset": 34825, + "offset": 34327, "col": 23, "tokLen": 4 }, "end": { - "offset": 34825, + "offset": 34327, "col": 23, "tokLen": 4 } @@ -61479,7 +60615,7 @@ ] }, { - "id": "0x7f0da6b42b70", + "id": "0x7feb10dd8f20", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -61488,23 +60624,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b42c38", + "id": "0x7feb10dd8fe8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34834, + "offset": 34336, "col": 32, "tokLen": 3 }, "end": { - "offset": 34847, + "offset": 34349, "col": 45, "tokLen": 4 } @@ -61512,22 +60648,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b42c08", + "id": "0x7feb10dd8fb8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34834, + "offset": 34336, "col": 32, "tokLen": 3 }, "end": { - "offset": 34847, + "offset": 34349, "col": 45, "tokLen": 4 } @@ -61535,17 +60671,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -61555,16 +60691,16 @@ ] }, { - "id": "0x7f0da6b42c70", + "id": "0x7feb10dd9020", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 34854, + "offset": 34356, "col": 52, "tokLen": 2 }, "end": { - "offset": 34854, + "offset": 34356, "col": 52, "tokLen": 2 } @@ -61576,16 +60712,16 @@ "value": "16" }, { - "id": "0x7f0da6b42c90", + "id": "0x7feb10dd9040", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 34859, + "offset": 34361, "col": 57, "tokLen": 2 }, "end": { - "offset": 34859, + "offset": 34361, "col": 57, "tokLen": 2 } @@ -61603,38 +60739,38 @@ ] }, { - "id": "0x7f0da6b42f48", + "id": "0x7feb10dd92f8", "kind": "DeclStmt", "range": { "begin": { - "offset": 34867, - "line": 1147, + "offset": 34369, + "line": 1131, "col": 5, "tokLen": 3 }, "end": { - "offset": 34906, + "offset": 34408, "col": 44, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b42d10", + "id": "0x7feb10dd90c0", "kind": "VarDecl", "loc": { - "offset": 34871, + "offset": 34373, "col": 9, "tokLen": 5 }, "range": { "begin": { - "offset": 34867, + "offset": 34369, "col": 5, "tokLen": 3 }, "end": { - "offset": 34905, + "offset": 34407, "col": 43, "tokLen": 1 } @@ -61647,16 +60783,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b42ee0", + "id": "0x7feb10dd9290", "kind": "CallExpr", "range": { "begin": { - "offset": 34879, + "offset": 34381, "col": 17, "tokLen": 3 }, "end": { - "offset": 34905, + "offset": 34407, "col": 43, "tokLen": 1 } @@ -61667,16 +60803,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b42ec8", + "id": "0x7feb10dd9278", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34879, + "offset": 34381, "col": 17, "tokLen": 3 }, "end": { - "offset": 34884, + "offset": 34386, "col": 22, "tokLen": 4 } @@ -61688,16 +60824,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b42e38", + "id": "0x7feb10dd91e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34879, + "offset": 34381, "col": 17, "tokLen": 3 }, "end": { - "offset": 34884, + "offset": 34386, "col": 22, "tokLen": 4 } @@ -61707,7 +60843,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c88ede0", + "id": "0x37ac0430", "kind": "FunctionDecl", "name": "stoi", "type": { @@ -61718,16 +60854,16 @@ ] }, { - "id": "0x7f0da6b42de8", + "id": "0x7feb10dd9198", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34889, + "offset": 34391, "col": 27, "tokLen": 1 }, "end": { - "offset": 34889, + "offset": 34391, "col": 27, "tokLen": 1 } @@ -61735,11 +60871,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42738", + "id": "0x7feb10dd8ae8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -61748,16 +60884,16 @@ } }, { - "id": "0x7f0da6b42f18", + "id": "0x7feb10dd92c8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34892, + "offset": 34394, "col": 30, "tokLen": 7 }, "end": { - "offset": 34892, + "offset": 34394, "col": 30, "tokLen": 7 } @@ -61769,16 +60905,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b42e08", + "id": "0x7feb10dd91b8", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 34892, + "offset": 34394, "col": 30, "tokLen": 7 }, "end": { - "offset": 34892, + "offset": 34394, "col": 30, "tokLen": 7 } @@ -61791,16 +60927,16 @@ ] }, { - "id": "0x7f0da6b42f30", + "id": "0x7feb10dd92e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34901, + "offset": 34403, "col": 39, "tokLen": 4 }, "end": { - "offset": 34901, + "offset": 34403, "col": 39, "tokLen": 4 } @@ -61812,16 +60948,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b42e18", + "id": "0x7feb10dd91c8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34901, + "offset": 34403, "col": 39, "tokLen": 4 }, "end": { - "offset": 34901, + "offset": 34403, "col": 39, "tokLen": 4 } @@ -61831,7 +60967,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b429c8", + "id": "0x7feb10dd8d78", "kind": "VarDecl", "name": "base", "type": { @@ -61848,36 +60984,36 @@ ] }, { - "id": "0x7f0da6b44b70", + "id": "0x7feb10ddaf20", "kind": "IfStmt", "range": { "begin": { - "offset": 34912, - "line": 1148, + "offset": 34414, + "line": 1132, "col": 5, "tokLen": 2 }, "end": { - "offset": 35157, - "line": 1152, + "offset": 34659, + "line": 1136, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b432f8", + "id": "0x7feb10dd96a8", "kind": "BinaryOperator", "range": { "begin": { - "offset": 34916, - "line": 1148, + "offset": 34418, + "line": 1132, "col": 9, "tokLen": 5 }, "end": { - "offset": 35013, - "line": 1149, + "offset": 34515, + "line": 1133, "col": 51, "tokLen": 1 } @@ -61889,17 +61025,17 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6b43140", + "id": "0x7feb10dd94f0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 34916, - "line": 1148, + "offset": 34418, + "line": 1132, "col": 9, "tokLen": 5 }, "end": { - "offset": 34958, + "offset": 34460, "col": 51, "tokLen": 1 } @@ -61911,16 +61047,16 @@ "opcode": "<", "inner": [ { - "id": "0x7f0da6b43110", + "id": "0x7feb10dd94c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34916, + "offset": 34418, "col": 9, "tokLen": 5 }, "end": { - "offset": 34916, + "offset": 34418, "col": 9, "tokLen": 5 } @@ -61932,16 +61068,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b42f60", + "id": "0x7feb10dd9310", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34916, + "offset": 34418, "col": 9, "tokLen": 5 }, "end": { - "offset": 34916, + "offset": 34418, "col": 9, "tokLen": 5 } @@ -61951,7 +61087,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42d10", + "id": "0x7feb10dd90c0", "kind": "VarDecl", "name": "value", "type": { @@ -61962,16 +61098,16 @@ ] }, { - "id": "0x7f0da6b43128", + "id": "0x7feb10dd94d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34924, + "offset": 34426, "col": 17, "tokLen": 3 }, "end": { - "offset": 34958, + "offset": 34460, "col": 51, "tokLen": 1 } @@ -61983,16 +61119,16 @@ "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b430f0", + "id": "0x7feb10dd94a0", "kind": "CallExpr", "range": { "begin": { - "offset": 34924, + "offset": 34426, "col": 17, "tokLen": 3 }, "end": { - "offset": 34958, + "offset": 34460, "col": 51, "tokLen": 1 } @@ -62003,16 +61139,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b430d8", + "id": "0x7feb10dd9488", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34924, + "offset": 34426, "col": 17, "tokLen": 3 }, "end": { - "offset": 34954, + "offset": 34456, "col": 47, "tokLen": 3 } @@ -62024,16 +61160,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b430a8", + "id": "0x7feb10dd9458", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34924, + "offset": 34426, "col": 17, "tokLen": 3 }, "end": { - "offset": 34954, + "offset": 34456, "col": 47, "tokLen": 3 } @@ -62043,7 +61179,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c0d55a8", + "id": "0x37307348", "kind": "CXXMethodDecl", "name": "min", "type": { @@ -62060,17 +61196,17 @@ ] }, { - "id": "0x7f0da6b432d8", + "id": "0x7feb10dd9688", "kind": "BinaryOperator", "range": { "begin": { - "offset": 34971, - "line": 1149, + "offset": 34473, + "line": 1133, "col": 9, "tokLen": 5 }, "end": { - "offset": 35013, + "offset": 34515, "col": 51, "tokLen": 1 } @@ -62082,16 +61218,16 @@ "opcode": ">", "inner": [ { - "id": "0x7f0da6b432a8", + "id": "0x7feb10dd9658", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34971, + "offset": 34473, "col": 9, "tokLen": 5 }, "end": { - "offset": 34971, + "offset": 34473, "col": 9, "tokLen": 5 } @@ -62103,16 +61239,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b43160", + "id": "0x7feb10dd9510", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34971, + "offset": 34473, "col": 9, "tokLen": 5 }, "end": { - "offset": 34971, + "offset": 34473, "col": 9, "tokLen": 5 } @@ -62122,7 +61258,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42d10", + "id": "0x7feb10dd90c0", "kind": "VarDecl", "name": "value", "type": { @@ -62133,16 +61269,16 @@ ] }, { - "id": "0x7f0da6b432c0", + "id": "0x7feb10dd9670", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34979, + "offset": 34481, "col": 17, "tokLen": 3 }, "end": { - "offset": 35013, + "offset": 34515, "col": 51, "tokLen": 1 } @@ -62154,16 +61290,16 @@ "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b43288", + "id": "0x7feb10dd9638", "kind": "CallExpr", "range": { "begin": { - "offset": 34979, + "offset": 34481, "col": 17, "tokLen": 3 }, "end": { - "offset": 35013, + "offset": 34515, "col": 51, "tokLen": 1 } @@ -62174,16 +61310,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b43270", + "id": "0x7feb10dd9620", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 34979, + "offset": 34481, "col": 17, "tokLen": 3 }, "end": { - "offset": 35009, + "offset": 34511, "col": 47, "tokLen": 3 } @@ -62195,16 +61331,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b43240", + "id": "0x7feb10dd95f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 34979, + "offset": 34481, "col": 17, "tokLen": 3 }, "end": { - "offset": 35009, + "offset": 34511, "col": 47, "tokLen": 3 } @@ -62214,7 +61350,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c0d5680", + "id": "0x37307420", "kind": "CXXMethodDecl", "name": "max", "type": { @@ -62233,35 +61369,35 @@ ] }, { - "id": "0x7f0da6b44b58", + "id": "0x7feb10ddaf08", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35016, + "offset": 34518, "col": 54, "tokLen": 1 }, "end": { - "offset": 35157, - "line": 1152, + "offset": 34659, + "line": 1136, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b44b40", + "id": "0x7feb10ddaef0", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 35026, - "line": 1150, + "offset": 34528, + "line": 1134, "col": 9, "tokLen": 5 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62273,18 +61409,18 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b44b28", + "id": "0x7feb10ddaed8", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 35026, - "line": 1150, + "offset": 34528, + "line": 1134, "col": 9, "tokLen": 5 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62295,18 +61431,18 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b44af8", + "id": "0x7feb10ddaea8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62324,18 +61460,18 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b44ae0", + "id": "0x7feb10ddae90", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62348,18 +61484,18 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b44ab8", + "id": "0x7feb10ddae68", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62371,7 +61507,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -62380,18 +61516,18 @@ }, "inner": [ { - "id": "0x7f0da6b44a98", + "id": "0x7feb10ddae48", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62401,9 +61537,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b44a90", + "temp": "0x7feb10ddae40", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -62412,18 +61548,18 @@ }, "inner": [ { - "id": "0x7f0da6b44a60", + "id": "0x7feb10ddae10", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 35032, - "line": 1150, + "offset": 34534, + "line": 1134, "col": 15, "tokLen": 12 }, "end": { - "offset": 35150, - "line": 1151, + "offset": 34652, + "line": 1135, "col": 64, "tokLen": 1 } @@ -62440,18 +61576,18 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b44a48", + "id": "0x7feb10ddadf8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35045, - "line": 1150, + "offset": 34547, + "line": 1134, "col": 28, "tokLen": 35 }, "end": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 } @@ -62465,18 +61601,18 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b44a30", + "id": "0x7feb10ddade0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35045, - "line": 1150, + "offset": 34547, + "line": 1134, "col": 28, "tokLen": 35 }, "end": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 } @@ -62489,18 +61625,18 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b44a10", + "id": "0x7feb10ddadc0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35045, - "line": 1150, + "offset": 34547, + "line": 1134, "col": 28, "tokLen": 35 }, "end": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 } @@ -62510,9 +61646,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b44a08", + "temp": "0x7feb10ddadb8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -62521,18 +61657,18 @@ }, "inner": [ { - "id": "0x7f0da6b449d0", + "id": "0x7feb10ddad80", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 35045, - "line": 1150, + "offset": 34547, + "line": 1134, "col": 28, "tokLen": 35 }, "end": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 } @@ -62545,17 +61681,17 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b449b8", + "id": "0x7feb10ddad68", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35085, - "line": 1150, + "offset": 34587, + "line": 1134, "col": 68, "tokLen": 1 }, "end": { - "offset": 35085, + "offset": 34587, "col": 68, "tokLen": 1 } @@ -62567,16 +61703,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b44940", + "id": "0x7feb10ddacf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35085, + "offset": 34587, "col": 68, "tokLen": 1 }, "end": { - "offset": 35085, + "offset": 34587, "col": 68, "tokLen": 1 } @@ -62586,7 +61722,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44798", + "id": "0x7feb10ddab48", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -62597,16 +61733,16 @@ ] }, { - "id": "0x7f0da6b44910", + "id": "0x7feb10ddacc0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 } @@ -62619,16 +61755,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b43920", + "id": "0x7feb10dd9cd0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 } @@ -62638,9 +61774,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b43918", + "temp": "0x7feb10dd9cc8", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -62649,16 +61785,16 @@ }, "inner": [ { - "id": "0x7f0da6b438e0", + "id": "0x7feb10dd9c90", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 } @@ -62671,16 +61807,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b438c8", + "id": "0x7feb10dd9c78", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35081, + "offset": 34583, "col": 64, "tokLen": 1 }, "end": { - "offset": 35081, + "offset": 34583, "col": 64, "tokLen": 1 } @@ -62692,16 +61828,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b438a8", + "id": "0x7feb10dd9c58", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35081, + "offset": 34583, "col": 64, "tokLen": 1 }, "end": { - "offset": 35081, + "offset": 34583, "col": 64, "tokLen": 1 } @@ -62711,7 +61847,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -62722,16 +61858,16 @@ ] }, { - "id": "0x7f0da6b43890", + "id": "0x7feb10dd9c40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 } @@ -62743,16 +61879,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b433a8", + "id": "0x7feb10dd9758", "kind": "StringLiteral", "range": { "begin": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 }, "end": { - "offset": 35045, + "offset": 34547, "col": 28, "tokLen": 35 } @@ -62766,16 +61902,16 @@ ] }, { - "id": "0x7f0da6b433e8", + "id": "0x7feb10dd9798", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 }, "end": { - "offset": 35083, + "offset": 34585, "col": 66, "tokLen": 1 } @@ -62783,11 +61919,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42738", + "id": "0x7feb10dd8ae8", "kind": "ParmVarDecl", "name": "s", "type": { @@ -62802,17 +61938,17 @@ ] }, { - "id": "0x7f0da6b44928", + "id": "0x7feb10ddacd8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35114, - "line": 1151, + "offset": 34616, + "line": 1135, "col": 28, "tokLen": 36 }, "end": { - "offset": 35114, + "offset": 34616, "col": 28, "tokLen": 36 } @@ -62824,16 +61960,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b43940", + "id": "0x7feb10dd9cf0", "kind": "StringLiteral", "range": { "begin": { - "offset": 35114, + "offset": 34616, "col": 28, "tokLen": 36 }, "end": { - "offset": 35114, + "offset": 34616, "col": 28, "tokLen": 36 } @@ -62873,33 +62009,33 @@ ] }, { - "id": "0x7f0da6b44c20", + "id": "0x7feb10ddafd0", "kind": "ReturnStmt", "range": { "begin": { - "offset": 35163, - "line": 1153, + "offset": 34665, + "line": 1137, "col": 5, "tokLen": 6 }, "end": { - "offset": 35196, + "offset": 34698, "col": 38, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b44bf0", + "id": "0x7feb10ddafa0", "kind": "CXXStaticCastExpr", "range": { "begin": { - "offset": 35170, + "offset": 34672, "col": 12, "tokLen": 11 }, "end": { - "offset": 35196, + "offset": 34698, "col": 38, "tokLen": 1 } @@ -62907,22 +62043,22 @@ "type": { "desugaredQualType": "unsigned char", "qualType": "uint8_t", - "typeAliasDeclId": "0x2c0e6c18" + "typeAliasDeclId": "0x373189b8" }, "valueCategory": "prvalue", "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b44bd8", + "id": "0x7feb10ddaf88", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 }, "end": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 } @@ -62930,23 +62066,23 @@ "type": { "desugaredQualType": "unsigned char", "qualType": "uint8_t", - "typeAliasDeclId": "0x2c0e6c18" + "typeAliasDeclId": "0x373189b8" }, "valueCategory": "prvalue", "castKind": "IntegralCast", "isPartOfExplicitCast": true, "inner": [ { - "id": "0x7f0da6b44bc0", + "id": "0x7feb10ddaf70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 }, "end": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 } @@ -62959,16 +62095,16 @@ "isPartOfExplicitCast": true, "inner": [ { - "id": "0x7f0da6b44b90", + "id": "0x7feb10ddaf40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 }, "end": { - "offset": 35191, + "offset": 34693, "col": 33, "tokLen": 5 } @@ -62978,7 +62114,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b42d10", + "id": "0x7feb10dd90c0", "kind": "VarDecl", "name": "value", "type": { @@ -62999,29 +62135,29 @@ ] }, { - "id": "0x7f0da6b44d88", + "id": "0x7feb10ddb138", "kind": "FunctionDecl", "loc": { - "offset": 35223, + "offset": 34725, "file": "ToString.cpp", - "line": 1156, + "line": 1140, "col": 22, "tokLen": 8 }, "range": { "begin": { - "offset": 35202, + "offset": 34704, "col": 1, "tokLen": 8 }, "end": { - "offset": 35658, - "line": 1165, + "offset": 35160, + "line": 1149, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37c358", + "previousDecl": "0x385ac948", "name": "StringTo", "mangledName": "_ZN3sls8StringToItEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -63035,7 +62171,7 @@ }, "inner": [ { - "id": "0x2bf08d70", + "id": "0x3713ad50", "kind": "BuiltinType", "type": { "qualType": "unsigned short" @@ -63044,22 +62180,22 @@ ] }, { - "id": "0x7f0da6b44cc8", + "id": "0x7feb10ddb078", "kind": "ParmVarDecl", "loc": { - "offset": 35251, - "line": 1156, + "offset": 34753, + "line": 1140, "col": 50, "tokLen": 1 }, "range": { "begin": { - "offset": 35232, + "offset": 34734, "col": 31, "tokLen": 5 }, "end": { - "offset": 35251, + "offset": 34753, "col": 50, "tokLen": 1 } @@ -63071,55 +62207,55 @@ } }, { - "id": "0x7f0da6b46558", + "id": "0x7feb10ddc888", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35254, + "offset": 34756, "col": 53, "tokLen": 1 }, "end": { - "offset": 35658, - "line": 1165, + "offset": 35160, + "line": 1149, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b45258", + "id": "0x7feb10ddb608", "kind": "DeclStmt", "range": { "begin": { - "offset": 35260, - "line": 1157, + "offset": 34762, + "line": 1141, "col": 5, "tokLen": 3 }, "end": { - "offset": 35314, + "offset": 34816, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b44f58", + "id": "0x7feb10ddb308", "kind": "VarDecl", "loc": { - "offset": 35264, + "offset": 34766, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 35260, + "offset": 34762, "col": 5, "tokLen": 3 }, "end": { - "offset": 35312, + "offset": 34814, "col": 57, "tokLen": 2 } @@ -63132,16 +62268,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b45228", + "id": "0x7feb10ddb5d8", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35312, + "offset": 34814, "col": 57, "tokLen": 2 } @@ -63152,16 +62288,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b451c8", + "id": "0x7feb10ddb578", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35300, + "offset": 34802, "col": 45, "tokLen": 4 } @@ -63173,16 +62309,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b450a0", + "id": "0x7feb10ddb450", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35282, + "offset": 34784, "col": 27, "tokLen": 1 } @@ -63190,21 +62326,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b45070", + "id": "0x7feb10ddb420", "kind": "MemberExpr", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35273, + "offset": 34775, "col": 18, "tokLen": 4 } @@ -63215,19 +62351,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b44fc0", + "id": "0x7feb10ddb370", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 }, "end": { - "offset": 35271, + "offset": 34773, "col": 16, "tokLen": 1 } @@ -63235,11 +62371,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44cc8", + "id": "0x7feb10ddb078", "kind": "ParmVarDecl", "name": "s", "type": { @@ -63250,16 +62386,16 @@ ] }, { - "id": "0x7f0da6b450d0", + "id": "0x7feb10ddb480", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35278, + "offset": 34780, "col": 23, "tokLen": 4 }, "end": { - "offset": 35278, + "offset": 34780, "col": 23, "tokLen": 4 } @@ -63271,16 +62407,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b45050", + "id": "0x7feb10ddb400", "kind": "StringLiteral", "range": { "begin": { - "offset": 35278, + "offset": 34780, "col": 23, "tokLen": 4 }, "end": { - "offset": 35278, + "offset": 34780, "col": 23, "tokLen": 4 } @@ -63294,7 +62430,7 @@ ] }, { - "id": "0x7f0da6b450e8", + "id": "0x7feb10ddb498", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -63303,23 +62439,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b451b0", + "id": "0x7feb10ddb560", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35287, + "offset": 34789, "col": 32, "tokLen": 3 }, "end": { - "offset": 35300, + "offset": 34802, "col": 45, "tokLen": 4 } @@ -63327,22 +62463,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b45180", + "id": "0x7feb10ddb530", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35287, + "offset": 34789, "col": 32, "tokLen": 3 }, "end": { - "offset": 35300, + "offset": 34802, "col": 45, "tokLen": 4 } @@ -63350,17 +62486,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -63370,16 +62506,16 @@ ] }, { - "id": "0x7f0da6b451e8", + "id": "0x7feb10ddb598", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35307, + "offset": 34809, "col": 52, "tokLen": 2 }, "end": { - "offset": 35307, + "offset": 34809, "col": 52, "tokLen": 2 } @@ -63391,16 +62527,16 @@ "value": "16" }, { - "id": "0x7f0da6b45208", + "id": "0x7feb10ddb5b8", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35312, + "offset": 34814, "col": 57, "tokLen": 2 }, "end": { - "offset": 35312, + "offset": 34814, "col": 57, "tokLen": 2 } @@ -63418,38 +62554,38 @@ ] }, { - "id": "0x7f0da6b45460", + "id": "0x7feb10ddb810", "kind": "DeclStmt", "range": { "begin": { - "offset": 35320, - "line": 1158, + "offset": 34822, + "line": 1142, "col": 5, "tokLen": 3 }, "end": { - "offset": 35359, + "offset": 34861, "col": 44, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b45288", + "id": "0x7feb10ddb638", "kind": "VarDecl", "loc": { - "offset": 35324, + "offset": 34826, "col": 9, "tokLen": 5 }, "range": { "begin": { - "offset": 35320, + "offset": 34822, "col": 5, "tokLen": 3 }, "end": { - "offset": 35358, + "offset": 34860, "col": 43, "tokLen": 1 } @@ -63462,16 +62598,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b453f8", + "id": "0x7feb10ddb7a8", "kind": "CallExpr", "range": { "begin": { - "offset": 35332, + "offset": 34834, "col": 17, "tokLen": 3 }, "end": { - "offset": 35358, + "offset": 34860, "col": 43, "tokLen": 1 } @@ -63482,16 +62618,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b453e0", + "id": "0x7feb10ddb790", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35332, + "offset": 34834, "col": 17, "tokLen": 3 }, "end": { - "offset": 35337, + "offset": 34839, "col": 22, "tokLen": 4 } @@ -63503,16 +62639,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b453b0", + "id": "0x7feb10ddb760", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35332, + "offset": 34834, "col": 17, "tokLen": 3 }, "end": { - "offset": 35337, + "offset": 34839, "col": 22, "tokLen": 4 } @@ -63522,7 +62658,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c88ede0", + "id": "0x37ac0430", "kind": "FunctionDecl", "name": "stoi", "type": { @@ -63533,16 +62669,16 @@ ] }, { - "id": "0x7f0da6b45360", + "id": "0x7feb10ddb710", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35342, + "offset": 34844, "col": 27, "tokLen": 1 }, "end": { - "offset": 35342, + "offset": 34844, "col": 27, "tokLen": 1 } @@ -63550,11 +62686,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44cc8", + "id": "0x7feb10ddb078", "kind": "ParmVarDecl", "name": "s", "type": { @@ -63563,16 +62699,16 @@ } }, { - "id": "0x7f0da6b45430", + "id": "0x7feb10ddb7e0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35345, + "offset": 34847, "col": 30, "tokLen": 7 }, "end": { - "offset": 35345, + "offset": 34847, "col": 30, "tokLen": 7 } @@ -63584,16 +62720,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b45380", + "id": "0x7feb10ddb730", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 35345, + "offset": 34847, "col": 30, "tokLen": 7 }, "end": { - "offset": 35345, + "offset": 34847, "col": 30, "tokLen": 7 } @@ -63606,16 +62742,16 @@ ] }, { - "id": "0x7f0da6b45448", + "id": "0x7feb10ddb7f8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35354, + "offset": 34856, "col": 39, "tokLen": 4 }, "end": { - "offset": 35354, + "offset": 34856, "col": 39, "tokLen": 4 } @@ -63627,16 +62763,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b45390", + "id": "0x7feb10ddb740", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35354, + "offset": 34856, "col": 39, "tokLen": 4 }, "end": { - "offset": 35354, + "offset": 34856, "col": 39, "tokLen": 4 } @@ -63646,7 +62782,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44f58", + "id": "0x7feb10ddb308", "kind": "VarDecl", "name": "base", "type": { @@ -63663,36 +62799,36 @@ ] }, { - "id": "0x7f0da6b46498", + "id": "0x7feb10ddc7c8", "kind": "IfStmt", "range": { "begin": { - "offset": 35365, - "line": 1159, + "offset": 34867, + "line": 1143, "col": 5, "tokLen": 2 }, "end": { - "offset": 35615, - "line": 1163, + "offset": 35117, + "line": 1147, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b457f8", + "id": "0x7feb10ddbba8", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35369, - "line": 1159, + "offset": 34871, + "line": 1143, "col": 9, "tokLen": 5 }, "end": { - "offset": 35468, - "line": 1160, + "offset": 34970, + "line": 1144, "col": 52, "tokLen": 1 } @@ -63704,17 +62840,17 @@ "opcode": "||", "inner": [ { - "id": "0x7f0da6b45640", + "id": "0x7feb10ddb9f0", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35369, - "line": 1159, + "offset": 34871, + "line": 1143, "col": 9, "tokLen": 5 }, "end": { - "offset": 35412, + "offset": 34914, "col": 52, "tokLen": 1 } @@ -63726,16 +62862,16 @@ "opcode": "<", "inner": [ { - "id": "0x7f0da6b45610", + "id": "0x7feb10ddb9c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35369, + "offset": 34871, "col": 9, "tokLen": 5 }, "end": { - "offset": 35369, + "offset": 34871, "col": 9, "tokLen": 5 } @@ -63747,16 +62883,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b45478", + "id": "0x7feb10ddb828", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35369, + "offset": 34871, "col": 9, "tokLen": 5 }, "end": { - "offset": 35369, + "offset": 34871, "col": 9, "tokLen": 5 } @@ -63766,7 +62902,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b45288", + "id": "0x7feb10ddb638", "kind": "VarDecl", "name": "value", "type": { @@ -63777,16 +62913,16 @@ ] }, { - "id": "0x7f0da6b45628", + "id": "0x7feb10ddb9d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35377, + "offset": 34879, "col": 17, "tokLen": 3 }, "end": { - "offset": 35412, + "offset": 34914, "col": 52, "tokLen": 1 } @@ -63798,16 +62934,16 @@ "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b455f0", + "id": "0x7feb10ddb9a0", "kind": "CallExpr", "range": { "begin": { - "offset": 35377, + "offset": 34879, "col": 17, "tokLen": 3 }, "end": { - "offset": 35412, + "offset": 34914, "col": 52, "tokLen": 1 } @@ -63818,16 +62954,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b455d8", + "id": "0x7feb10ddb988", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35377, + "offset": 34879, "col": 17, "tokLen": 3 }, "end": { - "offset": 35408, + "offset": 34910, "col": 48, "tokLen": 3 } @@ -63839,16 +62975,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b455a8", + "id": "0x7feb10ddb958", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35377, + "offset": 34879, "col": 17, "tokLen": 3 }, "end": { - "offset": 35408, + "offset": 34910, "col": 48, "tokLen": 3 } @@ -63858,7 +62994,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c179c48", + "id": "0x373ab6c8", "kind": "CXXMethodDecl", "name": "min", "type": { @@ -63875,17 +63011,17 @@ ] }, { - "id": "0x7f0da6b457d8", + "id": "0x7feb10ddbb88", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35425, - "line": 1160, + "offset": 34927, + "line": 1144, "col": 9, "tokLen": 5 }, "end": { - "offset": 35468, + "offset": 34970, "col": 52, "tokLen": 1 } @@ -63897,16 +63033,16 @@ "opcode": ">", "inner": [ { - "id": "0x7f0da6b457a8", + "id": "0x7feb10ddbb58", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35425, + "offset": 34927, "col": 9, "tokLen": 5 }, "end": { - "offset": 35425, + "offset": 34927, "col": 9, "tokLen": 5 } @@ -63918,16 +63054,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b45660", + "id": "0x7feb10ddba10", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35425, + "offset": 34927, "col": 9, "tokLen": 5 }, "end": { - "offset": 35425, + "offset": 34927, "col": 9, "tokLen": 5 } @@ -63937,7 +63073,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b45288", + "id": "0x7feb10ddb638", "kind": "VarDecl", "name": "value", "type": { @@ -63948,16 +63084,16 @@ ] }, { - "id": "0x7f0da6b457c0", + "id": "0x7feb10ddbb70", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35433, + "offset": 34935, "col": 17, "tokLen": 3 }, "end": { - "offset": 35468, + "offset": 34970, "col": 52, "tokLen": 1 } @@ -63969,16 +63105,16 @@ "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b45788", + "id": "0x7feb10ddbb38", "kind": "CallExpr", "range": { "begin": { - "offset": 35433, + "offset": 34935, "col": 17, "tokLen": 3 }, "end": { - "offset": 35468, + "offset": 34970, "col": 52, "tokLen": 1 } @@ -63989,16 +63125,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b45770", + "id": "0x7feb10ddbb20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35433, + "offset": 34935, "col": 17, "tokLen": 3 }, "end": { - "offset": 35464, + "offset": 34966, "col": 48, "tokLen": 3 } @@ -64010,16 +63146,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b45740", + "id": "0x7feb10ddbaf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35433, + "offset": 34935, "col": 17, "tokLen": 3 }, "end": { - "offset": 35464, + "offset": 34966, "col": 48, "tokLen": 3 } @@ -64029,7 +63165,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c179d20", + "id": "0x373ab7a0", "kind": "CXXMethodDecl", "name": "max", "type": { @@ -64048,35 +63184,35 @@ ] }, { - "id": "0x7f0da6b46480", + "id": "0x7feb10ddc7b0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35471, + "offset": 34973, "col": 55, "tokLen": 1 }, "end": { - "offset": 35615, - "line": 1163, + "offset": 35117, + "line": 1147, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46468", + "id": "0x7feb10ddc798", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 35481, - "line": 1161, + "offset": 34983, + "line": 1145, "col": 9, "tokLen": 5 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64088,18 +63224,18 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b46450", + "id": "0x7feb10ddc780", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 35481, - "line": 1161, + "offset": 34983, + "line": 1145, "col": 9, "tokLen": 5 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64110,18 +63246,18 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b46420", + "id": "0x7feb10ddc750", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64139,18 +63275,18 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b46408", + "id": "0x7feb10ddc738", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64163,18 +63299,18 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b463e0", + "id": "0x7feb10ddc710", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64186,7 +63322,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c9688e8", + "id": "0x37b9a538", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -64195,18 +63331,18 @@ }, "inner": [ { - "id": "0x7f0da6b463c0", + "id": "0x7feb10ddc6f0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64216,9 +63352,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b463b8", + "temp": "0x7feb10ddc6e8", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -64227,18 +63363,18 @@ }, "inner": [ { - "id": "0x7f0da6b46388", + "id": "0x7feb10ddc6b8", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 35487, - "line": 1161, + "offset": 34989, + "line": 1145, "col": 15, "tokLen": 12 }, "end": { - "offset": 35608, - "line": 1162, + "offset": 35110, + "line": 1146, "col": 66, "tokLen": 1 } @@ -64255,18 +63391,18 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b46370", + "id": "0x7feb10ddc6a0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35500, - "line": 1161, + "offset": 35002, + "line": 1145, "col": 28, "tokLen": 36 }, "end": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 } @@ -64280,18 +63416,18 @@ "boundToLValueRef": true, "inner": [ { - "id": "0x7f0da6b46358", + "id": "0x7feb10ddc688", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35500, - "line": 1161, + "offset": 35002, + "line": 1145, "col": 28, "tokLen": 36 }, "end": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 } @@ -64304,18 +63440,18 @@ "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b46338", + "id": "0x7feb10ddc668", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35500, - "line": 1161, + "offset": 35002, + "line": 1145, "col": 28, "tokLen": 36 }, "end": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 } @@ -64325,9 +63461,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b46330", + "temp": "0x7feb10ddc660", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -64336,18 +63472,18 @@ }, "inner": [ { - "id": "0x7f0da6b462f8", + "id": "0x7feb10ddc628", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 35500, - "line": 1161, + "offset": 35002, + "line": 1145, "col": 28, "tokLen": 36 }, "end": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 } @@ -64360,17 +63496,17 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b462e0", + "id": "0x7feb10ddc610", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35541, - "line": 1161, + "offset": 35043, + "line": 1145, "col": 69, "tokLen": 1 }, "end": { - "offset": 35541, + "offset": 35043, "col": 69, "tokLen": 1 } @@ -64382,16 +63518,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b462c0", + "id": "0x7feb10ddc5f0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35541, + "offset": 35043, "col": 69, "tokLen": 1 }, "end": { - "offset": 35541, + "offset": 35043, "col": 69, "tokLen": 1 } @@ -64401,7 +63537,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44798", + "id": "0x7feb10ddab48", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -64412,16 +63548,16 @@ ] }, { - "id": "0x7f0da6b46290", + "id": "0x7feb10ddc5c0", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 } @@ -64434,16 +63570,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b45d68", + "id": "0x7feb10ddc118", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 } @@ -64453,9 +63589,9 @@ "qualType": "basic_string, allocator>" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b45d60", + "temp": "0x7feb10ddc110", "dtor": { - "id": "0x2c8ba378", + "id": "0x37aebda8", "kind": "CXXDestructorDecl", "name": "~basic_string", "type": { @@ -64464,16 +63600,16 @@ }, "inner": [ { - "id": "0x7f0da6b45d28", + "id": "0x7feb10ddc0d8", "kind": "CXXOperatorCallExpr", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 } @@ -64486,16 +63622,16 @@ "adl": true, "inner": [ { - "id": "0x7f0da6b45d10", + "id": "0x7feb10ddc0c0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35537, + "offset": 35039, "col": 65, "tokLen": 1 }, "end": { - "offset": 35537, + "offset": 35039, "col": 65, "tokLen": 1 } @@ -64507,16 +63643,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b45cf0", + "id": "0x7feb10ddc0a0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35537, + "offset": 35039, "col": 65, "tokLen": 1 }, "end": { - "offset": 35537, + "offset": 35039, "col": 65, "tokLen": 1 } @@ -64526,7 +63662,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2ce13b68", + "id": "0x3803f998", "kind": "FunctionDecl", "name": "operator+", "type": { @@ -64537,16 +63673,16 @@ ] }, { - "id": "0x7f0da6b45cd8", + "id": "0x7feb10ddc088", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 } @@ -64558,16 +63694,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b45828", + "id": "0x7feb10ddbbd8", "kind": "StringLiteral", "range": { "begin": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 }, "end": { - "offset": 35500, + "offset": 35002, "col": 28, "tokLen": 36 } @@ -64581,16 +63717,16 @@ ] }, { - "id": "0x7f0da6b45868", + "id": "0x7feb10ddbc18", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 }, "end": { - "offset": 35539, + "offset": 35041, "col": 67, "tokLen": 1 } @@ -64598,11 +63734,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b44cc8", + "id": "0x7feb10ddb078", "kind": "ParmVarDecl", "name": "s", "type": { @@ -64617,17 +63753,17 @@ ] }, { - "id": "0x7f0da6b462a8", + "id": "0x7feb10ddc5d8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35570, - "line": 1162, + "offset": 35072, + "line": 1146, "col": 28, "tokLen": 38 }, "end": { - "offset": 35570, + "offset": 35072, "col": 28, "tokLen": 38 } @@ -64639,16 +63775,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b45e08", + "id": "0x7feb10ddc138", "kind": "StringLiteral", "range": { "begin": { - "offset": 35570, + "offset": 35072, "col": 28, "tokLen": 38 }, "end": { - "offset": 35570, + "offset": 35072, "col": 28, "tokLen": 38 } @@ -64688,33 +63824,33 @@ ] }, { - "id": "0x7f0da6b46548", + "id": "0x7feb10ddc878", "kind": "ReturnStmt", "range": { "begin": { - "offset": 35621, - "line": 1164, + "offset": 35123, + "line": 1148, "col": 5, "tokLen": 6 }, "end": { - "offset": 35655, + "offset": 35157, "col": 39, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46518", + "id": "0x7feb10ddc848", "kind": "CXXStaticCastExpr", "range": { "begin": { - "offset": 35628, + "offset": 35130, "col": 12, "tokLen": 11 }, "end": { - "offset": 35655, + "offset": 35157, "col": 39, "tokLen": 1 } @@ -64722,22 +63858,22 @@ "type": { "desugaredQualType": "unsigned short", "qualType": "uint16_t", - "typeAliasDeclId": "0x2c0e6c80" + "typeAliasDeclId": "0x37318a20" }, "valueCategory": "prvalue", "castKind": "NoOp", "inner": [ { - "id": "0x7f0da6b46500", + "id": "0x7feb10ddc830", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 }, "end": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 } @@ -64745,23 +63881,23 @@ "type": { "desugaredQualType": "unsigned short", "qualType": "uint16_t", - "typeAliasDeclId": "0x2c0e6c80" + "typeAliasDeclId": "0x37318a20" }, "valueCategory": "prvalue", "castKind": "IntegralCast", "isPartOfExplicitCast": true, "inner": [ { - "id": "0x7f0da6b464e8", + "id": "0x7feb10ddc818", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 }, "end": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 } @@ -64774,16 +63910,16 @@ "isPartOfExplicitCast": true, "inner": [ { - "id": "0x7f0da6b464b8", + "id": "0x7feb10ddc7e8", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 }, "end": { - "offset": 35650, + "offset": 35152, "col": 34, "tokLen": 5 } @@ -64793,7 +63929,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b45288", + "id": "0x7feb10ddb638", "kind": "VarDecl", "name": "value", "type": { @@ -64814,29 +63950,29 @@ ] }, { - "id": "0x7f0da6b466b8", + "id": "0x7feb10ddc9e8", "kind": "FunctionDecl", "loc": { - "offset": 35682, + "offset": 35184, "file": "ToString.cpp", - "line": 1167, + "line": 1151, "col": 22, "tokLen": 8 }, "range": { "begin": { - "offset": 35661, + "offset": 35163, "col": 1, "tokLen": 8 }, "end": { - "offset": 35816, - "line": 1170, + "offset": 35318, + "line": 1154, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37c828", + "previousDecl": "0x385ace18", "name": "StringTo", "mangledName": "_ZN3sls8StringToIjEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -64850,7 +63986,7 @@ }, "inner": [ { - "id": "0x2bf08d90", + "id": "0x3713ad70", "kind": "BuiltinType", "type": { "qualType": "unsigned int" @@ -64859,22 +63995,22 @@ ] }, { - "id": "0x7f0da6b465f0", + "id": "0x7feb10ddc920", "kind": "ParmVarDecl", "loc": { - "offset": 35710, - "line": 1167, + "offset": 35212, + "line": 1151, "col": 50, "tokLen": 1 }, "range": { "begin": { - "offset": 35691, + "offset": 35193, "col": 31, "tokLen": 5 }, "end": { - "offset": 35710, + "offset": 35212, "col": 50, "tokLen": 1 } @@ -64886,55 +64022,55 @@ } }, { - "id": "0x7f0da6b46d90", + "id": "0x7feb10ddd0c0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35713, + "offset": 35215, "col": 53, "tokLen": 1 }, "end": { - "offset": 35816, - "line": 1170, + "offset": 35318, + "line": 1154, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46b88", + "id": "0x7feb10ddceb8", "kind": "DeclStmt", "range": { "begin": { - "offset": 35719, - "line": 1168, + "offset": 35221, + "line": 1152, "col": 5, "tokLen": 3 }, "end": { - "offset": 35773, + "offset": 35275, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46888", + "id": "0x7feb10ddcbb8", "kind": "VarDecl", "loc": { - "offset": 35723, + "offset": 35225, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 35719, + "offset": 35221, "col": 5, "tokLen": 3 }, "end": { - "offset": 35771, + "offset": 35273, "col": 57, "tokLen": 2 } @@ -64947,16 +64083,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b46b58", + "id": "0x7feb10ddce88", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35771, + "offset": 35273, "col": 57, "tokLen": 2 } @@ -64967,16 +64103,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b46af8", + "id": "0x7feb10ddce28", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35759, + "offset": 35261, "col": 45, "tokLen": 4 } @@ -64988,16 +64124,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b469d0", + "id": "0x7feb10ddcd00", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35741, + "offset": 35243, "col": 27, "tokLen": 1 } @@ -65005,21 +64141,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b469a0", + "id": "0x7feb10ddccd0", "kind": "MemberExpr", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35732, + "offset": 35234, "col": 18, "tokLen": 4 } @@ -65030,19 +64166,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b468f0", + "id": "0x7feb10ddcc20", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 }, "end": { - "offset": 35730, + "offset": 35232, "col": 16, "tokLen": 1 } @@ -65050,11 +64186,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b465f0", + "id": "0x7feb10ddc920", "kind": "ParmVarDecl", "name": "s", "type": { @@ -65065,16 +64201,16 @@ ] }, { - "id": "0x7f0da6b46a00", + "id": "0x7feb10ddcd30", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35737, + "offset": 35239, "col": 23, "tokLen": 4 }, "end": { - "offset": 35737, + "offset": 35239, "col": 23, "tokLen": 4 } @@ -65086,16 +64222,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b46980", + "id": "0x7feb10ddccb0", "kind": "StringLiteral", "range": { "begin": { - "offset": 35737, + "offset": 35239, "col": 23, "tokLen": 4 }, "end": { - "offset": 35737, + "offset": 35239, "col": 23, "tokLen": 4 } @@ -65109,7 +64245,7 @@ ] }, { - "id": "0x7f0da6b46a18", + "id": "0x7feb10ddcd48", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -65118,23 +64254,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b46ae0", + "id": "0x7feb10ddce10", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35746, + "offset": 35248, "col": 32, "tokLen": 3 }, "end": { - "offset": 35759, + "offset": 35261, "col": 45, "tokLen": 4 } @@ -65142,22 +64278,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b46ab0", + "id": "0x7feb10ddcde0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35746, + "offset": 35248, "col": 32, "tokLen": 3 }, "end": { - "offset": 35759, + "offset": 35261, "col": 45, "tokLen": 4 } @@ -65165,17 +64301,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -65185,16 +64321,16 @@ ] }, { - "id": "0x7f0da6b46b18", + "id": "0x7feb10ddce48", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35766, + "offset": 35268, "col": 52, "tokLen": 2 }, "end": { - "offset": 35766, + "offset": 35268, "col": 52, "tokLen": 2 } @@ -65206,16 +64342,16 @@ "value": "16" }, { - "id": "0x7f0da6b46b38", + "id": "0x7feb10ddce68", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35771, + "offset": 35273, "col": 57, "tokLen": 2 }, "end": { - "offset": 35771, + "offset": 35273, "col": 57, "tokLen": 2 } @@ -65233,33 +64369,33 @@ ] }, { - "id": "0x7f0da6b46d80", + "id": "0x7feb10ddd0b0", "kind": "ReturnStmt", "range": { "begin": { - "offset": 35779, - "line": 1169, + "offset": 35281, + "line": 1153, "col": 5, "tokLen": 6 }, "end": { - "offset": 35813, + "offset": 35315, "col": 39, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b46d68", + "id": "0x7feb10ddd098", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35786, + "offset": 35288, "col": 12, "tokLen": 3 }, "end": { - "offset": 35813, + "offset": 35315, "col": 39, "tokLen": 1 } @@ -65267,22 +64403,22 @@ "type": { "desugaredQualType": "unsigned int", "qualType": "uint32_t", - "typeAliasDeclId": "0x2c0e6ce8" + "typeAliasDeclId": "0x37318a88" }, "valueCategory": "prvalue", "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b46d00", + "id": "0x7feb10ddd030", "kind": "CallExpr", "range": { "begin": { - "offset": 35786, + "offset": 35288, "col": 12, "tokLen": 3 }, "end": { - "offset": 35813, + "offset": 35315, "col": 39, "tokLen": 1 } @@ -65293,16 +64429,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b46ce8", + "id": "0x7feb10ddd018", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35786, + "offset": 35288, "col": 12, "tokLen": 3 }, "end": { - "offset": 35791, + "offset": 35293, "col": 17, "tokLen": 5 } @@ -65314,16 +64450,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b46c60", + "id": "0x7feb10ddcf90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35786, + "offset": 35288, "col": 12, "tokLen": 3 }, "end": { - "offset": 35791, + "offset": 35293, "col": 17, "tokLen": 5 } @@ -65333,7 +64469,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c8d3880", + "id": "0x37b052b0", "kind": "FunctionDecl", "name": "stoul", "type": { @@ -65344,16 +64480,16 @@ ] }, { - "id": "0x7f0da6b46c10", + "id": "0x7feb10ddcf40", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35797, + "offset": 35299, "col": 23, "tokLen": 1 }, "end": { - "offset": 35797, + "offset": 35299, "col": 23, "tokLen": 1 } @@ -65361,11 +64497,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b465f0", + "id": "0x7feb10ddc920", "kind": "ParmVarDecl", "name": "s", "type": { @@ -65374,16 +64510,16 @@ } }, { - "id": "0x7f0da6b46d38", + "id": "0x7feb10ddd068", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35800, + "offset": 35302, "col": 26, "tokLen": 7 }, "end": { - "offset": 35800, + "offset": 35302, "col": 26, "tokLen": 7 } @@ -65395,16 +64531,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b46c30", + "id": "0x7feb10ddcf60", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 35800, + "offset": 35302, "col": 26, "tokLen": 7 }, "end": { - "offset": 35800, + "offset": 35302, "col": 26, "tokLen": 7 } @@ -65417,16 +64553,16 @@ ] }, { - "id": "0x7f0da6b46d50", + "id": "0x7feb10ddd080", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35809, + "offset": 35311, "col": 35, "tokLen": 4 }, "end": { - "offset": 35809, + "offset": 35311, "col": 35, "tokLen": 4 } @@ -65438,16 +64574,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b46c40", + "id": "0x7feb10ddcf70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35809, + "offset": 35311, "col": 35, "tokLen": 4 }, "end": { - "offset": 35809, + "offset": 35311, "col": 35, "tokLen": 4 } @@ -65457,7 +64593,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b46888", + "id": "0x7feb10ddcbb8", "kind": "VarDecl", "name": "base", "type": { @@ -65478,29 +64614,29 @@ ] }, { - "id": "0x7f0da6b46ed8", + "id": "0x7feb10ddd208", "kind": "FunctionDecl", "loc": { - "offset": 35840, + "offset": 35342, "file": "ToString.cpp", - "line": 1172, + "line": 1156, "col": 22, "tokLen": 8 }, "range": { "begin": { - "offset": 35819, + "offset": 35321, "col": 1, "tokLen": 8 }, "end": { - "offset": 35975, - "line": 1175, + "offset": 35477, + "line": 1159, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37ccc8", + "previousDecl": "0x385ad2b8", "name": "StringTo", "mangledName": "_ZN3sls8StringToImEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -65514,7 +64650,7 @@ }, "inner": [ { - "id": "0x2bf08db0", + "id": "0x3713ad90", "kind": "BuiltinType", "type": { "qualType": "unsigned long" @@ -65523,22 +64659,22 @@ ] }, { - "id": "0x7f0da6b46e18", + "id": "0x7feb10ddd148", "kind": "ParmVarDecl", "loc": { - "offset": 35868, - "line": 1172, + "offset": 35370, + "line": 1156, "col": 50, "tokLen": 1 }, "range": { "begin": { - "offset": 35849, + "offset": 35351, "col": 31, "tokLen": 5 }, "end": { - "offset": 35868, + "offset": 35370, "col": 50, "tokLen": 1 } @@ -65550,55 +64686,55 @@ } }, { - "id": "0x7f0da6b475b0", + "id": "0x7feb10ddd8e0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 35871, + "offset": 35373, "col": 53, "tokLen": 1 }, "end": { - "offset": 35975, - "line": 1175, + "offset": 35477, + "line": 1159, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b473a8", + "id": "0x7feb10ddd6d8", "kind": "DeclStmt", "range": { "begin": { - "offset": 35877, - "line": 1173, + "offset": 35379, + "line": 1157, "col": 5, "tokLen": 3 }, "end": { - "offset": 35931, + "offset": 35433, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b470a8", + "id": "0x7feb10ddd3d8", "kind": "VarDecl", "loc": { - "offset": 35881, + "offset": 35383, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 35877, + "offset": 35379, "col": 5, "tokLen": 3 }, "end": { - "offset": 35929, + "offset": 35431, "col": 57, "tokLen": 2 } @@ -65611,16 +64747,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b47378", + "id": "0x7feb10ddd6a8", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35929, + "offset": 35431, "col": 57, "tokLen": 2 } @@ -65631,16 +64767,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b47318", + "id": "0x7feb10ddd648", "kind": "BinaryOperator", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35917, + "offset": 35419, "col": 45, "tokLen": 4 } @@ -65652,16 +64788,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b471f0", + "id": "0x7feb10ddd520", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35899, + "offset": 35401, "col": 27, "tokLen": 1 } @@ -65669,21 +64805,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b471c0", + "id": "0x7feb10ddd4f0", "kind": "MemberExpr", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35890, + "offset": 35392, "col": 18, "tokLen": 4 } @@ -65694,19 +64830,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b47110", + "id": "0x7feb10ddd440", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 }, "end": { - "offset": 35888, + "offset": 35390, "col": 16, "tokLen": 1 } @@ -65714,11 +64850,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b46e18", + "id": "0x7feb10ddd148", "kind": "ParmVarDecl", "name": "s", "type": { @@ -65729,16 +64865,16 @@ ] }, { - "id": "0x7f0da6b47220", + "id": "0x7feb10ddd550", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35895, + "offset": 35397, "col": 23, "tokLen": 4 }, "end": { - "offset": 35895, + "offset": 35397, "col": 23, "tokLen": 4 } @@ -65750,16 +64886,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b471a0", + "id": "0x7feb10ddd4d0", "kind": "StringLiteral", "range": { "begin": { - "offset": 35895, + "offset": 35397, "col": 23, "tokLen": 4 }, "end": { - "offset": 35895, + "offset": 35397, "col": 23, "tokLen": 4 } @@ -65773,7 +64909,7 @@ ] }, { - "id": "0x7f0da6b47238", + "id": "0x7feb10ddd568", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -65782,23 +64918,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b47300", + "id": "0x7feb10ddd630", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35904, + "offset": 35406, "col": 32, "tokLen": 3 }, "end": { - "offset": 35917, + "offset": 35419, "col": 45, "tokLen": 4 } @@ -65806,22 +64942,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b472d0", + "id": "0x7feb10ddd600", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35904, + "offset": 35406, "col": 32, "tokLen": 3 }, "end": { - "offset": 35917, + "offset": 35419, "col": 45, "tokLen": 4 } @@ -65829,17 +64965,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -65849,16 +64985,16 @@ ] }, { - "id": "0x7f0da6b47338", + "id": "0x7feb10ddd668", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35924, + "offset": 35426, "col": 52, "tokLen": 2 }, "end": { - "offset": 35924, + "offset": 35426, "col": 52, "tokLen": 2 } @@ -65870,16 +65006,16 @@ "value": "16" }, { - "id": "0x7f0da6b47358", + "id": "0x7feb10ddd688", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 35929, + "offset": 35431, "col": 57, "tokLen": 2 }, "end": { - "offset": 35929, + "offset": 35431, "col": 57, "tokLen": 2 } @@ -65897,33 +65033,33 @@ ] }, { - "id": "0x7f0da6b475a0", + "id": "0x7feb10ddd8d0", "kind": "ReturnStmt", "range": { "begin": { - "offset": 35937, - "line": 1174, + "offset": 35439, + "line": 1158, "col": 5, "tokLen": 6 }, "end": { - "offset": 35972, + "offset": 35474, "col": 40, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b47588", + "id": "0x7feb10ddd8b8", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35944, + "offset": 35446, "col": 12, "tokLen": 3 }, "end": { - "offset": 35972, + "offset": 35474, "col": 40, "tokLen": 1 } @@ -65931,22 +65067,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "uint64_t", - "typeAliasDeclId": "0x2c0e6d50" + "typeAliasDeclId": "0x37318af0" }, "valueCategory": "prvalue", "castKind": "IntegralCast", "inner": [ { - "id": "0x7f0da6b47520", + "id": "0x7feb10ddd850", "kind": "CallExpr", "range": { "begin": { - "offset": 35944, + "offset": 35446, "col": 12, "tokLen": 3 }, "end": { - "offset": 35972, + "offset": 35474, "col": 40, "tokLen": 1 } @@ -65957,16 +65093,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b47508", + "id": "0x7feb10ddd838", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35944, + "offset": 35446, "col": 12, "tokLen": 3 }, "end": { - "offset": 35949, + "offset": 35451, "col": 17, "tokLen": 6 } @@ -65978,16 +65114,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b47480", + "id": "0x7feb10ddd7b0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35944, + "offset": 35446, "col": 12, "tokLen": 3 }, "end": { - "offset": 35949, + "offset": 35451, "col": 17, "tokLen": 6 } @@ -65997,7 +65133,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c8d5880", + "id": "0x37b072b0", "kind": "FunctionDecl", "name": "stoull", "type": { @@ -66008,16 +65144,16 @@ ] }, { - "id": "0x7f0da6b47430", + "id": "0x7feb10ddd760", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35956, + "offset": 35458, "col": 24, "tokLen": 1 }, "end": { - "offset": 35956, + "offset": 35458, "col": 24, "tokLen": 1 } @@ -66025,11 +65161,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b46e18", + "id": "0x7feb10ddd148", "kind": "ParmVarDecl", "name": "s", "type": { @@ -66038,16 +65174,16 @@ } }, { - "id": "0x7f0da6b47558", + "id": "0x7feb10ddd888", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35959, + "offset": 35461, "col": 27, "tokLen": 7 }, "end": { - "offset": 35959, + "offset": 35461, "col": 27, "tokLen": 7 } @@ -66059,16 +65195,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b47450", + "id": "0x7feb10ddd780", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 35959, + "offset": 35461, "col": 27, "tokLen": 7 }, "end": { - "offset": 35959, + "offset": 35461, "col": 27, "tokLen": 7 } @@ -66081,16 +65217,16 @@ ] }, { - "id": "0x7f0da6b47570", + "id": "0x7feb10ddd8a0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 35968, + "offset": 35470, "col": 36, "tokLen": 4 }, "end": { - "offset": 35968, + "offset": 35470, "col": 36, "tokLen": 4 } @@ -66102,16 +65238,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b47460", + "id": "0x7feb10ddd790", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 35968, + "offset": 35470, "col": 36, "tokLen": 4 }, "end": { - "offset": 35968, + "offset": 35470, "col": 36, "tokLen": 4 } @@ -66121,7 +65257,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b470a8", + "id": "0x7feb10ddd3d8", "kind": "VarDecl", "name": "base", "type": { @@ -66142,29 +65278,29 @@ ] }, { - "id": "0x7f0da6b47700", + "id": "0x7feb10ddda30", "kind": "FunctionDecl", "loc": { - "offset": 35994, + "offset": 35496, "file": "ToString.cpp", - "line": 1177, + "line": 1161, "col": 17, "tokLen": 8 }, "range": { "begin": { - "offset": 35978, + "offset": 35480, "col": 1, "tokLen": 8 }, "end": { - "offset": 36127, - "line": 1180, + "offset": 35629, + "line": 1164, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37d1a0", + "previousDecl": "0x385ad790", "name": "StringTo", "mangledName": "_ZN3sls8StringToIiEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -66178,7 +65314,7 @@ }, "inner": [ { - "id": "0x2bf08cf0", + "id": "0x3713acd0", "kind": "BuiltinType", "type": { "qualType": "int" @@ -66187,22 +65323,22 @@ ] }, { - "id": "0x7f0da6b47638", + "id": "0x7feb10ddd968", "kind": "ParmVarDecl", "loc": { - "offset": 36022, - "line": 1177, + "offset": 35524, + "line": 1161, "col": 45, "tokLen": 1 }, "range": { "begin": { - "offset": 36003, + "offset": 35505, "col": 26, "tokLen": 5 }, "end": { - "offset": 36022, + "offset": 35524, "col": 45, "tokLen": 1 } @@ -66214,55 +65350,55 @@ } }, { - "id": "0x7f0da6b47d70", + "id": "0x7feb10dde0a0", "kind": "CompoundStmt", "range": { "begin": { - "offset": 36025, + "offset": 35527, "col": 48, "tokLen": 1 }, "end": { - "offset": 36127, - "line": 1180, + "offset": 35629, + "line": 1164, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b47bd8", + "id": "0x7feb10dddf08", "kind": "DeclStmt", "range": { "begin": { - "offset": 36031, - "line": 1178, + "offset": 35533, + "line": 1162, "col": 5, "tokLen": 3 }, "end": { - "offset": 36085, + "offset": 35587, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b478d8", + "id": "0x7feb10dddc08", "kind": "VarDecl", "loc": { - "offset": 36035, + "offset": 35537, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 36031, + "offset": 35533, "col": 5, "tokLen": 3 }, "end": { - "offset": 36083, + "offset": 35585, "col": 57, "tokLen": 2 } @@ -66275,16 +65411,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b47ba8", + "id": "0x7feb10ddded8", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36083, + "offset": 35585, "col": 57, "tokLen": 2 } @@ -66295,16 +65431,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b47b48", + "id": "0x7feb10ddde78", "kind": "BinaryOperator", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36071, + "offset": 35573, "col": 45, "tokLen": 4 } @@ -66316,16 +65452,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b47a20", + "id": "0x7feb10dddd50", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36053, + "offset": 35555, "col": 27, "tokLen": 1 } @@ -66333,21 +65469,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b479f0", + "id": "0x7feb10dddd20", "kind": "MemberExpr", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36044, + "offset": 35546, "col": 18, "tokLen": 4 } @@ -66358,19 +65494,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b47940", + "id": "0x7feb10dddc70", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 }, "end": { - "offset": 36042, + "offset": 35544, "col": 16, "tokLen": 1 } @@ -66378,11 +65514,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b47638", + "id": "0x7feb10ddd968", "kind": "ParmVarDecl", "name": "s", "type": { @@ -66393,16 +65529,16 @@ ] }, { - "id": "0x7f0da6b47a50", + "id": "0x7feb10dddd80", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36049, + "offset": 35551, "col": 23, "tokLen": 4 }, "end": { - "offset": 36049, + "offset": 35551, "col": 23, "tokLen": 4 } @@ -66414,16 +65550,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b479d0", + "id": "0x7feb10dddd00", "kind": "StringLiteral", "range": { "begin": { - "offset": 36049, + "offset": 35551, "col": 23, "tokLen": 4 }, "end": { - "offset": 36049, + "offset": 35551, "col": 23, "tokLen": 4 } @@ -66437,7 +65573,7 @@ ] }, { - "id": "0x7f0da6b47a68", + "id": "0x7feb10dddd98", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -66446,23 +65582,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b47b30", + "id": "0x7feb10ddde60", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36058, + "offset": 35560, "col": 32, "tokLen": 3 }, "end": { - "offset": 36071, + "offset": 35573, "col": 45, "tokLen": 4 } @@ -66470,22 +65606,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b47b00", + "id": "0x7feb10ddde30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36058, + "offset": 35560, "col": 32, "tokLen": 3 }, "end": { - "offset": 36071, + "offset": 35573, "col": 45, "tokLen": 4 } @@ -66493,17 +65629,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -66513,16 +65649,16 @@ ] }, { - "id": "0x7f0da6b47b68", + "id": "0x7feb10ddde98", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36078, + "offset": 35580, "col": 52, "tokLen": 2 }, "end": { - "offset": 36078, + "offset": 35580, "col": 52, "tokLen": 2 } @@ -66534,16 +65670,16 @@ "value": "16" }, { - "id": "0x7f0da6b47b88", + "id": "0x7feb10dddeb8", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36083, + "offset": 35585, "col": 57, "tokLen": 2 }, "end": { - "offset": 36083, + "offset": 35585, "col": 57, "tokLen": 2 } @@ -66561,33 +65697,33 @@ ] }, { - "id": "0x7f0da6b47d60", + "id": "0x7feb10dde090", "kind": "ReturnStmt", "range": { "begin": { - "offset": 36091, - "line": 1179, + "offset": 35593, + "line": 1163, "col": 5, "tokLen": 6 }, "end": { - "offset": 36124, + "offset": 35626, "col": 38, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b47cf8", + "id": "0x7feb10dde028", "kind": "CallExpr", "range": { "begin": { - "offset": 36098, + "offset": 35600, "col": 12, "tokLen": 3 }, "end": { - "offset": 36124, + "offset": 35626, "col": 38, "tokLen": 1 } @@ -66598,16 +65734,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b47ce0", + "id": "0x7feb10dde010", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36098, + "offset": 35600, "col": 12, "tokLen": 3 }, "end": { - "offset": 36103, + "offset": 35605, "col": 17, "tokLen": 4 } @@ -66619,16 +65755,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b47cb0", + "id": "0x7feb10dddfe0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36098, + "offset": 35600, "col": 12, "tokLen": 3 }, "end": { - "offset": 36103, + "offset": 35605, "col": 17, "tokLen": 4 } @@ -66638,7 +65774,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c88ede0", + "id": "0x37ac0430", "kind": "FunctionDecl", "name": "stoi", "type": { @@ -66649,16 +65785,16 @@ ] }, { - "id": "0x7f0da6b47c60", + "id": "0x7feb10dddf90", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36108, + "offset": 35610, "col": 22, "tokLen": 1 }, "end": { - "offset": 36108, + "offset": 35610, "col": 22, "tokLen": 1 } @@ -66666,11 +65802,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b47638", + "id": "0x7feb10ddd968", "kind": "ParmVarDecl", "name": "s", "type": { @@ -66679,16 +65815,16 @@ } }, { - "id": "0x7f0da6b47d30", + "id": "0x7feb10dde060", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36111, + "offset": 35613, "col": 25, "tokLen": 7 }, "end": { - "offset": 36111, + "offset": 35613, "col": 25, "tokLen": 7 } @@ -66700,16 +65836,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b47c80", + "id": "0x7feb10dddfb0", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 36111, + "offset": 35613, "col": 25, "tokLen": 7 }, "end": { - "offset": 36111, + "offset": 35613, "col": 25, "tokLen": 7 } @@ -66722,16 +65858,16 @@ ] }, { - "id": "0x7f0da6b47d48", + "id": "0x7feb10dde078", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36120, + "offset": 35622, "col": 34, "tokLen": 4 }, "end": { - "offset": 36120, + "offset": 35622, "col": 34, "tokLen": 4 } @@ -66743,16 +65879,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b47c90", + "id": "0x7feb10dddfc0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36120, + "offset": 35622, "col": 34, "tokLen": 4 }, "end": { - "offset": 36120, + "offset": 35622, "col": 34, "tokLen": 4 } @@ -66762,7 +65898,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b478d8", + "id": "0x7feb10dddc08", "kind": "VarDecl", "name": "base", "type": { @@ -66781,29 +65917,29 @@ ] }, { - "id": "0x7f0da6b47eb8", + "id": "0x7feb10dde1e8", "kind": "FunctionDecl", "loc": { - "offset": 36147, + "offset": 35649, "file": "ToString.cpp", - "line": 1182, + "line": 1166, "col": 18, "tokLen": 8 }, "range": { "begin": { - "offset": 36130, + "offset": 35632, "col": 1, "tokLen": 8 }, "end": { - "offset": 36391, - "line": 1192, + "offset": 35893, + "line": 1176, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37d648", + "previousDecl": "0x385adc38", "name": "StringTo", "mangledName": "_ZN3sls8StringToIbEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -66817,7 +65953,7 @@ }, "inner": [ { - "id": "0x2bf08c70", + "id": "0x3713ac50", "kind": "BuiltinType", "type": { "qualType": "bool" @@ -66826,22 +65962,22 @@ ] }, { - "id": "0x7f0da6b47df8", + "id": "0x7feb10dde128", "kind": "ParmVarDecl", "loc": { - "offset": 36175, - "line": 1182, + "offset": 35677, + "line": 1166, "col": 46, "tokLen": 1 }, "range": { "begin": { - "offset": 36156, + "offset": 35658, "col": 27, "tokLen": 5 }, "end": { - "offset": 36175, + "offset": 35677, "col": 46, "tokLen": 1 } @@ -66853,55 +65989,55 @@ } }, { - "id": "0x7f0da6b48578", + "id": "0x7feb10dde8a8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 36178, + "offset": 35680, "col": 49, "tokLen": 1 }, "end": { - "offset": 36391, - "line": 1192, + "offset": 35893, + "line": 1176, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48248", + "id": "0x7feb10dde578", "kind": "DeclStmt", "range": { "begin": { - "offset": 36184, - "line": 1183, + "offset": 35686, + "line": 1167, "col": 5, "tokLen": 3 }, "end": { - "offset": 36217, + "offset": 35719, "col": 38, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48088", + "id": "0x7feb10dde3b8", "kind": "VarDecl", "loc": { - "offset": 36188, + "offset": 35690, "col": 9, "tokLen": 1 }, "range": { "begin": { - "offset": 36184, + "offset": 35686, "col": 5, "tokLen": 3 }, "end": { - "offset": 36216, + "offset": 35718, "col": 37, "tokLen": 1 } @@ -66914,16 +66050,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b481f8", + "id": "0x7feb10dde528", "kind": "CallExpr", "range": { "begin": { - "offset": 36192, + "offset": 35694, "col": 13, "tokLen": 3 }, "end": { - "offset": 36216, + "offset": 35718, "col": 37, "tokLen": 1 } @@ -66934,16 +66070,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b481e0", + "id": "0x7feb10dde510", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36192, + "offset": 35694, "col": 13, "tokLen": 3 }, "end": { - "offset": 36197, + "offset": 35699, "col": 18, "tokLen": 4 } @@ -66955,16 +66091,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b481b0", + "id": "0x7feb10dde4e0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36192, + "offset": 35694, "col": 13, "tokLen": 3 }, "end": { - "offset": 36197, + "offset": 35699, "col": 18, "tokLen": 4 } @@ -66974,7 +66110,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c88ede0", + "id": "0x37ac0430", "kind": "FunctionDecl", "name": "stoi", "type": { @@ -66985,16 +66121,16 @@ ] }, { - "id": "0x7f0da6b48160", + "id": "0x7feb10dde490", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36202, + "offset": 35704, "col": 23, "tokLen": 1 }, "end": { - "offset": 36202, + "offset": 35704, "col": 23, "tokLen": 1 } @@ -67002,11 +66138,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b47df8", + "id": "0x7feb10dde128", "kind": "ParmVarDecl", "name": "s", "type": { @@ -67015,16 +66151,16 @@ } }, { - "id": "0x7f0da6b48230", + "id": "0x7feb10dde560", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36205, + "offset": 35707, "col": 26, "tokLen": 7 }, "end": { - "offset": 36205, + "offset": 35707, "col": 26, "tokLen": 7 } @@ -67036,16 +66172,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b48180", + "id": "0x7feb10dde4b0", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 36205, + "offset": 35707, "col": 26, "tokLen": 7 }, "end": { - "offset": 36205, + "offset": 35707, "col": 26, "tokLen": 7 } @@ -67058,16 +66194,16 @@ ] }, { - "id": "0x7f0da6b48190", + "id": "0x7feb10dde4c0", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36214, + "offset": 35716, "col": 35, "tokLen": 2 }, "end": { - "offset": 36214, + "offset": 35716, "col": 35, "tokLen": 2 } @@ -67085,35 +66221,35 @@ ] }, { - "id": "0x7f0da6b48298", + "id": "0x7feb10dde5c8", "kind": "SwitchStmt", "range": { "begin": { - "offset": 36223, - "line": 1184, + "offset": 35725, + "line": 1168, "col": 5, "tokLen": 6 }, "end": { - "offset": 36389, - "line": 1191, + "offset": 35891, + "line": 1175, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48280", + "id": "0x7feb10dde5b0", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36231, - "line": 1184, + "offset": 35733, + "line": 1168, "col": 13, "tokLen": 1 }, "end": { - "offset": 36231, + "offset": 35733, "col": 13, "tokLen": 1 } @@ -67125,16 +66261,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b48260", + "id": "0x7feb10dde590", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36231, + "offset": 35733, "col": 13, "tokLen": 1 }, "end": { - "offset": 36231, + "offset": 35733, "col": 13, "tokLen": 1 } @@ -67144,7 +66280,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b48088", + "id": "0x7feb10dde3b8", "kind": "VarDecl", "name": "i", "type": { @@ -67155,52 +66291,52 @@ ] }, { - "id": "0x7f0da6b48550", + "id": "0x7feb10dde880", "kind": "CompoundStmt", "range": { "begin": { - "offset": 36234, + "offset": 35736, "col": 16, "tokLen": 1 }, "end": { - "offset": 36389, - "line": 1191, + "offset": 35891, + "line": 1175, "col": 5, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48300", + "id": "0x7feb10dde630", "kind": "CaseStmt", "range": { "begin": { - "offset": 36240, - "line": 1185, + "offset": 35742, + "line": 1169, "col": 5, "tokLen": 4 }, "end": { - "offset": 36263, - "line": 1186, + "offset": 35765, + "line": 1170, "col": 16, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b482e0", + "id": "0x7feb10dde610", "kind": "ConstantExpr", "range": { "begin": { - "offset": 36245, - "line": 1185, + "offset": 35747, + "line": 1169, "col": 10, "tokLen": 1 }, "end": { - "offset": 36245, + "offset": 35747, "col": 10, "tokLen": 1 } @@ -67212,16 +66348,16 @@ "value": "0", "inner": [ { - "id": "0x7f0da6b482c0", + "id": "0x7feb10dde5f0", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36245, + "offset": 35747, "col": 10, "tokLen": 1 }, "end": { - "offset": 36245, + "offset": 35747, "col": 10, "tokLen": 1 } @@ -67235,33 +66371,33 @@ ] }, { - "id": "0x7f0da6b48338", + "id": "0x7feb10dde668", "kind": "ReturnStmt", "range": { "begin": { - "offset": 36256, - "line": 1186, + "offset": 35758, + "line": 1170, "col": 9, "tokLen": 6 }, "end": { - "offset": 36263, + "offset": 35765, "col": 16, "tokLen": 5 } }, "inner": [ { - "id": "0x7f0da6b48328", + "id": "0x7feb10dde658", "kind": "CXXBoolLiteralExpr", "range": { "begin": { - "offset": 36263, + "offset": 35765, "col": 16, "tokLen": 5 }, "end": { - "offset": 36263, + "offset": 35765, "col": 16, "tokLen": 5 } @@ -67277,35 +66413,35 @@ ] }, { - "id": "0x7f0da6b48388", + "id": "0x7feb10dde6b8", "kind": "CaseStmt", "range": { "begin": { - "offset": 36274, - "line": 1187, + "offset": 35776, + "line": 1171, "col": 5, "tokLen": 4 }, "end": { - "offset": 36297, - "line": 1188, + "offset": 35799, + "line": 1172, "col": 16, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b48368", + "id": "0x7feb10dde698", "kind": "ConstantExpr", "range": { "begin": { - "offset": 36279, - "line": 1187, + "offset": 35781, + "line": 1171, "col": 10, "tokLen": 1 }, "end": { - "offset": 36279, + "offset": 35781, "col": 10, "tokLen": 1 } @@ -67317,16 +66453,16 @@ "value": "1", "inner": [ { - "id": "0x7f0da6b48348", + "id": "0x7feb10dde678", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36279, + "offset": 35781, "col": 10, "tokLen": 1 }, "end": { - "offset": 36279, + "offset": 35781, "col": 10, "tokLen": 1 } @@ -67340,33 +66476,33 @@ ] }, { - "id": "0x7f0da6b483c0", + "id": "0x7feb10dde6f0", "kind": "ReturnStmt", "range": { "begin": { - "offset": 36290, - "line": 1188, + "offset": 35792, + "line": 1172, "col": 9, "tokLen": 6 }, "end": { - "offset": 36297, + "offset": 35799, "col": 16, "tokLen": 4 } }, "inner": [ { - "id": "0x7f0da6b483b0", + "id": "0x7feb10dde6e0", "kind": "CXXBoolLiteralExpr", "range": { "begin": { - "offset": 36297, + "offset": 35799, "col": 16, "tokLen": 4 }, "end": { - "offset": 36297, + "offset": 35799, "col": 16, "tokLen": 4 } @@ -67382,34 +66518,34 @@ ] }, { - "id": "0x7f0da6b48530", + "id": "0x7feb10dde860", "kind": "DefaultStmt", "range": { "begin": { - "offset": 36307, - "line": 1189, + "offset": 35809, + "line": 1173, "col": 5, "tokLen": 7 }, "end": { - "offset": 36382, - "line": 1190, + "offset": 35884, + "line": 1174, "col": 67, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48518", + "id": "0x7feb10dde848", "kind": "ExprWithCleanups", "range": { "begin": { - "offset": 36324, + "offset": 35826, "col": 9, "tokLen": 5 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67421,16 +66557,16 @@ "cleanupsHaveSideEffects": true, "inner": [ { - "id": "0x7f0da6b48500", + "id": "0x7feb10dde830", "kind": "CXXThrowExpr", "range": { "begin": { - "offset": 36324, + "offset": 35826, "col": 9, "tokLen": 5 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67441,16 +66577,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b484d0", + "id": "0x7feb10dde800", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67468,16 +66604,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b484b8", + "id": "0x7feb10dde7e8", "kind": "MaterializeTemporaryExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67490,16 +66626,16 @@ "storageDuration": "full expression", "inner": [ { - "id": "0x7f0da6b48490", + "id": "0x7feb10dde7c0", "kind": "CXXFunctionalCastExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67511,7 +66647,7 @@ "valueCategory": "prvalue", "castKind": "ConstructorConversion", "conversionFunc": { - "id": "0x2c968a58", + "id": "0x37b9a6a8", "kind": "CXXConstructorDecl", "name": "RuntimeError", "type": { @@ -67520,16 +66656,16 @@ }, "inner": [ { - "id": "0x7f0da6b48470", + "id": "0x7feb10dde7a0", "kind": "CXXBindTemporaryExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67539,9 +66675,9 @@ "qualType": "RuntimeError" }, "valueCategory": "prvalue", - "temp": "0x7f0da6b48468", + "temp": "0x7feb10dde798", "dtor": { - "id": "0x2c9692d0", + "id": "0x37b9af20", "kind": "CXXDestructorDecl", "name": "~RuntimeError", "type": { @@ -67550,16 +66686,16 @@ }, "inner": [ { - "id": "0x7f0da6b48438", + "id": "0x7feb10dde768", "kind": "CXXConstructExpr", "range": { "begin": { - "offset": 36330, + "offset": 35832, "col": 15, "tokLen": 12 }, "end": { - "offset": 36382, + "offset": 35884, "col": 67, "tokLen": 1 } @@ -67576,16 +66712,16 @@ "constructionKind": "complete", "inner": [ { - "id": "0x7f0da6b48420", + "id": "0x7feb10dde750", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36343, + "offset": 35845, "col": 28, "tokLen": 39 }, "end": { - "offset": 36343, + "offset": 35845, "col": 28, "tokLen": 39 } @@ -67597,16 +66733,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b483e0", + "id": "0x7feb10dde710", "kind": "StringLiteral", "range": { "begin": { - "offset": 36343, + "offset": 35845, "col": 28, "tokLen": 39 }, "end": { - "offset": 36343, + "offset": 35845, "col": 28, "tokLen": 39 } @@ -67644,29 +66780,29 @@ ] }, { - "id": "0x7f0da6b486c8", + "id": "0x7feb10dde9f8", "kind": "FunctionDecl", "loc": { - "offset": 36414, + "offset": 35916, "file": "ToString.cpp", - "line": 1194, + "line": 1178, "col": 21, "tokLen": 8 }, "range": { "begin": { - "offset": 36394, + "offset": 35896, "col": 1, "tokLen": 8 }, "end": { - "offset": 36547, - "line": 1197, + "offset": 36049, + "line": 1181, "col": 1, "tokLen": 1 } }, - "previousDecl": "0x2d37db18", + "previousDecl": "0x385ae108", "name": "StringTo", "mangledName": "_ZN3sls8StringToIlEET_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", "type": { @@ -67680,7 +66816,7 @@ }, "inner": [ { - "id": "0x2bf08d10", + "id": "0x3713acf0", "kind": "BuiltinType", "type": { "qualType": "long" @@ -67689,22 +66825,22 @@ ] }, { - "id": "0x7f0da6b48600", + "id": "0x7feb10dde930", "kind": "ParmVarDecl", "loc": { - "offset": 36442, - "line": 1194, + "offset": 35944, + "line": 1178, "col": 49, "tokLen": 1 }, "range": { "begin": { - "offset": 36423, + "offset": 35925, "col": 30, "tokLen": 5 }, "end": { - "offset": 36442, + "offset": 35944, "col": 49, "tokLen": 1 } @@ -67716,55 +66852,55 @@ } }, { - "id": "0x7f0da6b48d88", + "id": "0x7feb10ddf0b8", "kind": "CompoundStmt", "range": { "begin": { - "offset": 36445, + "offset": 35947, "col": 52, "tokLen": 1 }, "end": { - "offset": 36547, - "line": 1197, + "offset": 36049, + "line": 1181, "col": 1, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48b98", + "id": "0x7feb10ddeec8", "kind": "DeclStmt", "range": { "begin": { - "offset": 36451, - "line": 1195, + "offset": 35953, + "line": 1179, "col": 5, "tokLen": 3 }, "end": { - "offset": 36505, + "offset": 36007, "col": 59, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48898", + "id": "0x7feb10ddebc8", "kind": "VarDecl", "loc": { - "offset": 36455, + "offset": 35957, "col": 9, "tokLen": 4 }, "range": { "begin": { - "offset": 36451, + "offset": 35953, "col": 5, "tokLen": 3 }, "end": { - "offset": 36503, + "offset": 36005, "col": 57, "tokLen": 2 } @@ -67777,16 +66913,16 @@ "init": "c", "inner": [ { - "id": "0x7f0da6b48b68", + "id": "0x7feb10ddee98", "kind": "ConditionalOperator", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36503, + "offset": 36005, "col": 57, "tokLen": 2 } @@ -67797,16 +66933,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b48b08", + "id": "0x7feb10ddee38", "kind": "BinaryOperator", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36491, + "offset": 35993, "col": 45, "tokLen": 4 } @@ -67818,16 +66954,16 @@ "opcode": "!=", "inner": [ { - "id": "0x7f0da6b489e0", + "id": "0x7feb10dded10", "kind": "CXXMemberCallExpr", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36473, + "offset": 35975, "col": 27, "tokLen": 1 } @@ -67835,21 +66971,21 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b489b0", + "id": "0x7feb10ddece0", "kind": "MemberExpr", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36464, + "offset": 35966, "col": 18, "tokLen": 4 } @@ -67860,19 +66996,19 @@ "valueCategory": "prvalue", "name": "find", "isArrow": false, - "referencedMemberDecl": "0x2c8ca830", + "referencedMemberDecl": "0x37afc260", "inner": [ { - "id": "0x7f0da6b48900", + "id": "0x7feb10ddec30", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 }, "end": { - "offset": 36462, + "offset": 35964, "col": 16, "tokLen": 1 } @@ -67880,11 +67016,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b48600", + "id": "0x7feb10dde930", "kind": "ParmVarDecl", "name": "s", "type": { @@ -67895,16 +67031,16 @@ ] }, { - "id": "0x7f0da6b48a10", + "id": "0x7feb10dded40", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36469, + "offset": 35971, "col": 23, "tokLen": 4 }, "end": { - "offset": 36469, + "offset": 35971, "col": 23, "tokLen": 4 } @@ -67916,16 +67052,16 @@ "castKind": "ArrayToPointerDecay", "inner": [ { - "id": "0x7f0da6b48990", + "id": "0x7feb10ddecc0", "kind": "StringLiteral", "range": { "begin": { - "offset": 36469, + "offset": 35971, "col": 23, "tokLen": 4 }, "end": { - "offset": 36469, + "offset": 35971, "col": 23, "tokLen": 4 } @@ -67939,7 +67075,7 @@ ] }, { - "id": "0x7f0da6b48a28", + "id": "0x7feb10dded58", "kind": "CXXDefaultArgExpr", "range": { "begin": {}, @@ -67948,23 +67084,23 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue" } ] }, { - "id": "0x7f0da6b48af0", + "id": "0x7feb10ddee20", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36478, + "offset": 35980, "col": 32, "tokLen": 3 }, "end": { - "offset": 36491, + "offset": 35993, "col": 45, "tokLen": 4 } @@ -67972,22 +67108,22 @@ "type": { "desugaredQualType": "unsigned long", "qualType": "typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "prvalue", "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b48ac0", + "id": "0x7feb10ddedf0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36478, + "offset": 35980, "col": 32, "tokLen": 3 }, "end": { - "offset": 36491, + "offset": 35993, "col": 45, "tokLen": 4 } @@ -67995,17 +67131,17 @@ "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2d0eda20", + "id": "0x3831e760", "kind": "VarDecl", "name": "npos", "type": { "desugaredQualType": "const unsigned long", "qualType": "const typename basic_string, allocator>::size_type", - "typeAliasDeclId": "0x2c8ab7b0" + "typeAliasDeclId": "0x37add1e0" } }, "nonOdrUseReason": "constant" @@ -68015,16 +67151,16 @@ ] }, { - "id": "0x7f0da6b48b28", + "id": "0x7feb10ddee58", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36498, + "offset": 36000, "col": 52, "tokLen": 2 }, "end": { - "offset": 36498, + "offset": 36000, "col": 52, "tokLen": 2 } @@ -68036,16 +67172,16 @@ "value": "16" }, { - "id": "0x7f0da6b48b48", + "id": "0x7feb10ddee78", "kind": "IntegerLiteral", "range": { "begin": { - "offset": 36503, + "offset": 36005, "col": 57, "tokLen": 2 }, "end": { - "offset": 36503, + "offset": 36005, "col": 57, "tokLen": 2 } @@ -68063,33 +67199,33 @@ ] }, { - "id": "0x7f0da6b48d78", + "id": "0x7feb10ddf0a8", "kind": "ReturnStmt", "range": { "begin": { - "offset": 36511, - "line": 1196, + "offset": 36013, + "line": 1180, "col": 5, "tokLen": 6 }, "end": { - "offset": 36544, + "offset": 36046, "col": 38, "tokLen": 1 } }, "inner": [ { - "id": "0x7f0da6b48d10", + "id": "0x7feb10ddf040", "kind": "CallExpr", "range": { "begin": { - "offset": 36518, + "offset": 36020, "col": 12, "tokLen": 3 }, "end": { - "offset": 36544, + "offset": 36046, "col": 38, "tokLen": 1 } @@ -68100,16 +67236,16 @@ "valueCategory": "prvalue", "inner": [ { - "id": "0x7f0da6b48cf8", + "id": "0x7feb10ddf028", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36518, + "offset": 36020, "col": 12, "tokLen": 3 }, "end": { - "offset": 36523, + "offset": 36025, "col": 17, "tokLen": 4 } @@ -68121,16 +67257,16 @@ "castKind": "FunctionToPointerDecay", "inner": [ { - "id": "0x7f0da6b48c70", + "id": "0x7feb10ddefa0", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36518, + "offset": 36020, "col": 12, "tokLen": 3 }, "end": { - "offset": 36523, + "offset": 36025, "col": 17, "tokLen": 4 } @@ -68140,7 +67276,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x2c8d05c0", + "id": "0x37b01ff0", "kind": "FunctionDecl", "name": "stol", "type": { @@ -68151,16 +67287,16 @@ ] }, { - "id": "0x7f0da6b48c20", + "id": "0x7feb10ddef50", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36528, + "offset": 36030, "col": 22, "tokLen": 1 }, "end": { - "offset": 36528, + "offset": 36030, "col": 22, "tokLen": 1 } @@ -68168,11 +67304,11 @@ "type": { "desugaredQualType": "const std::basic_string", "qualType": "const std::string", - "typeAliasDeclId": "0x2c6c0c90" + "typeAliasDeclId": "0x378f28c0" }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b48600", + "id": "0x7feb10dde930", "kind": "ParmVarDecl", "name": "s", "type": { @@ -68181,16 +67317,16 @@ } }, { - "id": "0x7f0da6b48d48", + "id": "0x7feb10ddf078", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36531, + "offset": 36033, "col": 25, "tokLen": 7 }, "end": { - "offset": 36531, + "offset": 36033, "col": 25, "tokLen": 7 } @@ -68202,16 +67338,16 @@ "castKind": "NullToPointer", "inner": [ { - "id": "0x7f0da6b48c40", + "id": "0x7feb10ddef70", "kind": "CXXNullPtrLiteralExpr", "range": { "begin": { - "offset": 36531, + "offset": 36033, "col": 25, "tokLen": 7 }, "end": { - "offset": 36531, + "offset": 36033, "col": 25, "tokLen": 7 } @@ -68224,16 +67360,16 @@ ] }, { - "id": "0x7f0da6b48d60", + "id": "0x7feb10ddf090", "kind": "ImplicitCastExpr", "range": { "begin": { - "offset": 36540, + "offset": 36042, "col": 34, "tokLen": 4 }, "end": { - "offset": 36540, + "offset": 36042, "col": 34, "tokLen": 4 } @@ -68245,16 +67381,16 @@ "castKind": "LValueToRValue", "inner": [ { - "id": "0x7f0da6b48c50", + "id": "0x7feb10ddef80", "kind": "DeclRefExpr", "range": { "begin": { - "offset": 36540, + "offset": 36042, "col": 34, "tokLen": 4 }, "end": { - "offset": 36540, + "offset": 36042, "col": 34, "tokLen": 4 } @@ -68264,7 +67400,7 @@ }, "valueCategory": "lvalue", "referencedDecl": { - "id": "0x7f0da6b48898", + "id": "0x7feb10ddebc8", "kind": "VarDecl", "name": "base", "type": { diff --git a/slsDetectorSoftware/generator/autocomplete/zsh_autocomplete.sh b/slsDetectorSoftware/generator/autocomplete/zsh_autocomplete.sh index c4c36afe7..64598dd2b 100644 --- a/slsDetectorSoftware/generator/autocomplete/zsh_autocomplete.sh +++ b/slsDetectorSoftware/generator/autocomplete/zsh_autocomplete.sh @@ -4,7 +4,7 @@ _sd() { -local SLS_COMMANDS=" acquire activate adcclk adcenable adcenable10g adcindex adcinvert adclist adcname adcphase adcpipeline adcreg adcvpp apulse asamples autocompdisable badchannels blockingtrigger burstmode burstperiod bursts burstsl bustest cdsgain chipversion clearbit clearbusy clearroi clientversion clkdiv clkfreq clkphase collectionmode column compdisabletime confadc config configtransceiver counters currentsource dac dacindex daclist dacname dacvalues datastream dbitclk dbitphase dbitpipeline defaultdac defaultpattern delay delayl detectorserverversion detsize diodelay dpulse dr drlist dsamples execcommand exptime exptime1 exptime2 exptime3 exptimel extrastoragecells extsampling extsamplingsrc extsig fformat filtercells filterresistor findex firmwaretest firmwareversion fliprows flowcontrol10g fmaster fname foverwrite fpath framecounter frames framesl frametime free fwrite gaincaps gainmode gappixels gatedelay gatedelay1 gatedelay2 gatedelay3 gates getbit hardwareversion highvoltage hostname im_a im_b im_c im_d im_io imagetest initialchecks inj_ch interpolation interruptsubframe kernelversion lastclient led lock master maxadcphaseshift maxclkphaseshift maxdbitphaseshift measuredperiod measuredsubperiod moduleid nextframenumber nmod numinterfaces overflow packageversion parallel parameters partialreset patfname patioctrl patlimits patloop patloop0 patloop1 patloop2 patmask patnloop patnloop0 patnloop1 patnloop2 patsetbit patternX patternstart patwait patwait0 patwait1 patwait2 patwaittime patwaittime0 patwaittime1 patwaittime2 patword pedestalmode period periodl polarity port powerchip powerindex powerlist powername powervalues programfpga pulse pulsechip pulsenmove pumpprobe quad ratecorr readnrows readout readoutspeed readoutspeedlist rebootcontroller reg resetdacs resetfpga roi romode row runclk runtime rx_arping rx_clearroi rx_dbitlist rx_dbitoffset rx_discardpolicy rx_fifodepth rx_frameindex rx_framescaught rx_framesperfile rx_hostname rx_jsonaddheader rx_jsonpara rx_lastclient rx_lock rx_missingpackets rx_padding rx_printconfig rx_realudpsocksize rx_roi rx_silent rx_start rx_status rx_stop rx_tcpport rx_threads rx_udpsocksize rx_version rx_zmqfreq rx_zmqhwm rx_zmqip rx_zmqport rx_zmqstartfnum rx_zmqstream samples savepattern scan scanerrmsg selinterface serialnumber setbit settings settingslist settingspath signalindex signallist signalname sleep slowadc slowadcindex slowadclist slowadcname slowadcvalues start status stop stopport storagecell_delay storagecell_start subdeadtime subexptime sync syncclk temp_10ge temp_adc temp_control temp_dcdc temp_event temp_fpga temp_fpgaext temp_fpgafl temp_fpgafr temp_slowadc temp_sodl temp_sodr temp_threshold templist tempvalues tengiga threshold thresholdnotb timing timing_info_decoder timinglist timingsource top transceiverenable trigger triggers triggersl trimbits trimen trimval tsamples txdelay txdelay_frame txdelay_left txdelay_right type udp_cleardst udp_dstip udp_dstip2 udp_dstlist udp_dstmac udp_dstmac2 udp_dstport udp_dstport2 udp_firstdst udp_numdst udp_reconfigure udp_srcip udp_srcip2 udp_srcmac udp_srcmac2 udp_validate update updatedetectorserver updatekernel updatemode user v_a v_b v_c v_chip v_d v_io v_limit vchip_comp_adc vchip_comp_fe vchip_cs vchip_opa_1st vchip_opa_fd vchip_ref_comp_fe versions veto vetoalg vetofile vetophoton vetoref vetostream virtual vm_a vm_b vm_c vm_d vm_io zmqhwm zmqip zmqport " +local SLS_COMMANDS=" acquire activate adcclk adcenable adcenable10g adcindex adcinvert adclist adcname adcphase adcpipeline adcreg adcvpp apulse asamples autocompdisable badchannels blockingtrigger burstmode burstperiod bursts burstsl bustest cdsgain chipversion clearbit clearbusy clientversion clkdiv clkfreq clkphase collectionmode column compdisabletime confadc config configtransceiver counters currentsource dac dacindex daclist dacname dacvalues datastream dbitclk dbitphase dbitpipeline defaultdac defaultpattern delay delayl detectorserverversion detsize diodelay dpulse dr drlist dsamples execcommand exptime exptime1 exptime2 exptime3 extrastoragecells extsampling extsamplingsrc extsig fformat filtercells filterresistor findex firmwaretest firmwareversion fliprows flowcontrol10g fmaster fname foverwrite fpath framecounter frames framesl frametime free fwrite gaincaps gainmode gappixels gatedelay gatedelay1 gatedelay2 gatedelay3 gates getbit hardwareversion highvoltage hostname im_a im_b im_c im_d im_io imagetest initialchecks inj_ch interpolation interruptsubframe kernelversion lastclient led lock master maxadcphaseshift maxclkphaseshift maxdbitphaseshift measuredperiod measuredsubperiod moduleid nextframenumber nmod numinterfaces overflow packageversion parallel parameters partialreset patfname patioctrl patlimits patloop patloop0 patloop1 patloop2 patmask patnloop patnloop0 patnloop1 patnloop2 patsetbit pattern patternstart patwait patwait0 patwait1 patwait2 patwaittime patwaittime0 patwaittime1 patwaittime2 patword pedestalmode period periodl polarity port powerchip powerindex powerlist powername powervalues programfpga pulse pulsechip pulsenmove pumpprobe quad ratecorr readnrows readout readoutspeed readoutspeedlist rebootcontroller reg resetdacs resetfpga romode row runclk runtime rx_arping rx_clearroi rx_dbitlist rx_dbitoffset rx_dbitreorder rx_discardpolicy rx_fifodepth rx_frameindex rx_framescaught rx_framesperfile rx_hostname rx_jsonaddheader rx_jsonpara rx_lastclient rx_lock rx_missingpackets rx_padding rx_printconfig rx_realudpsocksize rx_roi rx_silent rx_start rx_status rx_stop rx_tcpport rx_threads rx_udpsocksize rx_version rx_zmqfreq rx_zmqhwm rx_zmqip rx_zmqport rx_zmqstartfnum rx_zmqstream samples savepattern scan scanerrmsg selinterface serialnumber setbit settings settingslist settingspath signalindex signallist signalname sleep slowadc slowadcindex slowadclist slowadcname slowadcvalues start status stop stopport storagecell_delay storagecell_start subdeadtime subexptime sync syncclk temp_10ge temp_adc temp_control temp_dcdc temp_event temp_fpga temp_fpgaext temp_fpgafl temp_fpgafr temp_slowadc temp_sodl temp_sodr temp_threshold templist tempvalues tengiga threshold thresholdnotb timing timing_info_decoder timinglist timingsource top transceiverenable trigger triggers triggersl trimbits trimen trimval tsamples txdelay txdelay_frame txdelay_left txdelay_right type udp_cleardst udp_dstip udp_dstip2 udp_dstlist udp_dstmac udp_dstmac2 udp_dstport udp_dstport2 udp_firstdst udp_numdst udp_reconfigure udp_srcip udp_srcip2 udp_srcmac udp_srcmac2 udp_validate update updatedetectorserver updatekernel updatemode user v_a v_b v_c v_chip v_d v_io v_limit vchip_comp_adc vchip_comp_fe vchip_cs vchip_opa_1st vchip_opa_fd vchip_ref_comp_fe versions veto vetoalg vetofile vetophoton vetoref vetostream virtual vm_a vm_b vm_c vm_d vm_io zmqhwm zmqip zmqport " __acquire() { FCN_RETURN="" return 0 @@ -275,10 +275,6 @@ fi fi return 0 } -__clearroi() { -FCN_RETURN="" -return 0 -} __clientversion() { FCN_RETURN="" return 0 @@ -785,20 +781,6 @@ fi fi return 0 } -__exptimel() { -FCN_RETURN="" -if [[ ${IS_GET} -eq 1 ]]; then -if [[ "${cword}" == "2" ]]; then -FCN_RETURN="ms ns s us" -fi -fi -if [[ ${IS_GET} -eq 0 ]]; then -if [[ "${cword}" == "2" ]]; then -FCN_RETURN="ms ns s us" -fi -fi -return 0 -} __extrastoragecells() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then @@ -1371,18 +1353,82 @@ return 0 } __patloop() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "4" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patloop0() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "4" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patloop1() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "4" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patloop2() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "4" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patmask() { @@ -1396,18 +1442,70 @@ return 0 } __patnloop() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patnloop0() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patnloop1() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patnloop2() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patsetbit() { @@ -1419,7 +1517,32 @@ fi fi return 0 } -__patternX() { +__pattern() { +FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +IS_PATH=1 +fi +fi +return 0 +} +__patternstart() { +FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +IS_PATH=1 +fi +fi +return 0 +} +__patwait() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then @@ -1430,32 +1553,61 @@ if [[ ${IS_GET} -eq 0 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi fi return 0 } -__patternstart() { +__patwait0() { FCN_RETURN="" if [[ ${IS_GET} -eq 1 ]]; then if [[ "${cword}" == "2" ]]; then FCN_RETURN="" fi fi -return 0 -} -__patwait() { +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then FCN_RETURN="" -return 0 -} -__patwait0() { +fi +if [[ "${cword}" == "3" ]]; then FCN_RETURN="" +fi +fi return 0 } __patwait1() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patwait2() { FCN_RETURN="" +if [[ ${IS_GET} -eq 1 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +fi +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="" +fi +if [[ "${cword}" == "3" ]]; then +FCN_RETURN="" +fi +fi return 0 } __patwaittime() { @@ -1788,18 +1940,6 @@ fi fi return 0 } -__roi() { -FCN_RETURN="" -if [[ ${IS_GET} -eq 0 ]]; then -if [[ "${cword}" == "2" ]]; then -FCN_RETURN="" -fi -if [[ "${cword}" == "3" ]]; then -FCN_RETURN="" -fi -fi -return 0 -} __romode() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then @@ -1872,6 +2012,15 @@ fi fi return 0 } +__rx_dbitreorder() { +FCN_RETURN="" +if [[ ${IS_GET} -eq 0 ]]; then +if [[ "${cword}" == "2" ]]; then +FCN_RETURN="0 1" +fi +fi +return 0 +} __rx_discardpolicy() { FCN_RETURN="" if [[ ${IS_GET} -eq 0 ]]; then @@ -1968,20 +2117,6 @@ return 0 } __rx_roi() { FCN_RETURN="" -if [[ ${IS_GET} -eq 0 ]]; then -if [[ "${cword}" == "2" ]]; then -FCN_RETURN="" -fi -if [[ "${cword}" == "3" ]]; then -FCN_RETURN="" -fi -if [[ "${cword}" == "4" ]]; then -FCN_RETURN="" -fi -if [[ "${cword}" == "5" ]]; then -FCN_RETURN="" -fi -fi return 0 } __rx_silent() { diff --git a/slsDetectorSoftware/generator/commands.yaml b/slsDetectorSoftware/generator/commands.yaml index 75fc3ef02..62c6c6931 100644 --- a/slsDetectorSoftware/generator/commands.yaml +++ b/slsDetectorSoftware/generator/commands.yaml @@ -441,7 +441,7 @@ period: function: setPeriod delay: - help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Moench][Xilinx Ctb] Delay after trigger" + help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Moench][Xilinx Ctb] Delay after trigger" inherit_actions: TIME_COMMAND actions: GET: @@ -468,7 +468,7 @@ subdeadtime: function: setSubDeadTime compdisabletime: - help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Time before end of exposure when comparator is disabled. It is only possible for chipv1.1." + help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Time before end of exposure when comparator is disabled." inherit_actions: TIME_COMMAND actions: GET: @@ -496,14 +496,14 @@ burstperiod: ################# TIME_GET_COMMAND ############# delayl: - help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Delay Left in Acquisition. \n\t[Gotthard2] only in continuous mode." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Delay Left in Acquisition. \n\t[Gotthard2] only in continuous mode." inherit_actions: TIME_GET_COMMAND actions: GET: function: getDelayAfterTriggerLeft periodl: - help: "\n\t[Gotthard][Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Period left for current frame. \n\t[Gotthard2] only in continuous mode." + help: "\n\t[Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Period left for current frame. \n\t[Gotthard2] only in continuous mode." inherit_actions: TIME_GET_COMMAND actions: GET: @@ -523,13 +523,6 @@ measuredsubperiod: GET: function: getMeasuredSubFramePeriod -exptimel: - help: "[(optional unit) ns|us|ms|s]\n\t[Gotthard] Exposure time left for current frame. " - inherit_actions: TIME_GET_COMMAND - actions: - GET: - function: getExptimeLeft - runtime: help: "[(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Time from detector start up.\n\t[Gotthard2] not in burst and auto mode." inherit_actions: TIME_GET_COMMAND @@ -641,7 +634,7 @@ adcinvert: ################# INTEGER_COMMAND_VEC_ID ################# settings: - help: "[standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, highgain0, fixgain1, fixgain2, forceswitchg1, forceswitchg2, verylowgain, g1_hg, g1_lg, g2_hc_hg, g2_hc_lg, g2_lc_hg, g2_lc_lg, g4_hg, g4_lg, gain0]\n\t Detector Settings\n\t[Jungfrau] - [ gain0 | highgain0]\n\t[Gotthard] - [dynamicgain | highgain | lowgain | mediumgain | veryhighgain]\n\t[Gotthard] Also loads default dacs on to the detector.\n\t[Gotthard2] - [dynamicgain | fixgain1 | fixgain2]\n\t[Mythen3] - [standard | fast | highgain] Also changes vrshaper and vrpreamp. \n\t[Eiger] Use threshold or thresholdnotb. \n\t[Eiger] threshold and settings loaded from file found in settingspath. \n\t[Moench] - [g1_hg | g1_lg | g2_hc_hg | g2_hc_lg | g2_lc_hg | g2_lc_lg | g4_hg | g4_lg]" + help: "[standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, highgain0, fixgain1, fixgain2, forceswitchg1, forceswitchg2, verylowgain, g1_hg, g1_lg, g2_hc_hg, g2_hc_lg, g2_lc_hg, g2_lc_lg, g4_hg, g4_lg, gain0]\n\t Detector Settings\n\t[Jungfrau] - [ gain0 | highgain0]\n\t[Gotthard2] - [dynamicgain | fixgain1 | fixgain2]\n\t[Mythen3] - [standard | fast | highgain] Also changes vrshaper and vrpreamp. \n\t[Eiger] Use threshold or thresholdnotb. \n\t[Eiger] threshold and settings loaded from file found in settingspath. \n\t[Moench] - [g1_hg | g1_lg | g2_hc_hg | g2_hc_lg | g2_lc_hg | g2_lc_lg | g4_hg | g4_lg]" inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -688,7 +681,7 @@ column: function: setColumn timing: - help: "[auto|trigger|gating|burst_trigger]\n\tTiming Mode of detector.\n\t[Jungfrau][Moench][Gotthard][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger]\n\t[Mythen3] [auto|trigger|gating|trigger_gating]\n\t[Eiger] [auto|trigger|gating|burst_trigger]" + help: "[auto|trigger|gating|burst_trigger|trigger_gating]\n\tTiming Mode of detector.\n\t[Jungfrau][Moench][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger]\n\t[Mythen3] [auto|trigger|gating|trigger_gating]\n\t[Eiger] [auto|trigger|gating|burst_trigger]" inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -698,7 +691,7 @@ timing: input_types: [ defs::timingMode ] highvoltage: - help: "[n_value]\n\tHigh voltage to the sensor in Voltage. \n\t[Gotthard] [0|90|110|120|150|180|200] \n\t[Eiger][Mythen3][Gotthard2] 0-200 \n\t[Jungfrau][Moench][Ctb] [0|60-200]" + help: "[n_value]\n\tHigh voltage to the sensor in Voltage. \n\t[Eiger][Mythen3][Gotthard2] 0-200 \n\t[Jungfrau][Moench][Ctb] [0|60-200]" inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -717,7 +710,7 @@ powerchip: input_types: [ bool ] imagetest: - help: "[0, 1]\n\t[Gotthard] 1 adds channel intensity with precalculated values when taking an acquisition. Default is 0.\n\t[Eiger][Jungfrau][Moench] Only for Virtual servers. If 0, each pixel intensity incremented by 1. If 1, all pixels almost saturated." + help: "[0, 1]\n\t[Eiger][Jungfrau][Moench] Only for Virtual servers. If 0, each pixel intensity incremented by 1. If 1, all pixels almost saturated." inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -1123,7 +1116,7 @@ temp_control: input_types: [ bool ] autocompdisable: - help: "[0, 1]\n\t[Jungfrau] Auto comparator disable mode. By default, the on-chip gain switching is active during the entire exposure.This mode disables the on - chip gain switching comparator automatically after 93.75% (only for chipv1.0) of exposure time (only for longer than 100us). It is possible to set the duration for chipv1.1 using compdisabletime command.\n\tDefault is 0 or this mode disabled(comparator enabled throughout). 1 enables mode. 0 disables mode. " + help: "[0, 1]\n\t[Jungfrau] Auto comparator disable mode. By default, the on-chip gain switching is active during the entire exposure.This mode disables the on - chip gain switching comparator automatically and the duration is set using compdisabletime command.\n\tDefault is 0 or this mode disabled(comparator enabled throughout). 1 enables mode. 0 disables mode. " inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -1210,7 +1203,7 @@ polarity: input_types: [ defs::polarity ] timing_info_decoder: - help: "[swissfel|shine]\n\t[Jungfrau] Advanced Command and only for Swissfel and Shine. Sets the bunch id or timing info decoder. Default is swissfel." + help: "[swissfel|shine]\n\t[Jungfrau] Advanced Command and only for Swissfel and Shine. Sets the bunch id or timing info decoder. Default is swissfel. Only allowed for pcbv2.0." inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -1279,7 +1272,7 @@ asamples: function: setNumberOfAnalogSamples adcclk: - help: "[n_clk in MHz]\n\t[Ctb] ADC clock frequency in MHz." + help: "[n_clk in MHz]\n\t[Ctb] ADC clock frequency in MHz.\n\t[xilinx Ctb] ADC clock frequency in kHz." inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -1288,7 +1281,7 @@ adcclk: function: setADCClock runclk: - help: "[n_clk in MHz]\n\t[Ctb] Run clock in MHz." + help: "[n_clk in MHz]\n\t[Ctb] Run clock in MHz.\n\t[xilinx Ctb] Run clock in kHz." inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -1325,7 +1318,7 @@ romode: input_types: [ defs::readoutMode ] dbitclk: - help: "[n_clk in MHz]\n\t[Ctb] Clock for latching the digital bits in MHz." + help: "[n_clk in MHz]\n\t[Ctb] Clock for latching the digital bits in MHz.\n\t[xilinx Ctb] Clock for latching the digital bits in kHz." inherit_actions: INTEGER_COMMAND_VEC_ID actions: GET: @@ -1419,11 +1412,23 @@ lock: function: setDetectorLock input_types: [ bool ] + +rx_dbitreorder: + help: "[0, 1]\n\t[Ctb] Reorder digital data such that it groups each signal (0-63) from all the different samples together . Default is 1. Setting to 0 means 'do not reorder' and to keep what the board spits out, which is that all signals in a sample are grouped together." + inherit_actions: INTEGER_COMMAND_VEC_ID + actions: + GET: + function: getRxDbitReorder + PUT: + function: setRxDbitReorder + input_types: [ bool ] + + ################# INTEGER_COMMAND_VEC_ID_GET ################# master: inherit_actions: INTEGER_COMMAND_VEC_ID_GET - help: "[0, 1]\n\t[Eiger][Gotthard2][Jungfrau][Moench] Sets (half) module to master and other(s) to slaves.\n\t[Gotthard][Gotthard2][Mythen3][Eiger][Jungfrau][Moench] Gets if the current (half) module is master." + help: "[0, 1]\n\t[Eiger][Gotthard2][Jungfrau][Moench] Sets (half) module to master and other(s) to slaves.\n\t[Gotthard2][Mythen3][Eiger][Jungfrau][Moench] Gets if the current (half) module is master." actions: GET: function: getMaster @@ -1514,7 +1519,7 @@ triggers: dr: inherit_actions: INTEGER_COMMAND_SET_NOID_GET_ID - help: "[value]\n\tDynamic Range or number of bits per pixel in detector.\n\t[Eiger] Options: 4, 8, 12, 16, 32. If set to 32, also sets clkdivider to 2, else to 0.\n\t[Mythen3] Options: 8, 16, 32\n\t[Jungfrau][Moench][Gotthard][Ctb][Mythen3][Gotthard2][Xilinx Ctb] 16" + help: "[value]\n\tDynamic Range or number of bits per pixel in detector.\n\t[Eiger] Options: 4, 8, 12, 16, 32. If set to 32, also sets clkdivider to 2, else to 0.\n\t[Mythen3] Options: 8, 16, 32\n\t[Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] 16" actions: GET: function: getDynamicRange @@ -1736,7 +1741,7 @@ readout: rx_clearroi: inherit_actions: EXECUTE_SET_COMMAND_NOID - help: "Resets Region of interest in receiver. Default is all channels/pixels enabled." + help: "\n\tResets Region of interest in receiver. Default is all channels/pixels enabled." actions: PUT: function: clearRxROI @@ -1777,13 +1782,6 @@ udp_validate: PUT: function: validateUDPConfiguration -clearroi: - inherit_actions: EXECUTE_SET_COMMAND - help: "\n\t[Gotthard] Resets Region of interest in detector. All channels enabled. Default is all channels enabled." - actions: - PUT: - function: clearROI - defaultpattern: inherit_actions: EXECUTE_SET_COMMAND help: "\n\t[Mythen3] Loads and runs default pattern in pattern generator. It is to go back to initial settings." @@ -1793,7 +1791,7 @@ defaultpattern: patternstart: inherit_actions: EXECUTE_SET_COMMAND - help: "\n\t[Mythen3] Starts Pattern" + help: "\n\t[Mythen3][Ctb][Xilinx Ctb] Starts Pattern" actions: PUT: function: startPattern @@ -1807,21 +1805,21 @@ resetfpga: rebootcontroller: inherit_actions: EXECUTE_SET_COMMAND - help: "\n\t[Jungfrau][Moench][Ctb][Gotthard][Mythen3][Gotthard2][Xilinx Ctb] Reboot controller of detector." + help: "\n\t[Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Reboot controller of detector." actions: PUT: function: rebootController firmwaretest: inherit_actions: EXECUTE_SET_COMMAND - help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Firmware test, ie. reads a read fixed pattern from a register." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Firmware test, ie. reads a read fixed pattern from a register." actions: PUT: function: executeFirmwareTest bustest: inherit_actions: EXECUTE_SET_COMMAND - help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb] Bus test, ie. Writes different values in a R/W register and confirms the writes to check bus.\n\tAdvanced User function!" + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb] Bus test, ie. Writes different values in a R/W register and confirms the writes to check bus.\n\tAdvanced User function!" actions: PUT: function: executeBusTest @@ -1893,21 +1891,21 @@ moduleid: type: inherit_actions: GET_COMMAND - help: "\n\tReturns detector type. Can be Eiger, Jungfrau, Gotthard, Moench, Mythen3, Gotthard2, ChipTestBoard, Xilinx_ChipTestBoard" + help: "\n\tReturns detector type. Can be Eiger, Jungfrau, Moench, Mythen3, Gotthard2, ChipTestBoard, Xilinx_ChipTestBoard" actions: GET: function: getDetectorType framesl: inherit_actions: GET_COMMAND - help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of frames left in acquisition. \n\t[Gotthard2] only in continuous auto mode." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of frames left in acquisition. \n\t[Gotthard2] only in continuous auto mode." actions: GET: function: getNumberOfFramesLeft triggersl: inherit_actions: GET_COMMAND - help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of triggers left in acquisition. Only when external trigger used." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of triggers left in acquisition. Only when external trigger used." actions: GET: function: getNumberOfTriggersLeft @@ -2034,7 +2032,7 @@ framecounter: ################# GET_COMMAND_HEX ############################ serialnumber: inherit_actions: GET_COMMAND - help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb]\n\tSerial number of detector." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb]\n\tSerial number of detector." actions: GET: function: getSerialNumber @@ -2086,7 +2084,7 @@ templist: ################# GET_IND_COMMAND ############################ temp_adc: inherit_actions: GET_IND_COMMAND - help: "[n_value]\n\t[Jungfrau][Moench][Gotthard] ADC Temperature" + help: "[n_value]\n\t[Jungfrau][Moench] ADC Temperature" actions: GET: function: getTemperature @@ -2095,7 +2093,7 @@ temp_adc: temp_fpga: inherit_actions: GET_IND_COMMAND - help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Xilinx CTB] FPGA Temperature" + help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Mythen3][Gotthard2][Xilinx CTB] FPGA Temperature" actions: GET: function: getTemperature @@ -2468,6 +2466,15 @@ free: PUT: argc: 0 +user: + is_description: true + actions: + GET: + argc: 0 + PUT: + argc: 0 + + hostname: is_description: true actions: @@ -2600,11 +2607,7 @@ rx_roi: GET: argc: 0 PUT: - args: - - argc: 2 - arg_types: [ int, int ] - - argc: 4 - arg_types: [ int, int, int, int ] + argc: -1 ratecorr: is_description: true @@ -2656,6 +2659,44 @@ slowadc: argc: 1 arg_types: [ int ] +patwaittime: + is_description: true + actions: + GET: + argc: -1 + PUT: + argc: -1 + +patwaittime0: + is_description: true + duplicate_function: true + function_alias: patwaittime + actions: + GET: + argc: -1 + PUT: + argc: -1 + +patwaittime1: + is_description: true + duplicate_function: true + function_alias: patwaittime + actions: + GET: + argc: -1 + PUT: + argc: -1 + +patwaittime2: + is_description: true + duplicate_function: true + function_alias: patwaittime + actions: + GET: + argc: -1 + PUT: + argc: -1 + rx_dbitlist: is_description: true actions: @@ -2852,7 +2893,7 @@ Exptime: exptime: inherit_actions: Exptime - help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Ctb][Xilinx Ctb] Exposure time\n\t[Mythen3] Exposure time of all gate signals in auto and trigger mode (internal gating). To specify gate index, use exptime1, exptime2, exptime3." + help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger][Jungfrau][Moench][Gotthard2][Ctb][Xilinx Ctb] Exposure time\n\t[Mythen3] Exposure time of all gate signals in auto and trigger mode (internal gating). To specify gate index, use exptime1, exptime2, exptime3." actions: GET: function: getExptime @@ -2946,7 +2987,7 @@ readoutspeed: adcphase: infer_action: true - help: "[n_value] [(optional)deg]\n\t[Jungfrau][Moench][Ctb][Gotthard] Phase shift of ADC clock. \n\t[Jungfrau][Moench] Absolute phase shift. If deg used, then shift in degrees. Changing Speed also resets adcphase to recommended defaults.\n\t[Ctb] Absolute phase shift. If deg used, then shift in degrees. Changing adcclk also resets adcphase and sets it to previous values.\n\t[Gotthard] Relative phase shift. Cannot get" + help: "[n_value] [(optional)deg]\n\t[Jungfrau][Moench][Ctb] Phase shift of ADC clock. \n\t[Jungfrau][Moench] Absolute phase shift. If deg used, then shift in degrees. Changing Speed also resets adcphase to recommended defaults.\n\t[Ctb] Absolute phase shift. If deg used, then shift in degrees. Changing adcclk also resets adcphase and sets it to previous values." actions: GET: require_det_id: true @@ -3147,7 +3188,7 @@ maxclkphaseshift: function: getMaxClockPhaseShift clkdiv: - help: "[n_clock] [n_divider]\n\t[Gotthard2][Mythen3] Clock Divider of clock n_clock. Must be greater than 1.n\t[Gotthard2] Clock index range: 0-5\n\t[Mythen3] Clock index range: 0" + help: "[n_clock] [n_divider]\n\t[Gotthard2][Mythen3] Clock Divider of clock n_clock. Must be greater than 1.\n\t[Gotthard2] Clock index range: 0-5\n\t[Mythen3] Clock index range: 0" actions: GET: extra_variables: @@ -3182,7 +3223,7 @@ clkdiv: output: [ 'args[0]', "' '", 'args[1]' ] extsig: - help: "[n_signal] [signal_type]\n\t[Gotthard][Mythen3] External signal mode for trigger timing mode.\n\t[Gotthard] [0] [trigger_in_rising_edge|trigger_in_falling_edge]\n\t[Mythen3] [0-7] [trigger_in_rising_edge|trigger_in_falling_edge|inversion_on|inversion_off]\n\t where 0 is master input trigger signal, 1-3 is master input gate signals, 4 is busy out signal and 5-7 is master output gate signals." + help: "[n_signal] [signal_type]\n\t[Mythen3] External signal mode for trigger timing mode.\n\t[Mythen3] [0-7] [trigger_in_rising_edge|trigger_in_falling_edge|inversion_on|inversion_off]\n\t where 0 is master input trigger signal, 1-3 is master input gate signals, 4 is busy out signal and 5-7 is master output gate signals." actions: GET: argc: 1 @@ -3253,7 +3294,7 @@ dac: output: [ "args[0]", "' '", "args[1]", '" mV"' ] resetdacs: - help: "[(optional) hard] \n\t[Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Mythen3]Reset dac values to the defaults. A 'hard' optional reset will reset the dacs to the hardcoded defaults in on-board detector server." + help: "[(optional) hard] \n\t[Eiger][Jungfrau][Moench][Gotthard2][Mythen3]Reset dac values to the defaults. A 'hard' optional reset will reset the dacs to the hardcoded defaults in on-board detector server." actions: PUT: function: resetToDefaultDacs @@ -3429,7 +3470,7 @@ udp_dstlist: output: [ ToString(args) ] txdelay: - help: "[n_delay]\n\t[Eiger][Jungfrau][Moench][Mythen3] Set transmission delay for all modules in the detector using the step size provided.Sets up \n\t[Eiger] txdelay_left to (2 * mod_index * n_delay), \n\t[Eiger] txdelay_right to ((2 * mod_index + 1) * n_delay) and \n\t[Eiger] txdelay_frame to (2 *num_modules * n_delay)\n\t[Jungfrau][Moench][Mythen3] txdelay_frame to (num_modules * n_delay) for every module." + help: "[n_delay]\n\t[Eiger][Jungfrau][Moench][Mythen3] Set transmission delay for all modules in the detector using the step size provided.Sets up \n\t[Eiger] txdelay_left to (2 * mod_index * n_delay), \n\t[Eiger] txdelay_right to ((2 * mod_index + 1) * n_delay) and \n\t[Eiger] txdelay_frame to (2 * num_modules * n_delay)\n\t[Jungfrau][Moench][Mythen3] txdelay_frame to (num_modules * n_delay) for every module." actions: GET: argc: 0 @@ -3560,7 +3601,7 @@ temp_event: output: [ '"cleared"' ] pedestalmode: - help: " [frames] [loops]\n\t\t[Jungfrau] Enable pedestal mode. \n\t\tThe number of frames or triggers is overwritten by: \n\t\t(#pedestal_frames x #pedestal_loops x 2). \n\t\tIn auto timing mode or in trigger mode with #frames > 1, \n\t\t#frames is overwritten and #triggers = 1, \n\t\telse #triggers is overwritten and #frames = 1. \n\t\tOne cannot set #frames, #triggers or timing mode in pedestal mode (exception thrown).\n\npedestalmode [0]\n\t\t[Jungfrau] Disable pedestal mode.\n\t\tDisabling pedestal mode will set back the normal mode values of #frames and #triggers." + help: " [frames] [loops]\n\t\t[Jungfrau] Enable pedestal mode. \n\t\tThe number of frames or triggers is overwritten by: \n\t\t(#pedestal_frames x #pedestal_loops x 2). \n\t\tIn auto timing mode or in trigger mode with #frames > 1, \n\t\t#frames is overwritten and #triggers = 1, \n\t\telse #triggers is overwritten and #frames = 1. \n\t\tOne cannot set #frames, #triggers or timing mode in pedestal mode (exception thrown).\n\tpedestalmode [0]\n\t\t[Jungfrau] Disable pedestal mode.\n\t\tDisabling pedestal mode will set back the normal mode values of #frames and #triggers." actions: GET: argc: 0 @@ -3583,30 +3624,6 @@ pedestalmode: input_types: [ defs::pedestalParameters ] input: [ 'defs::pedestalParameters(StringTo(args[0]), StringTo(args[1]))' ] -roi: - help: "[xmin] [xmax] \n\t[Gotthard] Region of interest in detector.\n\tOptions: Only a single ROI per module. \n\tEither all channels or a single adc or 2 chips (256 channels). Default is all channels enabled (-1 -1). " - actions: - GET: - argc: 0 - require_det_id: true - function: getROI - output: [ t ] - PUT: - argc: 2 - exceptions: - - condition: 'det_id == -1 && det->size() > 1' - message: '"Cannot execute ROI at multi module level"' - require_det_id: true - convert_det_id: false - function: setROI - arg_types: [ int, int ] - extra_variables: - - name: t - type: defs::ROI - value: defs::ROI(StringTo(args[0]), StringTo(args[1])) - input: [ t ] - input_types: [ defs::ROI ] - output: [ 't' ] inj_ch: help: "[offset] [increment]\n\t[Gotthard2] Inject channels with current source for calibration. Offset is starting channel that is injected, increment determines succeeding channels to be injected." @@ -3627,7 +3644,7 @@ inj_ch: output: [ ToString(args) ] vetophoton: - help: "[ichip] [#photons] [energy in keV] [reference file]\n\t[Gotthard2] Set veto reference for 128 channels for chip ichip according to reference file and #photons and energy in keV.\n[ichip] [output file]\n\t Get gain indices and veto reference for 128 channels for chip ichip, saved to file." + help: "[ichip] [#photons] [energy in keV] [reference file]\n\t[Gotthard2] Set veto reference for 128 channels for chip ichip according to reference file and #photons and energy in keV.\n\t[ichip] [output file]\n\t Get gain indices and veto reference for 128 channels for chip ichip, saved to file." actions: GET: argc: 2 @@ -3874,8 +3891,7 @@ diodelay: cast_input: [ true, true ] output: [ ToString(args) ] -# pattern is a keyword in yaml, so patternX is used to avoid it -patternX: +pattern: help: "[fname]\n\t[Mythen3][Ctb][Xilinx Ctb] Loads ASCII pattern file directly to server (instead of executing line by line)" command_name: "pattern" actions: @@ -3884,8 +3900,8 @@ patternX: require_det_id: true function: setPattern input: [ 'args[0]' ] + arg_types: [special::path] input_types: [ std::string ] - cast_input: [ false ] output: [ 'args.front()' ] patword: @@ -3930,34 +3946,34 @@ patlimits: patloop: help: "[0-6] [start addr] [stop addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Limits of the loop level provided.\n\t[Mythen3] Level options: 0-3 only." + infer_action: false + pattern_command: patloop actions: GET: - argc: -1 - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 + argc: 1 require_det_id: true function: getPatternLoopAddresses + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" input: [ level ] input_types: [ int ] - cast_input: [ false ] output: [level,"' '" ,"OutStringHex(t, 4)" ] PUT: - argc: -1 - extra_variables: - - name: start - type: int - value: "StringTo(args[iArg++])" - - name: stop - type: int - value: "StringTo(args[iArg++])" - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 + argc: 3 require_det_id: true function: setPatternLoopAddresses + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" + - name: start + type: int + value: "StringTo(args[1])" + - name: stop + type: int + value: "StringTo(args[2])" input: [ level, start, stop ] input_types: [ int, int, int ] output: [level,"' '" , "'['" , "ToStringHex(start, 4)" , '", "' , "ToStringHex(stop, 4)", "']'" ] @@ -3979,34 +3995,33 @@ patloop2: patnloop: help: "[0-6] [n_cycles] \n\t[Ctb][Mythen3][Xilinx Ctb] Number of cycles of the loop level provided.\n\t[Mythen3] Level options: 0-3 only." + infer_action: false + pattern_command: patnloop actions: GET: - argc: -1 - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 + argc: 1 require_det_id: true function: getPatternLoopCycles + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" input: [ level ] input_types: [ int ] - cast_input: [ false ] output: [ level,"' '" , "OutString(t)" ] PUT: - argc: -1 - extra_variables: - - name: nloops - type: std::string - value: "args[iArg++]" - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 + argc: 2 require_det_id: true function: setPatternLoopCycles + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" + - name: nloops + type: int + value: "StringTo(args[1])" input: [ level, nloops ] input_types: [ int, int ] - cast_input: [ false, true ] output: [ level,"' '" , nloops ] patnloop0: @@ -4014,9 +4029,9 @@ patnloop0: inherit_actions: patnloop actions: GET: - output: [ "OutString(t)" ] + output: [ OutString(t) ] PUT: - output: [ "nloops" ] + output: [ nloops ] patnloop1: inherit_actions: patnloop0 @@ -4026,31 +4041,31 @@ patnloop2: patwait: help: "[0-6] [addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait address for loop level provided. \n\t[Mythen3] Level options: 0-3 only." + infer_action: false + pattern_command: patwait actions: GET: - argc: -1 - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 + argc: 1 require_det_id: true function: getPatternWaitAddr + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" input: [ level ] input_types: [ int ] - cast_input: [ false ] output: [level,"' '" , "OutStringHex(t, 4)" ] PUT: - argc: -1 - extra_variables: - - name: addr - type: int - value: "StringTo(args[iArg++])" - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 + argc: 2 require_det_id: true function: setPatternWaitAddr + extra_variables: + - name: level + type: int + value: "StringTo(args[0])" + - name: addr + type: int + value: "StringTo(args[1])" input: [ level, addr ] input_types: [ int, int ] output: [level,"' '" , "ToStringHex(addr, 4)" ] @@ -4070,52 +4085,6 @@ patwait1: patwait2: inherit_actions: patwait0 -patwaittime: - help: "[0-6] [n_clk] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles for the loop provided.\n\t[Mythen3] Level options: 0-3 only." - actions: - GET: - argc: -1 - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true - function: getPatternWaitTime - input: [ level ] - input_types: [ int ] - cast_input: [ false ] - output: [ level,"' '" , "OutString(t)" ] - PUT: - argc: -1 - extra_variables: - - name: waittime - type: uint64_t - value: "StringTo(args[iArg++])" - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true - function: setPatternWaitTime - input: [ level, waittime ] - input_types: [ int, int ] - output: [level,"' '" , "waittime" ] - -patwaittime0: - help: "\n\tDeprecated command. Use patwaittime." - inherit_actions: patwaittime - actions: - GET: - output: [ "OutString(t)" ] - PUT: - output: [ "waittime" ] - -patwaittime1: - inherit_actions: patwaittime0 - -patwaittime2: - inherit_actions: patwaittime0 - rx_jsonpara: help: "[key1] [value1]\n\t[Receiver] Additional json header parameter streamed out from receiver. If not found in header, the pair is appended. An empty values deletes parameter. Max 20 characters for each key/value." actions: @@ -4189,7 +4158,7 @@ updatekernel: output: [ '"successful"' ] update: - help: "\n\tWithout tftp: [server_name (incl fullpath)] [fname.pof (incl full path)] This does not use tftp.\n\t\t[Jungfrau][Moench][Gotthard][Ctb] Updates the firmware, detector server, deletes old server, creates the symbolic link and then reboots detector controller. \n\t\t[Mythen3][Gotthard2] will require a script to start up the shorter named server link at start up. \n\t\tserver_name is full path name of detector server binary\n\t\tfname is full path of programming file" + help: "\n\tWithout tftp: [server_name (incl fullpath)] [fname.pof (incl full path)] This does not use tftp.\n\t\t[Jungfrau][Moench][Ctb] Updates the firmware, detector server, deletes old server, creates the symbolic link and then reboots detector controller. \n\t\t[Mythen3][Gotthard2] will require a script to start up the shorter named server link at start up. \n\t\tserver_name is full path name of detector server binary\n\t\tfname is full path of programming file" actions: PUT: argc: 2 @@ -4234,7 +4203,7 @@ reg: cast_input: [ true, true, true ] adcreg: - help: "[address] [value]\n\t[Jungfrau][Moench][Ctb][Gotthard] Writes to an adc register in hex. Advanced user Function!" + help: "[address] [value]\n\t[Jungfrau][Moench][Ctb] Writes to an adc register in hex. Advanced user Function!" actions: PUT: argc: 2 @@ -4319,14 +4288,6 @@ initialchecks: cast_input: [ true ] output: [ args.front() ] -user: - help: "\n\tUser details from shared memory (hostname, type, PID, User, Date)." - actions: - GET: - argc: 0 - check_det_id: true - function: getUserDetails - output: [ t ] diff --git a/slsDetectorSoftware/generator/cpp_codegen/codegen.py b/slsDetectorSoftware/generator/cpp_codegen/codegen.py index ffb2c52e8..dc5e3294f 100644 --- a/slsDetectorSoftware/generator/cpp_codegen/codegen.py +++ b/slsDetectorSoftware/generator/cpp_codegen/codegen.py @@ -119,17 +119,11 @@ class CodeGenerator: def write_check_arg(self): pass + def write_arg(self, args, action, command_name): for arg in args: if arg['argc'] != -1: if_block(f'args.size() == {arg["argc"]}',).__enter__() - if 'pattern_command' in arg and arg['pattern_command']: - self.write_line(f'int level = -1, iArg = 0, ' - f'nGetArgs = {arg["pattern_command"]["nGetArgs"]},' - f' nPutArgs = {arg["pattern_command"]["nPutArgs"]};\nGetLevelAndUpdateArgIndex(action, ' - f'"{arg["pattern_command"]["command_name"]}", level, iArg, nGetArgs,nPutArgs);' - ) - if 'extra_variables' in arg: for var in arg['extra_variables']: codegen.write_line(f'{var["type"]} {var["name"]} = {var["value"]};') diff --git a/slsDetectorSoftware/generator/deprecated_commands.yaml b/slsDetectorSoftware/generator/deprecated_commands.yaml index 22788505d..febddeb58 100644 --- a/slsDetectorSoftware/generator/deprecated_commands.yaml +++ b/slsDetectorSoftware/generator/deprecated_commands.yaml @@ -54,13 +54,9 @@ vcn: dac vishaper: dac iodelay: dac vref_ds: dac -vcascn_pb: dac -vcascp_pb: dac vout_cm: dac -vcasc_out: dac vin_cm: dac vref_comp: dac -ib_test_c: dac vrshaper_n: dac vipre: dac vdcsh: dac @@ -151,7 +147,6 @@ storagecells: extrastoragecells auto_comp_disable: autocompdisable comp_disable_time: compdisabletime -#Gotthard Specific #Gotthard2 Specific #Mythen3 Specific #CTB Specific @@ -164,6 +159,7 @@ i_d: im_d i_io: im_io #Pattern +patternX: pattern #Moench #Advanced diff --git a/slsDetectorSoftware/generator/extended_commands.yaml b/slsDetectorSoftware/generator/extended_commands.yaml index 91e3b3a4a..a60a3aa26 100644 --- a/slsDetectorSoftware/generator/extended_commands.yaml +++ b/slsDetectorSoftware/generator/extended_commands.yaml @@ -106,7 +106,8 @@ adcclk: store_result_in_t: false command_name: adcclk function_alias: adcclk - help: "[n_clk in MHz]\n\t[Ctb] ADC clock frequency in MHz." + help: "[n_clk in MHz]\n\t[Ctb] ADC clock frequency in MHz.\n\t[xilinx Ctb] ADC clock\ + \ frequency in kHz." infer_action: true template: true adcenable: @@ -480,12 +481,11 @@ adcphase: store_result_in_t: false command_name: adcphase function_alias: adcphase - help: "[n_value] [(optional)deg]\n\t[Jungfrau][Moench][Ctb][Gotthard] Phase shift\ - \ of ADC clock. \n\t[Jungfrau][Moench] Absolute phase shift. If deg used, then\ - \ shift in degrees. Changing Speed also resets adcphase to recommended defaults.\n\ - \t[Ctb] Absolute phase shift. If deg used, then shift in degrees. Changing adcclk\ - \ also resets adcphase and sets it to previous values.\n\t[Gotthard] Relative\ - \ phase shift. Cannot get" + help: "[n_value] [(optional)deg]\n\t[Jungfrau][Moench][Ctb] Phase shift of ADC clock.\ + \ \n\t[Jungfrau][Moench] Absolute phase shift. If deg used, then shift in degrees.\ + \ Changing Speed also resets adcphase to recommended defaults.\n\t[Ctb] Absolute\ + \ phase shift. If deg used, then shift in degrees. Changing adcclk also resets\ + \ adcphase and sets it to previous values." infer_action: true adcpipeline: actions: @@ -552,8 +552,8 @@ adcreg: store_result_in_t: false command_name: adcreg function_alias: adcreg - help: "[address] [value]\n\t[Jungfrau][Moench][Ctb][Gotthard] Writes to an adc register\ - \ in hex. Advanced user Function!" + help: "[address] [value]\n\t[Jungfrau][Moench][Ctb] Writes to an adc register in\ + \ hex. Advanced user Function!" infer_action: true adcvpp: actions: @@ -762,10 +762,9 @@ autocompdisable: function_alias: autocompdisable help: "[0, 1]\n\t[Jungfrau] Auto comparator disable mode. By default, the on-chip\ \ gain switching is active during the entire exposure.This mode disables the on\ - \ - chip gain switching comparator automatically after 93.75% (only for chipv1.0)\ - \ of exposure time (only for longer than 100us). It is possible to set the duration\ - \ for chipv1.1 using compdisabletime command.\n\tDefault is 0 or this mode disabled(comparator\ - \ enabled throughout). 1 enables mode. 0 disables mode. " + \ - chip gain switching comparator automatically and the duration is set using\ + \ compdisabletime command.\n\tDefault is 0 or this mode disabled(comparator enabled\ + \ throughout). 1 enables mode. 0 disables mode. " infer_action: true template: true badchannels: @@ -1027,9 +1026,9 @@ bustest: store_result_in_t: false command_name: bustest function_alias: bustest - help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb] Bus test, ie. Writes\ - \ different values in a R/W register and confirms the writes to check bus.\n\t\ - Advanced User function!" + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb] Bus test, ie. Writes different\ + \ values in a R/W register and confirms the writes to check bus.\n\tAdvanced User\ + \ function!" infer_action: true template: true cdsgain: @@ -1187,28 +1186,6 @@ clearbusy: \ flag in shared memory before starting next acquisition" infer_action: true template: true -clearroi: - actions: - PUT: - args: - - arg_types: [] - argc: 0 - cast_input: [] - check_det_id: false - convert_det_id: true - function: clearROI - input: [] - input_types: [] - output: - - '"successful"' - require_det_id: true - store_result_in_t: false - command_name: clearroi - function_alias: clearroi - help: "\n\t[Gotthard] Resets Region of interest in detector. All channels enabled.\ - \ Default is all channels enabled." - infer_action: true - template: true clientversion: actions: GET: @@ -1292,7 +1269,7 @@ clkdiv: command_name: clkdiv function_alias: clkdiv help: "[n_clock] [n_divider]\n\t[Gotthard2][Mythen3] Clock Divider of clock n_clock.\ - \ Must be greater than 1.n\t[Gotthard2] Clock index range: 0-5\n\t[Mythen3] Clock\ + \ Must be greater than 1.\n\t[Gotthard2] Clock index range: 0-5\n\t[Mythen3] Clock\ \ index range: 0" infer_action: true clkfreq: @@ -1607,7 +1584,7 @@ compdisabletime: command_name: compdisabletime function_alias: compdisabletime help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Time before end of\ - \ exposure when comparator is disabled. It is only possible for chipv1.1." + \ exposure when comparator is disabled." infer_action: true template: true confadc: @@ -2243,7 +2220,8 @@ dbitclk: store_result_in_t: false command_name: dbitclk function_alias: dbitclk - help: "[n_clk in MHz]\n\t[Ctb] Clock for latching the digital bits in MHz." + help: "[n_clk in MHz]\n\t[Ctb] Clock for latching the digital bits in MHz.\n\t[xilinx\ + \ Ctb] Clock for latching the digital bits in kHz." infer_action: true template: true dbitphase: @@ -2599,7 +2577,7 @@ delay: store_result_in_t: false command_name: delay function_alias: delay - help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Moench][Xilinx\ + help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Moench][Xilinx\ \ Ctb] Delay after trigger" infer_action: true template: true @@ -2634,8 +2612,8 @@ delayl: store_result_in_t: true command_name: delayl function_alias: delayl - help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Delay\ - \ Left in Acquisition. \n\t[Gotthard2] only in continuous mode." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Delay Left in\ + \ Acquisition. \n\t[Gotthard2] only in continuous mode." infer_action: true template: true detectorserverversion: @@ -2807,7 +2785,7 @@ dr: function_alias: dr help: "[value]\n\tDynamic Range or number of bits per pixel in detector.\n\t[Eiger]\ \ Options: 4, 8, 12, 16, 32. If set to 32, also sets clkdivider to 2, else to\ - \ 0.\n\t[Mythen3] Options: 8, 16, 32\n\t[Jungfrau][Moench][Gotthard][Ctb][Mythen3][Gotthard2][Xilinx\ + \ 0.\n\t[Mythen3] Options: 8, 16, 32\n\t[Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx\ \ Ctb] 16" infer_action: true template: true @@ -2995,7 +2973,7 @@ exptime: store_result_in_t: false command_name: exptime function_alias: exptime - help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Ctb][Xilinx\ + help: "[duration] [(optional unit) ns|us|ms|s]\n\t[Eiger][Jungfrau][Moench][Gotthard2][Ctb][Xilinx\ \ Ctb] Exposure time\n\t[Mythen3] Exposure time of all gate signals in auto and\ \ trigger mode (internal gating). To specify gate index, use exptime1, exptime2,\ \ exptime3." @@ -3328,41 +3306,6 @@ exptime3: \ mode (internal gating)." infer_action: true template: true -exptimel: - actions: - GET: - args: - - arg_types: [] - argc: 0 - cast_input: [] - check_det_id: false - convert_det_id: true - function: getExptimeLeft - input: [] - input_types: [] - output: - - OutString(t) - require_det_id: true - store_result_in_t: true - - arg_types: - - special::time_unit - argc: 1 - cast_input: [] - check_det_id: false - convert_det_id: true - function: getExptimeLeft - input: [] - input_types: [] - output: - - OutString(t , args[0]) - require_det_id: true - store_result_in_t: true - command_name: exptimel - function_alias: exptimel - help: "[(optional unit) ns|us|ms|s]\n\t[Gotthard] Exposure time left for current\ - \ frame. " - infer_action: true - template: true extrastoragecells: actions: GET: @@ -3532,9 +3475,8 @@ extsig: store_result_in_t: false command_name: extsig function_alias: extsig - help: "[n_signal] [signal_type]\n\t[Gotthard][Mythen3] External signal mode for\ - \ trigger timing mode.\n\t[Gotthard] [0] [trigger_in_rising_edge|trigger_in_falling_edge]\n\ - \t[Mythen3] [0-7] [trigger_in_rising_edge|trigger_in_falling_edge|inversion_on|inversion_off]\n\ + help: "[n_signal] [signal_type]\n\t[Mythen3] External signal mode for trigger timing\ + \ mode.\n\t[Mythen3] [0-7] [trigger_in_rising_edge|trigger_in_falling_edge|inversion_on|inversion_off]\n\ \t where 0 is master input trigger signal, 1-3 is master input gate signals, 4\ \ is busy out signal and 5-7 is master output gate signals." infer_action: true @@ -3715,8 +3657,8 @@ firmwaretest: store_result_in_t: false command_name: firmwaretest function_alias: firmwaretest - help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Firmware\ - \ test, ie. reads a read fixed pattern from a register." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Firmware test,\ + \ ie. reads a read fixed pattern from a register." infer_action: true template: true firmwareversion: @@ -4076,8 +4018,8 @@ framesl: store_result_in_t: true command_name: framesl function_alias: framesl - help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number\ - \ of frames left in acquisition. \n\t[Gotthard2] only in continuous auto mode." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of frames\ + \ left in acquisition. \n\t[Gotthard2] only in continuous auto mode." infer_action: true template: true frametime: @@ -4848,8 +4790,8 @@ highvoltage: store_result_in_t: false command_name: highvoltage function_alias: highvoltage - help: "[n_value]\n\tHigh voltage to the sensor in Voltage. \n\t[Gotthard] [0|90|110|120|150|180|200]\ - \ \n\t[Eiger][Mythen3][Gotthard2] 0-200 \n\t[Jungfrau][Moench][Ctb] [0|60-200]" + help: "[n_value]\n\tHigh voltage to the sensor in Voltage. \n\t[Eiger][Mythen3][Gotthard2]\ + \ 0-200 \n\t[Jungfrau][Moench][Ctb] [0|60-200]" infer_action: true template: true hostname: @@ -5042,10 +4984,8 @@ imagetest: store_result_in_t: false command_name: imagetest function_alias: imagetest - help: "[0, 1]\n\t[Gotthard] 1 adds channel intensity with precalculated values when\ - \ taking an acquisition. Default is 0.\n\t[Eiger][Jungfrau][Moench] Only for Virtual\ - \ servers. If 0, each pixel intensity incremented by 1. If 1, all pixels almost\ - \ saturated." + help: "[0, 1]\n\t[Eiger][Jungfrau][Moench] Only for Virtual servers. If 0, each\ + \ pixel intensity incremented by 1. If 1, all pixels almost saturated." infer_action: true template: true initialchecks: @@ -5371,8 +5311,8 @@ master: command_name: master function_alias: master help: "[0, 1]\n\t[Eiger][Gotthard2][Jungfrau][Moench] Sets (half) module to master\ - \ and other(s) to slaves.\n\t[Gotthard][Gotthard2][Mythen3][Eiger][Jungfrau][Moench]\ - \ Gets if the current (half) module is master." + \ and other(s) to slaves.\n\t[Gotthard2][Mythen3][Eiger][Jungfrau][Moench] Gets\ + \ if the current (half) module is master." infer_action: true template: true maxadcphaseshift: @@ -5942,11 +5882,15 @@ patloop: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopAddresses input: - level @@ -5956,10 +5900,6 @@ patloop: - level - ''' ''' - OutStringHex(t, 4) - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: true PUT: @@ -5968,7 +5908,7 @@ patloop: - int - int - int - argc: -1 + argc: 3 cast_input: - false - false @@ -5976,12 +5916,15 @@ patloop: check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: start type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) - name: stop type: int - value: StringTo(args[iArg++]) + value: StringTo(args[2]) function: setPatternLoopAddresses input: - level @@ -5999,28 +5942,29 @@ patloop: - '", "' - ToStringHex(stop, 4) - ''']''' - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: false command_name: patloop function_alias: patloop help: "[0-6] [start addr] [stop addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Limits of the\ \ loop level provided.\n\t[Mythen3] Level options: 0-3 only." - infer_action: true + infer_action: false + pattern_command: patloop patloop0: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopAddresses input: - level @@ -6028,10 +5972,6 @@ patloop0: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: true PUT: @@ -6040,7 +5980,7 @@ patloop0: - int - int - int - argc: -1 + argc: 3 cast_input: - false - false @@ -6048,12 +5988,15 @@ patloop0: check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: start type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) - name: stop type: int - value: StringTo(args[iArg++]) + value: StringTo(args[2]) function: setPatternLoopAddresses input: - level @@ -6069,27 +6012,28 @@ patloop0: - '", "' - ToStringHex(stop, 4) - ''']''' - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: false command_name: patloop0 function_alias: patloop0 help: "\n\tDeprecated command. Use patloop." - infer_action: true + infer_action: false + pattern_command: patloop patloop1: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopAddresses input: - level @@ -6097,10 +6041,6 @@ patloop1: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: true PUT: @@ -6109,7 +6049,7 @@ patloop1: - int - int - int - argc: -1 + argc: 3 cast_input: - false - false @@ -6117,12 +6057,15 @@ patloop1: check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: start type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) - name: stop type: int - value: StringTo(args[iArg++]) + value: StringTo(args[2]) function: setPatternLoopAddresses input: - level @@ -6138,27 +6081,28 @@ patloop1: - '", "' - ToStringHex(stop, 4) - ''']''' - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: false command_name: patloop1 function_alias: patloop1 help: "\n\tDeprecated command. Use patloop." - infer_action: true + infer_action: false + pattern_command: patloop patloop2: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopAddresses input: - level @@ -6166,10 +6110,6 @@ patloop2: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: true PUT: @@ -6178,7 +6118,7 @@ patloop2: - int - int - int - argc: -1 + argc: 3 cast_input: - false - false @@ -6186,12 +6126,15 @@ patloop2: check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: start type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) - name: stop type: int - value: StringTo(args[iArg++]) + value: StringTo(args[2]) function: setPatternLoopAddresses input: - level @@ -6207,16 +6150,13 @@ patloop2: - '", "' - ToStringHex(stop, 4) - ''']''' - pattern_command: - command_name: patloop - nGetArgs: 0 - nPutArgs: 2 require_det_id: true store_result_in_t: false command_name: patloop2 function_alias: patloop2 help: "\n\tDeprecated command. Use patloop." - infer_action: true + infer_action: false + pattern_command: patloop patmask: actions: GET: @@ -6263,11 +6203,15 @@ patnloop: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopCycles input: - level @@ -6277,10 +6221,6 @@ patnloop: - level - ''' ''' - OutString(t) - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6288,16 +6228,19 @@ patnloop: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - - true + - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: nloops - type: std::string - value: args[iArg++] + type: int + value: StringTo(args[1]) function: setPatternLoopCycles input: - level @@ -6309,28 +6252,29 @@ patnloop: - level - ''' ''' - nloops - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patnloop function_alias: patnloop help: "[0-6] [n_cycles] \n\t[Ctb][Mythen3][Xilinx Ctb] Number of cycles of the loop\ \ level provided.\n\t[Mythen3] Level options: 0-3 only." - infer_action: true + infer_action: false + pattern_command: patnloop patnloop0: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopCycles input: - level @@ -6338,10 +6282,6 @@ patnloop0: - int output: - OutString(t) - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6349,16 +6289,19 @@ patnloop0: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - - true + - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: nloops - type: std::string - value: args[iArg++] + type: int + value: StringTo(args[1]) function: setPatternLoopCycles input: - level @@ -6368,27 +6311,28 @@ patnloop0: - int output: - nloops - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patnloop0 function_alias: patnloop0 help: "\n\tDeprecated command. Use patnloop." - infer_action: true + infer_action: false + pattern_command: patnloop patnloop1: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopCycles input: - level @@ -6396,10 +6340,6 @@ patnloop1: - int output: - OutString(t) - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6407,16 +6347,19 @@ patnloop1: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - - true + - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: nloops - type: std::string - value: args[iArg++] + type: int + value: StringTo(args[1]) function: setPatternLoopCycles input: - level @@ -6426,27 +6369,28 @@ patnloop1: - int output: - nloops - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patnloop1 function_alias: patnloop1 help: "\n\tDeprecated command. Use patnloop." - infer_action: true + infer_action: false + pattern_command: patnloop patnloop2: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternLoopCycles input: - level @@ -6454,10 +6398,6 @@ patnloop2: - int output: - OutString(t) - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6465,16 +6405,19 @@ patnloop2: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - - true + - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: nloops - type: std::string - value: args[iArg++] + type: int + value: StringTo(args[1]) function: setPatternLoopCycles input: - level @@ -6484,16 +6427,13 @@ patnloop2: - int output: - nloops - pattern_command: - command_name: patnloop - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patnloop2 function_alias: patnloop2 help: "\n\tDeprecated command. Use patnloop." - infer_action: true + infer_action: false + pattern_command: patnloop patsetbit: actions: GET: @@ -6534,12 +6474,12 @@ patsetbit: \ pattern to the selected bits." infer_action: true template: true -patternX: +pattern: actions: PUT: args: - arg_types: - - std::string + - special::path argc: 1 cast_input: - false @@ -6577,7 +6517,7 @@ patternstart: store_result_in_t: false command_name: patternstart function_alias: patternstart - help: "\n\t[Mythen3] Starts Pattern" + help: "\n\t[Mythen3][Ctb][Xilinx Ctb] Starts Pattern" infer_action: true template: true patwait: @@ -6586,11 +6526,15 @@ patwait: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternWaitAddr input: - level @@ -6600,10 +6544,6 @@ patwait: - level - ''' ''' - OutStringHex(t, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6611,16 +6551,19 @@ patwait: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: addr type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) function: setPatternWaitAddr input: - level @@ -6632,28 +6575,29 @@ patwait: - level - ''' ''' - ToStringHex(addr, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patwait function_alias: patwait help: "[0-6] [addr] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait address for loop level provided.\ \ \n\t[Mythen3] Level options: 0-3 only." - infer_action: true + infer_action: false + pattern_command: patwait patwait0: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternWaitAddr input: - level @@ -6661,10 +6605,6 @@ patwait0: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6672,16 +6612,19 @@ patwait0: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: addr type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) function: setPatternWaitAddr input: - level @@ -6691,27 +6634,28 @@ patwait0: - int output: - ToStringHex(addr, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patwait0 function_alias: patwait0 help: "\n\tDeprecated command. Use patwait." - infer_action: true + infer_action: false + pattern_command: patwait patwait1: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternWaitAddr input: - level @@ -6719,10 +6663,6 @@ patwait1: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6730,16 +6670,19 @@ patwait1: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: addr type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) function: setPatternWaitAddr input: - level @@ -6749,27 +6692,28 @@ patwait1: - int output: - ToStringHex(addr, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patwait1 function_alias: patwait1 help: "\n\tDeprecated command. Use patwait." - infer_action: true + infer_action: false + pattern_command: patwait patwait2: actions: GET: args: - arg_types: - int - argc: -1 + argc: 1 cast_input: - false check_det_id: false convert_det_id: true + extra_variables: + - name: level + type: int + value: StringTo(args[0]) function: getPatternWaitAddr input: - level @@ -6777,10 +6721,6 @@ patwait2: - int output: - OutStringHex(t, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: true PUT: @@ -6788,16 +6728,19 @@ patwait2: - arg_types: - int - int - argc: -1 + argc: 2 cast_input: - false - false check_det_id: false convert_det_id: true extra_variables: + - name: level + type: int + value: StringTo(args[0]) - name: addr type: int - value: StringTo(args[iArg++]) + value: StringTo(args[1]) function: setPatternWaitAddr input: - level @@ -6807,253 +6750,148 @@ patwait2: - int output: - ToStringHex(addr, 4) - pattern_command: - command_name: patwait - nGetArgs: 0 - nPutArgs: 1 require_det_id: true store_result_in_t: false command_name: patwait2 function_alias: patwait2 help: "\n\tDeprecated command. Use patwait." - infer_action: true + infer_action: false + pattern_command: patwait patwaittime: actions: GET: args: - - arg_types: - - int + - arg_types: [] argc: -1 - cast_input: - - false + cast_input: [] check_det_id: false convert_det_id: true - function: getPatternWaitTime - input: - - level - input_types: - - int - output: - - level - - ''' ''' - - OutString(t) - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: true PUT: args: - - arg_types: - - int - - int + - arg_types: [] argc: -1 - cast_input: - - false - - false + cast_input: [] check_det_id: false convert_det_id: true - extra_variables: - - name: waittime - type: uint64_t - value: StringTo(args[iArg++]) - function: setPatternWaitTime - input: - - level - - waittime - input_types: - - int - - int - output: - - level - - ''' ''' - - waittime - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: false command_name: patwaittime function_alias: patwaittime - help: "[0-6] [n_clk] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles for\ - \ the loop provided.\n\t[Mythen3] Level options: 0-3 only." + help: '' infer_action: true + is_description: true patwaittime0: actions: GET: args: - - arg_types: - - int + - arg_types: [] argc: -1 - cast_input: - - false + cast_input: [] check_det_id: false convert_det_id: true - function: getPatternWaitTime - input: - - level - input_types: - - int - output: - - OutString(t) - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: true PUT: args: - - arg_types: - - int - - int + - arg_types: [] argc: -1 - cast_input: - - false - - false + cast_input: [] check_det_id: false convert_det_id: true - extra_variables: - - name: waittime - type: uint64_t - value: StringTo(args[iArg++]) - function: setPatternWaitTime - input: - - level - - waittime - input_types: - - int - - int - output: - - waittime - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: false command_name: patwaittime0 - function_alias: patwaittime0 - help: "\n\tDeprecated command. Use patwaittime." + duplicate_function: true + function_alias: patwaittime + help: '' infer_action: true + is_description: true patwaittime1: actions: GET: args: - - arg_types: - - int + - arg_types: [] argc: -1 - cast_input: - - false + cast_input: [] check_det_id: false convert_det_id: true - function: getPatternWaitTime - input: - - level - input_types: - - int - output: - - OutString(t) - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: true PUT: args: - - arg_types: - - int - - int + - arg_types: [] argc: -1 - cast_input: - - false - - false + cast_input: [] check_det_id: false convert_det_id: true - extra_variables: - - name: waittime - type: uint64_t - value: StringTo(args[iArg++]) - function: setPatternWaitTime - input: - - level - - waittime - input_types: - - int - - int - output: - - waittime - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: false command_name: patwaittime1 - function_alias: patwaittime1 - help: "\n\tDeprecated command. Use patwaittime." + duplicate_function: true + function_alias: patwaittime + help: '' infer_action: true + is_description: true patwaittime2: actions: GET: args: - - arg_types: - - int + - arg_types: [] argc: -1 - cast_input: - - false + cast_input: [] check_det_id: false convert_det_id: true - function: getPatternWaitTime - input: - - level - input_types: - - int - output: - - OutString(t) - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: true PUT: args: - - arg_types: - - int - - int + - arg_types: [] argc: -1 - cast_input: - - false - - false + cast_input: [] check_det_id: false convert_det_id: true - extra_variables: - - name: waittime - type: uint64_t - value: StringTo(args[iArg++]) - function: setPatternWaitTime - input: - - level - - waittime - input_types: - - int - - int - output: - - waittime - pattern_command: - command_name: patwaittime - nGetArgs: 0 - nPutArgs: 1 - require_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false store_result_in_t: false command_name: patwaittime2 - function_alias: patwaittime2 - help: "\n\tDeprecated command. Use patwaittime." + duplicate_function: true + function_alias: patwaittime + help: '' infer_action: true + is_description: true patword: actions: GET: @@ -7171,7 +7009,7 @@ pedestalmode: \ x #pedestal_loops x 2). \n\t\tIn auto timing mode or in trigger mode with #frames\ \ > 1, \n\t\t#frames is overwritten and #triggers = 1, \n\t\telse #triggers is\ \ overwritten and #frames = 1. \n\t\tOne cannot set #frames, #triggers or timing\ - \ mode in pedestal mode (exception thrown).\n\npedestalmode [0]\n\t\t[Jungfrau]\ + \ mode in pedestal mode (exception thrown).\n\tpedestalmode [0]\n\t\t[Jungfrau]\ \ Disable pedestal mode.\n\t\tDisabling pedestal mode will set back the normal\ \ mode values of #frames and #triggers." infer_action: true @@ -7286,8 +7124,8 @@ periodl: store_result_in_t: true command_name: periodl function_alias: periodl - help: "\n\t[Gotthard][Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Period\ - \ left for current frame. \n\t[Gotthard2] only in continuous mode." + help: "\n\t[Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Period left for\ + \ current frame. \n\t[Gotthard2] only in continuous mode." infer_action: true template: true polarity: @@ -8023,8 +7861,8 @@ rebootcontroller: store_result_in_t: false command_name: rebootcontroller function_alias: rebootcontroller - help: "\n\t[Jungfrau][Moench][Ctb][Gotthard][Mythen3][Gotthard2][Xilinx Ctb] Reboot\ - \ controller of detector." + help: "\n\t[Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Reboot controller\ + \ of detector." infer_action: true template: true reg: @@ -8155,7 +7993,7 @@ resetdacs: store_result_in_t: false command_name: resetdacs function_alias: resetdacs - help: "[(optional) hard] \n\t[Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Mythen3]Reset\ + help: "[(optional) hard] \n\t[Eiger][Jungfrau][Moench][Gotthard2][Mythen3]Reset\ \ dac values to the defaults. A 'hard' optional reset will reset the dacs to the\ \ hardcoded defaults in on-board detector server." infer_action: true @@ -8180,54 +8018,6 @@ resetfpga: help: "\n\t[Jungfrau][Moench][Ctb][Xilinx Ctb] Reset FPGA." infer_action: true template: true -roi: - actions: - GET: - args: - - arg_types: [] - argc: 0 - cast_input: [] - check_det_id: false - convert_det_id: true - function: getROI - input: [] - input_types: [] - output: - - t - require_det_id: true - store_result_in_t: true - PUT: - args: - - arg_types: - - int - - int - argc: 2 - cast_input: - - false - check_det_id: false - convert_det_id: false - exceptions: - - condition: det_id == -1 && det->size() > 1 - message: '"Cannot execute ROI at multi module level"' - extra_variables: - - name: t - type: defs::ROI - value: defs::ROI(StringTo(args[0]), StringTo(args[1])) - function: setROI - input: - - t - input_types: - - defs::ROI - output: - - t - require_det_id: true - store_result_in_t: false - command_name: roi - function_alias: roi - help: "[xmin] [xmax] \n\t[Gotthard] Region of interest in detector.\n\tOptions:\ - \ Only a single ROI per module. \n\tEither all channels or a single adc or 2 chips\ - \ (256 channels). Default is all channels enabled (-1 -1). " - infer_action: true romode: actions: GET: @@ -8345,7 +8135,7 @@ runclk: store_result_in_t: false command_name: runclk function_alias: runclk - help: "[n_clk in MHz]\n\t[Ctb] Run clock in MHz." + help: "[n_clk in MHz]\n\t[Ctb] Run clock in MHz.\n\t[xilinx Ctb] Run clock in kHz." infer_action: true template: true runtime: @@ -8441,7 +8231,8 @@ rx_clearroi: store_result_in_t: false command_name: rx_clearroi function_alias: rx_clearroi - help: Resets Region of interest in receiver. Default is all channels/pixels enabled. + help: "\n\tResets Region of interest in receiver. Default is all channels/pixels\ + \ enabled." infer_action: true template: true rx_dbitlist: @@ -8516,6 +8307,48 @@ rx_dbitoffset: help: "[n_bytes]\n\t[Ctb] Offset in bytes in digital data to skip in receiver." infer_action: true template: true +rx_dbitreorder: + actions: + GET: + args: + - arg_types: [] + argc: 0 + cast_input: [] + check_det_id: false + convert_det_id: true + function: getRxDbitReorder + input: [] + input_types: [] + output: + - OutString(t) + require_det_id: true + store_result_in_t: true + PUT: + args: + - arg_types: + - bool + argc: 1 + cast_input: + - true + check_det_id: false + convert_det_id: true + function: setRxDbitReorder + input: + - args[0] + input_types: + - bool + output: + - args.front() + require_det_id: true + store_result_in_t: false + command_name: rx_dbitreorder + function_alias: rx_dbitreorder + help: "[0, 1]\n\t[Ctb] Reorder digital data such that it groups each signal (0-63)\ + \ from all the different samples together . Default is 1. Setting to 0 means 'do\ + \ not reorder' and to keep what the board spits out, which is that all signals\ + \ in a sample are grouped together." + infer_action: true + template: true rx_discardpolicy: actions: GET: @@ -9000,25 +8833,8 @@ rx_roi: store_result_in_t: true PUT: args: - - arg_types: - - int - - int - argc: 2 - cast_input: [] - check_det_id: false - convert_det_id: true - function: '' - input: [] - input_types: [] - output: [] - require_det_id: false - store_result_in_t: false - - arg_types: - - int - - int - - int - - int - argc: 4 + - arg_types: [] + argc: -1 cast_input: [] check_det_id: false convert_det_id: true @@ -9753,8 +9569,7 @@ serialnumber: store_result_in_t: true command_name: serialnumber function_alias: serialnumber - help: "\n\t[Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb]\n\tSerial number\ - \ of detector." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb]\n\tSerial number of detector." infer_action: true template: true setbit: @@ -9869,13 +9684,11 @@ settings: help: "[standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain,\ \ highgain0, fixgain1, fixgain2, forceswitchg1, forceswitchg2, verylowgain, g1_hg,\ \ g1_lg, g2_hc_hg, g2_hc_lg, g2_lc_hg, g2_lc_lg, g4_hg, g4_lg, gain0]\n\t Detector\ - \ Settings\n\t[Jungfrau] - [ gain0 | highgain0]\n\t[Gotthard] - [dynamicgain |\ - \ highgain | lowgain | mediumgain | veryhighgain]\n\t[Gotthard] Also loads default\ - \ dacs on to the detector.\n\t[Gotthard2] - [dynamicgain | fixgain1 | fixgain2]\n\ - \t[Mythen3] - [standard | fast | highgain] Also changes vrshaper and vrpreamp.\ - \ \n\t[Eiger] Use threshold or thresholdnotb. \n\t[Eiger] threshold and settings\ - \ loaded from file found in settingspath. \n\t[Moench] - [g1_hg | g1_lg | g2_hc_hg\ - \ | g2_hc_lg | g2_lc_hg | g2_lc_lg | g4_hg | g4_lg]" + \ Settings\n\t[Jungfrau] - [ gain0 | highgain0]\n\t[Gotthard2] - [dynamicgain\ + \ | fixgain1 | fixgain2]\n\t[Mythen3] - [standard | fast | highgain] Also changes\ + \ vrshaper and vrpreamp. \n\t[Eiger] Use threshold or thresholdnotb. \n\t[Eiger]\ + \ threshold and settings loaded from file found in settingspath. \n\t[Moench]\ + \ - [g1_hg | g1_lg | g2_hc_hg | g2_hc_lg | g2_lc_hg | g2_lc_lg | g4_hg | g4_lg]" infer_action: true template: true settingslist: @@ -10838,7 +10651,7 @@ temp_adc: store_result_in_t: true command_name: temp_adc function_alias: temp_adc - help: "[n_value]\n\t[Jungfrau][Moench][Gotthard] ADC Temperature" + help: "[n_value]\n\t[Jungfrau][Moench] ADC Temperature" infer_action: true template: true temp_control: @@ -10974,8 +10787,8 @@ temp_fpga: store_result_in_t: true command_name: temp_fpga function_alias: temp_fpga - help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Xilinx\ - \ CTB] FPGA Temperature" + help: "[n_value]\n\t[Eiger][Jungfrau][Moench][Mythen3][Gotthard2][Xilinx CTB] FPGA\ + \ Temperature" infer_action: true template: true temp_fpgaext: @@ -11445,9 +11258,9 @@ timing: store_result_in_t: false command_name: timing function_alias: timing - help: "[auto|trigger|gating|burst_trigger]\n\tTiming Mode of detector.\n\t[Jungfrau][Moench][Gotthard][Ctb][Gotthard2][Xilinx\ - \ Ctb] [auto|trigger]\n\t[Mythen3] [auto|trigger|gating|trigger_gating]\n\t[Eiger]\ - \ [auto|trigger|gating|burst_trigger]" + help: "[auto|trigger|gating|burst_trigger|trigger_gating]\n\tTiming Mode of detector.\n\ + \t[Jungfrau][Moench][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger]\n\t[Mythen3] [auto|trigger|gating|trigger_gating]\n\ + \t[Eiger] [auto|trigger|gating|burst_trigger]" infer_action: true template: true timing_info_decoder: @@ -11487,7 +11300,8 @@ timing_info_decoder: command_name: timing_info_decoder function_alias: timing_info_decoder help: "[swissfel|shine]\n\t[Jungfrau] Advanced Command and only for Swissfel and\ - \ Shine. Sets the bunch id or timing info decoder. Default is swissfel." + \ Shine. Sets the bunch id or timing info decoder. Default is swissfel. Only allowed\ + \ for pcbv2.0." infer_action: true template: true timinglist: @@ -11715,8 +11529,8 @@ triggersl: store_result_in_t: true command_name: triggersl function_alias: triggersl - help: "\n\t[Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number\ - \ of triggers left in acquisition. Only when external trigger used." + help: "\n\t[Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of triggers\ + \ left in acquisition. Only when external trigger used." infer_action: true template: true trimbits: @@ -11914,7 +11728,7 @@ txdelay: help: "[n_delay]\n\t[Eiger][Jungfrau][Moench][Mythen3] Set transmission delay for\ \ all modules in the detector using the step size provided.Sets up \n\t[Eiger]\ \ txdelay_left to (2 * mod_index * n_delay), \n\t[Eiger] txdelay_right to ((2\ - \ * mod_index + 1) * n_delay) and \n\t[Eiger] txdelay_frame to (2 *num_modules\ + \ * mod_index + 1) * n_delay) and \n\t[Eiger] txdelay_frame to (2 * num_modules\ \ * n_delay)\n\t[Jungfrau][Moench][Mythen3] txdelay_frame to (num_modules * n_delay)\ \ for every module." infer_action: true @@ -12061,8 +11875,8 @@ type: store_result_in_t: true command_name: type function_alias: type - help: "\n\tReturns detector type. Can be Eiger, Jungfrau, Gotthard, Moench, Mythen3,\ - \ Gotthard2, ChipTestBoard, Xilinx_ChipTestBoard" + help: "\n\tReturns detector type. Can be Eiger, Jungfrau, Moench, Mythen3, Gotthard2,\ + \ ChipTestBoard, Xilinx_ChipTestBoard" infer_action: true template: true udp_cleardst: @@ -12670,11 +12484,11 @@ update: command_name: update function_alias: update help: "\n\tWithout tftp: [server_name (incl fullpath)] [fname.pof (incl full path)]\ - \ This does not use tftp.\n\t\t[Jungfrau][Moench][Gotthard][Ctb] Updates the firmware,\ - \ detector server, deletes old server, creates the symbolic link and then reboots\ - \ detector controller. \n\t\t[Mythen3][Gotthard2] will require a script to start\ - \ up the shorter named server link at start up. \n\t\tserver_name is full path\ - \ name of detector server binary\n\t\tfname is full path of programming file" + \ This does not use tftp.\n\t\t[Jungfrau][Moench][Ctb] Updates the firmware, detector\ + \ server, deletes old server, creates the symbolic link and then reboots detector\ + \ controller. \n\t\t[Mythen3][Gotthard2] will require a script to start up the\ + \ shorter named server link at start up. \n\t\tserver_name is full path name of\ + \ detector server binary\n\t\tfname is full path of programming file" infer_action: true updatedetectorserver: actions: @@ -12778,19 +12592,32 @@ user: - arg_types: [] argc: 0 cast_input: [] - check_det_id: true + check_det_id: false convert_det_id: true - function: getUserDetails + function: '' input: [] input_types: [] - output: - - t + output: [] require_det_id: false store_result_in_t: true + PUT: + args: + - arg_types: [] + argc: 0 + cast_input: [] + check_det_id: false + convert_det_id: true + function: '' + input: [] + input_types: [] + output: [] + require_det_id: false + store_result_in_t: false command_name: user function_alias: user - help: "\n\tUser details from shared memory (hostname, type, PID, User, Date)." + help: '' infer_action: true + is_description: true v_a: actions: GET: @@ -13710,7 +13537,7 @@ vetophoton: function_alias: vetophoton help: "[ichip] [#photons] [energy in keV] [reference file]\n\t[Gotthard2] Set veto\ \ reference for 128 channels for chip ichip according to reference file and #photons\ - \ and energy in keV.\n[ichip] [output file]\n\t Get gain indices and veto reference\ + \ and energy in keV.\n\t[ichip] [output file]\n\t Get gain indices and veto reference\ \ for 128 channels for chip ichip, saved to file." infer_action: true vetoref: diff --git a/slsDetectorSoftware/generator/gen_commands.py b/slsDetectorSoftware/generator/gen_commands.py index cc1aedf09..ee4f97a8c 100644 --- a/slsDetectorSoftware/generator/gen_commands.py +++ b/slsDetectorSoftware/generator/gen_commands.py @@ -63,6 +63,11 @@ def generate( codegen.write_line(f'os << R"V0G0N({command["help"]} )V0G0N" << std::endl;') codegen.write_line('return os.str();') + + # inserting arguments if needed + if 'pattern_command' in command and command['pattern_command']: + codegen.write_line(f'GetLevelAndInsertIntoArgs("{command["pattern_command"]}");') + # check if action and arguments are valid codegen.write_line('// check if action and arguments are valid') diff --git a/slsDetectorSoftware/generator/readme.md b/slsDetectorSoftware/generator/readme.md index 2f8db837b..e86c4fad5 100644 --- a/slsDetectorSoftware/generator/readme.md +++ b/slsDetectorSoftware/generator/readme.md @@ -4,10 +4,36 @@ used to generate C++ cli commands. and bash autocompletion scripts. ### Overview + +If any changes to enums in slsDetectorDefs +```sh +# to generate the dump.json file +cd slsSupportLib/src +clang++ -Xclang -ast-dump=json -Xclang -ast-dump-filter -Xclang StringTo -c ToString.cpp -I ../include/ -std=gnu++11 > ../../slsDetectorSoftware/generator/autocomplete/dump.json +cd ../../slsDetectorSoftware/generator/autocomplete +python autocomplete.py -f +``` +To Generate command line commands +```sh +python gen_commands.py -pgf +``` +To generate autocomplete +```sh +python gen_commands.py -agf +source bash_autocomplete.sh +``` +Always clang-format at the end +```sh +cd slsDetectorPackage/build +make format +``` + +### Details Looks through the `dump.json` file for the different values of an enum and stores them in the dictionary `type_values`. ```sh # To print the different values for enums python gen_commands.py -a + ``` also the autocomplete.py generates shell autocompletion scripts for both bash and zsh. It uses the template file `bash_autocomplete.in.sh` and adds the necessary code in an output file `bash_autocomplete.sh` (same for zsh). @@ -29,6 +55,8 @@ The dump.json is the AST of the file `slsDetectorPackage/slsSupportLib/src/ToStr # to generate the dump.json file cd slsSupportLib/src clang++ -Xclang -ast-dump=json -Xclang -ast-dump-filter -Xclang StringTo -c ToString.cpp -I ../include/ -std=gnu++11 > ../../slsDetectorSoftware/generator/autocomplete/dump.json +cd ../../slsDetectorSoftware/generator/autocomplete +python autocomplete.py -f # clang version used: 14.0.0-1ubuntu1.1 ``` diff --git a/slsDetectorSoftware/include/sls/Detector.h b/slsDetectorSoftware/include/sls/Detector.h index 04abc8dba..2e70a0540 100644 --- a/slsDetectorSoftware/include/sls/Detector.h +++ b/slsDetectorSoftware/include/sls/Detector.h @@ -22,6 +22,10 @@ class IpAddr; // shm by mistake void freeSharedMemory(const int detectorIndex = 0, const int moduleIndex = -1); +// Free function to avoid dependence on class +// and get user details directly from shm +std::string getUserDetails(const int detectorIndex = 0); + /** * \class Detector */ @@ -65,7 +69,12 @@ class Detector { Result getHostname(Positions pos = {}) const; - /**Frees shared memory, adds detectors to the list. */ + /**Frees shared memory, adds detectors to the list. The row and column + * values in the udp/zmq header are affected by the order in this command + * and the setDetectorSize function. The modules are stacked row by row + * until they reach the y-axis limit set by detsize (if specified). Then, + * stacking continues in the next column and so on. This only affects row + * and column in udp/zmq header.*/ void setHostname(const std::vector &hostname); /** connects to n servers at local host starting at specific control port. @@ -92,7 +101,7 @@ class Detector { Result getKernelVersion(Positions pos = {}) const; - /* [Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][CTB] */ + /* [Jungfrau][Moench][Mythen3][Gotthard2][CTB] */ Result getSerialNumber(Positions pos = {}) const; /** [Eiger][Gotthard2][Mythen3][Jungfrau][Moench] 6 bit value (ideally @@ -101,7 +110,7 @@ class Detector { Result getReceiverVersion(Positions pos = {}) const; - /** Options: EIGER, JUNGFRAU, GOTTHARD, MOENCH, MYTHEN3, GOTTHARD2, + /** Options: EIGER, JUNGFRAU, MOENCH, MYTHEN3, GOTTHARD2, * CHIPTESTBOARD, XILINX_CHIPTESTBOARD */ Result getDetectorType(Positions pos = {}) const; @@ -114,6 +123,10 @@ class Detector { Result getModuleSize(Positions pos = {}) const; + defs::xy getPortPerModuleGeometry() const; + + Result getPortSize(Positions pos = {}) const; + /** Gets the actual full detector size. It is the same even if ROI changes */ defs::xy getDetectorSize() const; @@ -129,10 +142,10 @@ class Detector { /** list of possible settings for this detector */ std::vector getSettingsList() const; - /** [Jungfrau][Moench][Gotthard][Gotthard2][Mythen3] */ + /** [Jungfrau][Moench][Gotthard2][Mythen3] */ Result getSettings(Positions pos = {}) const; - /** [Jungfrau] GAIN0, HIGHGAIN0 \n [Gotthard] DYNAMICGAIN, HIGHGAIN, + /** [Jungfrau] GAIN0, HIGHGAIN0 \n DYNAMICGAIN, HIGHGAIN, * LOWGAIN, MEDIUMGAIN, VERYHIGHGAIN \n [Gotthard2] DYNAMICGAIN, * FIXGAIN1, FIXGAIN2 \n [Mythen3] STANDARD, FAST, * HIGHGAIN. Also changes vrshaper and vrpreamp \n [Eiger] Use threshold @@ -307,11 +320,11 @@ class Detector { void setNumberOfTriggers(int64_t value); - /** [Gotthard][Jungfrau][Moench][Eiger][CTB][Xilinx CTB][Gotthard2] \n + /** [Jungfrau][Moench][Eiger][CTB][Xilinx CTB][Gotthard2] \n * [Mythen3] use function with gate index **/ Result getExptime(Positions pos = {}) const; - /** [Gotthard][Jungfrau][Moench][Eiger][CTB][Xilinx CTB][Gotthard2] \n + /** [Jungfrau][Moench][Eiger][CTB][Xilinx CTB][Gotthard2] \n * [Mythen3] sets exptime for all gate signals. To specify gate index, use * function with gate index **/ void setExptime(ns t, Positions pos = {}); @@ -320,25 +333,25 @@ class Detector { void setPeriod(ns t, Positions pos = {}); - /** [Gotthard][Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx CTB] */ + /** [Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx CTB] */ Result getDelayAfterTrigger(Positions pos = {}) const; - /** [Gotthard][Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx CTB] */ + /** [Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx CTB] */ void setDelayAfterTrigger(ns value, Positions pos = {}); - /** [Gotthard][Jungfrau][Moench][CTB][Mythen3][Xilinx CTB] + /** [Jungfrau][Moench][CTB][Mythen3][Xilinx CTB] * [Gotthard2] only in continuous auto mode */ Result getNumberOfFramesLeft(Positions pos = {}) const; - /** [Gotthard][Jungfrau][Moench][CTB][Mythen3][Xilinx CTB] + /** [Jungfrau][Moench][CTB][Mythen3][Xilinx CTB] * Only when external trigger used */ Result getNumberOfTriggersLeft(Positions pos = {}) const; - /** [Gotthard][Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx CTB] + /** [Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx CTB] * [Gotthard2] only in continuous mode */ Result getPeriodLeft(Positions pos = {}) const; - /** [Gotthard][Jungfrau][Moench][CTB][Mythen3][Xilinx CTB] + /** [Jungfrau][Moench][CTB][Mythen3][Xilinx CTB] * [Gotthard2] only in continuous mode */ Result getDelayAfterTriggerLeft(Positions pos = {}) const; @@ -347,7 +360,7 @@ class Detector { /** * [Eiger] Options: 4, 8, 12, 16, 32. If i is 32, also sets clkdivider to 2, * else sets clkdivider to 1 \n [Mythen3] Options: 8, 16, 32 \n - * [Jungfrau][Moench][Gotthard][CTB][Mythen3][Gotthard2][Xilinx CTB] 16 + * [Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx CTB] 16 */ void setDynamicRange(int value); @@ -357,7 +370,7 @@ class Detector { Result getTimingMode(Positions pos = {}) const; /** - * [Gotthard][Jungfrau][Moench][Gotthard][CTB][Gotthard2][Xilinx CTB] + * [Jungfrau][Moench][CTB][Gotthard2][Xilinx CTB] * Options: AUTO_TIMING, TRIGGER_EXPOSURE \n [Mythen3] Options: AUTO_TIMING, * TRIGGER_EXPOSURE, GATED, TRIGGER_GATED \n [Eiger] Options: AUTO_TIMING, * TRIGGER_EXPOSURE, GATED, BURST_TRIGGER @@ -386,25 +399,23 @@ class Detector { /** [Jungfrau][Moench][CTB] */ Result getADCPhase(Positions pos = {}) const; - /** [Gotthard][Jungfrau][Moench][CTB] + /** [Jungfrau][Moench][CTB] * [Jungfrau][Moench] Absolute phase shift. Changing Speed also resets * adcphase to recommended defaults. \n [Ctb] Absolute phase shift. Changing - * adcclk also resets adcphase and sets it to previous values. \n [Gotthard] - * Relative phase shift + * adcclk also resets adcphase and sets it to previous values. */ void setADCPhase(int value, Positions pos = {}); /** [Jungfrau][Moench][CTB] */ Result getMaxADCPhaseShift(Positions pos = {}) const; - /** [Gotthard][Jungfrau][Moench][CTB] */ + /** [Jungfrau][Moench][CTB] */ Result getADCPhaseInDegrees(Positions pos = {}) const; - /** [Gotthard][Jungfrau][Moench][CTB] + /** [Jungfrau][Moench][CTB] * [Jungfrau][Moench] Absolute phase shift. Changing Speed also resets * adcphase to recommended defaults. \n [Ctb] Absolute phase shift. Changing - * adcclk also resets adcphase and sets it to previous values. \n [Gotthard] - * Relative phase shift + * adcclk also resets adcphase and sets it to previous values. */ void setADCPhaseInDegrees(int value, Positions pos = {}); @@ -457,7 +468,6 @@ class Detector { Result getHighVoltage(Positions pos = {}) const; /** - * [Gotthard] Options: 0, 90, 110, 120, 150, 180, 200 * [Jungfrau][Moench][CTB] Options: 0, 60 - 200 * [Eiger][Mythen3][Gotthard2] Options: 0 - 200 */ @@ -477,11 +487,10 @@ class Detector { */ void setPowerChip(bool on, Positions pos = {}); - /** [Gotthard][Eiger virtual] */ + /** [Eiger virtual] */ Result getImageTestMode(Positions pos = {}); - /** [Gotthard] If 1, adds channel intensity with precalculated values. - * Default is 0 \n + /** * [Eiger][Jungfrau][Moench] Only for virtual servers, if 1, pixels are * saturated. If 0, increasing intensity */ void setImageTestMode(const int value, Positions pos = {}); @@ -492,7 +501,6 @@ class Detector { /** * (Degrees) * [Mythen3][Gotthard2][Xilinx Ctb] Options: TEMPERATURE_FPGA - * [Gotthard] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA \n * [Jungfrau][Moench] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA \n * [Eiger] Options: TEMPERATURE_FPGA, TEMPERATURE_FPGAEXT, TEMPERATURE_10GE, * TEMPERATURE_DCDC, TEMPERATURE_SODL, TEMPERATURE_SODR, TEMPERATURE_FPGA2, @@ -503,10 +511,10 @@ class Detector { /** gets list of dac enums for this detector */ std::vector getDacList() const; - /** [Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Mythen3] */ + /** [Eiger][Jungfrau][Moench][Gotthard2][Mythen3] */ Result getDefaultDac(defs::dacIndex index, Positions pos = {}); - /** [Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Mythen3] */ + /** [Eiger][Jungfrau][Moench][Gotthard2][Mythen3] */ void setDefaultDac(defs::dacIndex index, int defaultValue, Positions pos = {}); @@ -518,7 +526,7 @@ class Detector { void setDefaultDac(defs::dacIndex index, int defaultValue, defs::detectorSettings sett, Positions pos = {}); - /** [Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Mythen3] + /** [Eiger][Jungfrau][Moench][Gotthard2][Mythen3] reset to defaults, hardReset will reset to hardcoded defaults on on-board server */ void resetToDefaultDacs(const bool hardReset, Positions pos = {}); @@ -537,13 +545,12 @@ class Detector { void setOnChipDAC(defs::dacIndex index, int chipIndex, int value, Positions pos = {}); - /** [Gotthard] signal index is 0 - * [Mythen3] signal index 0-3 for master input, 4-7 master output signals */ + /** [Mythen3] signal index 0-3 for master input, 4-7 master output signals + */ Result getExternalSignalFlags(int signalIndex, Positions pos = {}) const; - /** [Gotthard] signal index is 0 - * Options: TRIGGER_IN_RISING_EDGE, TRIGGER_IN_FALLING_EDGE + /** * [Mythen3] signal index 0 is master input trigger signal, 1-3 for master * input gate signals, 4 is busy out signal, 5-7 is master output gate * signals. @@ -711,7 +718,7 @@ class Detector { * restarts client and receiver zmq sockets if zmq streaming enabled. \n * [Gotthard2] second interface enabled to send veto information via 10Gbps * for debugging. By default, if veto enabled, it is sent via 2.5 gbps - * interface. */ + * interface. \nSetting this resets the receiver roi */ void setNumberofUDPInterfaces(int n, Positions pos = {}); /** [Jungfrau][Moench] */ @@ -986,13 +993,14 @@ class Detector { * every minute. Useful in 10G mode. */ void setRxArping(bool value, Positions pos = {}); - /** at module level */ - Result getIndividualRxROIs(Positions pos) const; + /** If module_id is -1, returns multi level ROIs. Else it returns port + * level ROIs. Max 2 ports and hence max 2 elements per readout */ + std::vector getRxROI(int module_id = -1) const; - defs::ROI getRxROI() const; - - /** only at multi module level without gap pixels */ - void setRxROI(const defs::ROI value); + /** only at multi module level without gap pixels. If more than 1 ROI per + * UDP port, it will throw. Setting number of udp interfaces will clear the + * roi. Cannot be set for CTB or Xilinx CTB */ + void setRxROI(const std::vector &args); void clearRxROI(); @@ -1304,11 +1312,9 @@ class Detector { * //TODO naming * By default, the on-chip gain switching is active during the * entire exposure. This mode disables the on-chip gain switching comparator - * automatically after 93.75% of exposure time (only for longer than 100us). - * The % is for chipv1.0. One can set the duration for chipv1.1 using - * setComparatorDisableTime\n Default is false or this mode - * disabled(comparator enabled throughout). true enables mode. 0 disables - * mode. + * automatically and the duration is set using setComparatorDisableTime\n + * Default is false or this mode disabled(comparator enabled throughout). + * true enables mode. 0 disables mode. */ void setAutoComparatorDisable(bool value, Positions pos = {}); @@ -1316,7 +1322,7 @@ class Detector { Result getComparatorDisableTime(Positions pos = {}) const; /** [Jungfrau] Time before end of exposure when comparator is - * disabled. It is only possible for chipv1.1.*/ + * disabled.*/ void setComparatorDisableTime(ns t, Positions pos = {}); /** [Jungfrau] Advanced TODO naming */ @@ -1382,7 +1388,7 @@ class Detector { Result getTimingInfoDecoder(Positions pos = {}) const; - /** [Jungfrau] Advanced Command! */ + /** [Jungfrau] Advanced Command! Only for pcb v2.0 */ void setTimingInfoDecoder(defs::timingInfoDecoder value, Positions pos = {}); @@ -1394,33 +1400,6 @@ class Detector { ///@} - /** @name Gotthard Specific */ - ///@{ - /************************************************** - * * - * Gotthard Specific * - * * - * ************************************************/ - - /** [Gotthard]*/ - Result getROI(Positions pos = {}) const; - - /** - * [Gotthard] Region of interest in detector \n - * Options: Only a single ROI per module \n - * Either all channels or a single adc or 2 chips (256 channels). Default is - * all channels enabled (-1 -1). \n module_id is position index - */ - void setROI(defs::ROI value, int module_id); - - /** [Gotthard] Clear ROI to all channels enabled. Default is all channels - * enabled. */ - void clearROI(Positions pos = {}); - - /** [Gotthard] */ - Result getExptimeLeft(Positions pos = {}) const; - ///@} - /** @name Gotthard2 Specific */ ///@{ /************************************************** @@ -1474,7 +1453,7 @@ class Detector { Positions pos = {}); /** [Gotthard2] */ - Result getBurstMode(Positions pos = {}); + Result getBurstMode(Positions pos = {}) const; /** [Gotthard2] BURST_INTERNAL (default), BURST_EXTERNAL, * CONTINUOUS_INTERNAL, CONTINUOUS_EXTERNAL. Also changes clkdiv 2, 3, 4 */ @@ -1633,16 +1612,16 @@ class Detector { /** [CTB] */ void setNumberOfAnalogSamples(int value, Positions pos = {}); - /** [CTB] */ + /** [CTB] in MHz, [XCTB] in kHz */ Result getADCClock(Positions pos = {}) const; - /** [CTB] */ + /** [CTB] in MHz, [XCTB] in kHz */ void setADCClock(int value_in_MHz, Positions pos = {}); - /** [CTB] */ + /** [CTB] in MHz, [XCTB] in kHz */ Result getRUNClock(Positions pos = {}) const; - /** [CTB] */ + /** [CTB] in MHz, [XCTB] in kHz */ void setRUNClock(int value_in_MHz, Positions pos = {}); /** [CTB] in MHZ */ @@ -1712,10 +1691,10 @@ class Detector { */ void setReadoutMode(defs::readoutMode value, Positions pos = {}); - /** [CTB] */ + /** [CTB] in MHz, [XCTB] in kHz */ Result getDBITClock(Positions pos = {}) const; - /** [CTB] */ + /** [CTB] in MHz, [XCTB] in kHz */ void setDBITClock(int value_in_MHz, Positions pos = {}); /** @@ -1749,7 +1728,8 @@ class Detector { Result> getRxDbitList(Positions pos = {}) const; /** [CTB] list contains the set of digital signal bits (0-63) to save, must - * be non repetitive */ + * be non repetitive. Note: data will be rearranged according to signal bits + */ void setRxDbitList(const std::vector &list, Positions pos = {}); /** [CTB] */ @@ -1758,6 +1738,16 @@ class Detector { /** [CTB] Set number of bytes of digital data to skip in the Receiver */ void setRxDbitOffset(int value, Positions pos = {}); + /** [CTB] */ + Result getRxDbitReorder(Positions pos = {}) const; + + /** [CTB] Reorder digital data such that it groups each signal (0-63) + * from all the different samples together. + * Default is true. Setting to false means 'do not reorder' and to keep what + * the board spits out, which is that all signals in a sample are grouped + * together */ + void setRxDbitReorder(bool reorder, Positions pos = {}); + /** * [CTB] Set Digital IO Delay * cannot get @@ -1929,10 +1919,15 @@ class Detector { void setPatternWaitAddr(int level, int addr, Positions pos = {}); /** [CTB][Mythen3][Xilinx CTB] */ - Result getPatternWaitTime(int level, Positions pos = {}) const; + Result getPatternWaitClocks(int level, Positions pos = {}) const; /** [CTB][Mythen3][Xilinx CTB] Options: level 0-2 */ - void setPatternWaitTime(int level, uint64_t t, Positions pos = {}); + void setPatternWaitClocks(int level, uint64_t t, Positions pos = {}); + + Result getPatternWaitInterval(int level, Positions pos = {}) const; + + /** [CTB][Mythen3][Xilinx CTB] Options: level 0-2 */ + void setPatternWaitInterval(int level, ns t, Positions pos = {}); /** [CTB][Mythen3][Xilinx CTB] */ Result getPatternMask(Positions pos = {}); @@ -1948,7 +1943,7 @@ class Detector { * selected bits */ void setPatternBitMask(uint64_t mask, Positions pos = {}); - /** [Mythen3] */ + /** [CTB][Mythen3][Xilinx CTB] */ void startPattern(Positions pos = {}); ///@} @@ -1997,7 +1992,7 @@ class Detector { /** [CTB][Moench] */ void setADCPipeline(int value, Positions pos = {}); - /** [Jungfrau][Moench][Gotthard][CTB][Mythen3][Gotthard2] + /** [Jungfrau][Moench][CTB][Mythen3][Gotthard2] * Advanced user Function! * Program firmware from command line, after which detector controller is * rebooted. forceDeleteNormalFile is true, if normal file found @@ -2026,12 +2021,12 @@ class Detector { */ void updateKernel(const std::string &fname, Positions pos = {}); - /** [Jungfrau][Moench][Gotthard][CTB][Mythen3][Gotthard2][Xilinx CTB] + /** [Jungfrau][Moench][CTB][Mythen3][Gotthard2][Xilinx CTB] * Advanced user Function! */ void rebootController(Positions pos = {}); /** - * Advanced user Function!\n [Jungfrau][Moench][Gotthard][CTB] Updates the + * Advanced user Function!\n [Jungfrau][Moench][CTB] Updates the * firmware, detector server, make a soft link and then reboots detector * controller. \n [Mythen3][Gotthard2] Will require a script to start up the * shorter named server link at start up \n sname is full path name of @@ -2071,16 +2066,16 @@ class Detector { /** Advanced user Function! */ Result getBit(uint32_t addr, int bitnr, Positions pos = {}); - /** [Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][CTB] Advanced user + /** [Jungfrau][Moench][Mythen3][Gotthard2][CTB] Advanced user * Function! */ void executeFirmwareTest(Positions pos = {}); - /** [Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][CTB] Advanced user + /** [Jungfrau][Moench][Mythen3][Gotthard2][CTB] Advanced user * Function! Writes different values in a R/W register and confirms the * writes to check bus */ void executeBusTest(Positions pos = {}); - /** [Gotthard][Jungfrau][Moench][CTB] Advanced user Function! not possible + /** [Jungfrau][Moench][CTB] Advanced user Function! not possible * to read back */ void writeAdcRegister(uint32_t addr, uint32_t value, Positions pos = {}); @@ -2146,10 +2141,6 @@ class Detector { * start [Gotthard2] not in burst and auto mode */ Result getMeasurementTime(Positions pos = {}) const; - /** get user details from shared memory (hostname, type, PID, User, Date) - */ - std::string getUserDetails() const; - ///@} private: diff --git a/slsDetectorSoftware/include/sls/Pattern.h b/slsDetectorSoftware/include/sls/Pattern.h index 6fa8665dd..90d6aae12 100644 --- a/slsDetectorSoftware/include/sls/Pattern.h +++ b/slsDetectorSoftware/include/sls/Pattern.h @@ -23,6 +23,7 @@ typedef struct __attribute__((packed)) { #ifdef __cplusplus class Pattern { patternParameters *pat = new patternParameters{}; + std::ostream &stream(std::ostream &os) const; public: Pattern(); @@ -34,7 +35,7 @@ class Pattern { patternParameters *data() const; size_t size() const noexcept { return sizeof(patternParameters); } void validate() const; - void load(const std::string &fname); + size_t load(const std::string &fname); void save(const std::string &fname); std::string str() const; }; diff --git a/slsDetectorSoftware/include/sls/detectorData.h b/slsDetectorSoftware/include/sls/detectorData.h index 33f983a66..c55906482 100644 --- a/slsDetectorSoftware/include/sls/detectorData.h +++ b/slsDetectorSoftware/include/sls/detectorData.h @@ -19,14 +19,6 @@ class detectorData { databytes(databytes), dynamicRange(dynamicRange), completeImage(completeImage){}; - detectorData(double progressIndex, std::string fileName, int nx, int ny, - char *data, int databytes, int dynamicRange, - uint64_t fileIndex, bool completeImage, - std::array rxRoi) - : progressIndex(progressIndex), fileName(fileName), - fileIndex(fileIndex), nx(nx), ny(ny), data(data), - databytes(databytes), dynamicRange(dynamicRange), - completeImage(completeImage), rxRoi(rxRoi){}; /** * data has to be deleted by caller */ @@ -62,7 +54,6 @@ class detectorData { int databytes; int dynamicRange; bool completeImage; - std::array rxRoi{{-1, -1, -1, -1}}; }; } // namespace sls diff --git a/slsDetectorSoftware/src/Caller.cpp b/slsDetectorSoftware/src/Caller.cpp index d1ea4d30f..292b881f8 100644 --- a/slsDetectorSoftware/src/Caller.cpp +++ b/slsDetectorSoftware/src/Caller.cpp @@ -73,7 +73,8 @@ std::string Caller::adcclk(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_clk in MHz] - [Ctb] ADC clock frequency in MHz. )V0G0N" + [Ctb] ADC clock frequency in MHz. + [xilinx Ctb] ADC clock frequency in kHz. )V0G0N" << std::endl; return os.str(); } @@ -532,10 +533,9 @@ std::string Caller::adcphase(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_value] [(optional)deg] - [Jungfrau][Moench][Ctb][Gotthard] Phase shift of ADC clock. + [Jungfrau][Moench][Ctb] Phase shift of ADC clock. [Jungfrau][Moench] Absolute phase shift. If deg used, then shift in degrees. Changing Speed also resets adcphase to recommended defaults. - [Ctb] Absolute phase shift. If deg used, then shift in degrees. Changing adcclk also resets adcphase and sets it to previous values. - [Gotthard] Relative phase shift. Cannot get )V0G0N" + [Ctb] Absolute phase shift. If deg used, then shift in degrees. Changing adcclk also resets adcphase and sets it to previous values. )V0G0N" << std::endl; return os.str(); } @@ -725,7 +725,7 @@ std::string Caller::adcreg(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([address] [value] - [Jungfrau][Moench][Ctb][Gotthard] Writes to an adc register in hex. Advanced user Function! )V0G0N" + [Jungfrau][Moench][Ctb] Writes to an adc register in hex. Advanced user Function! )V0G0N" << std::endl; return os.str(); } @@ -1018,7 +1018,7 @@ std::string Caller::autocompdisable(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([0, 1] - [Jungfrau] Auto comparator disable mode. By default, the on-chip gain switching is active during the entire exposure.This mode disables the on - chip gain switching comparator automatically after 93.75% (only for chipv1.0) of exposure time (only for longer than 100us). It is possible to set the duration for chipv1.1 using compdisabletime command. + [Jungfrau] Auto comparator disable mode. By default, the on-chip gain switching is active during the entire exposure.This mode disables the on - chip gain switching comparator automatically and the duration is set using compdisabletime command. Default is 0 or this mode disabled(comparator enabled throughout). 1 enables mode. 0 disables mode. )V0G0N" << std::endl; return os.str(); @@ -1318,7 +1318,7 @@ std::string Caller::bustest(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb] Bus test, ie. Writes different values in a R/W register and confirms the writes to check bus. + [Jungfrau][Moench][Mythen3][Gotthard2][Ctb] Bus test, ie. Writes different values in a R/W register and confirms the writes to check bus. Advanced User function! )V0G0N" << std::endl; return os.str(); @@ -1589,45 +1589,6 @@ std::string Caller::clearbusy(int action) { return os.str(); } -std::string Caller::clearroi(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N( - [Gotthard] Resets Region of interest in detector. All channels enabled. Default is all channels enabled. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::PUT_ACTION) { - if (1 && args.size() != 0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - if (args.size() == 0) { - } - - } - - else { - - throw RuntimeError( - "INTERNAL ERROR: Invalid action: supported actions are ['PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::PUT_ACTION) { - if (args.size() == 0) { - det->clearROI(std::vector{det_id}); - os << "successful" << '\n'; - } - } - - return os.str(); -} - std::string Caller::clientversion(int action) { std::ostringstream os; @@ -1673,7 +1634,8 @@ std::string Caller::clkdiv(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_clock] [n_divider] - [Gotthard2][Mythen3] Clock Divider of clock n_clock. Must be greater than 1.n [Gotthard2] Clock index range: 0-5 + [Gotthard2][Mythen3] Clock Divider of clock n_clock. Must be greater than 1. + [Gotthard2] Clock index range: 0-5 [Mythen3] Clock index range: 0 )V0G0N" << std::endl; return os.str(); @@ -2107,7 +2069,7 @@ std::string Caller::compdisabletime(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([duration] [(optional unit) ns|us|ms|s] - [Jungfrau] Time before end of exposure when comparator is disabled. It is only possible for chipv1.1. )V0G0N" + [Jungfrau] Time before end of exposure when comparator is disabled. )V0G0N" << std::endl; return os.str(); } @@ -2844,7 +2806,8 @@ std::string Caller::dbitclk(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_clk in MHz] - [Ctb] Clock for latching the digital bits in MHz. )V0G0N" + [Ctb] Clock for latching the digital bits in MHz. + [xilinx Ctb] Clock for latching the digital bits in kHz. )V0G0N" << std::endl; return os.str(); } @@ -3265,7 +3228,7 @@ std::string Caller::delay(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([duration] [(optional unit) ns|us|ms|s] - [Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Moench][Xilinx Ctb] Delay after trigger )V0G0N" + [Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Moench][Xilinx Ctb] Delay after trigger )V0G0N" << std::endl; return os.str(); } @@ -3353,7 +3316,7 @@ std::string Caller::delayl(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Delay Left in Acquisition. + [Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Delay Left in Acquisition. [Gotthard2] only in continuous mode. )V0G0N" << std::endl; return os.str(); @@ -3614,7 +3577,7 @@ std::string Caller::dr(int action) { Dynamic Range or number of bits per pixel in detector. [Eiger] Options: 4, 8, 12, 16, 32. If set to 32, also sets clkdivider to 2, else to 0. [Mythen3] Options: 8, 16, 32 - [Jungfrau][Moench][Gotthard][Ctb][Mythen3][Gotthard2][Xilinx Ctb] 16 )V0G0N" + [Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] 16 )V0G0N" << std::endl; return os.str(); } @@ -3780,7 +3743,7 @@ std::string Caller::exptime(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([duration] [(optional unit) ns|us|ms|s] - [Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Ctb][Xilinx Ctb] Exposure time + [Eiger][Jungfrau][Moench][Gotthard2][Ctb][Xilinx Ctb] Exposure time [Mythen3] Exposure time of all gate signals in auto and trigger mode (internal gating). To specify gate index, use exptime1, exptime2, exptime3. )V0G0N" << std::endl; return os.str(); @@ -4174,53 +4137,6 @@ std::string Caller::exptime3(int action) { return os.str(); } -std::string Caller::exptimel(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([(optional unit) ns|us|ms|s] - [Gotthard] Exposure time left for current frame. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (1 && args.size() != 0 && args.size() != 1) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - if (args.size() == 0) { - } - - if (args.size() == 1) { - } - - } - - else { - - throw RuntimeError( - "INTERNAL ERROR: Invalid action: supported actions are ['GET']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - if (args.size() == 0) { - auto t = det->getExptimeLeft(std::vector{det_id}); - os << OutString(t) << '\n'; - } - - if (args.size() == 1) { - auto t = det->getExptimeLeft(std::vector{det_id}); - os << OutString(t, args[0]) << '\n'; - } - } - - return os.str(); -} - std::string Caller::extrastoragecells(int action) { std::ostringstream os; @@ -4419,8 +4335,7 @@ std::string Caller::extsig(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_signal] [signal_type] - [Gotthard][Mythen3] External signal mode for trigger timing mode. - [Gotthard] [0] [trigger_in_rising_edge|trigger_in_falling_edge] + [Mythen3] External signal mode for trigger timing mode. [Mythen3] [0-7] [trigger_in_rising_edge|trigger_in_falling_edge|inversion_on|inversion_off] where 0 is master input trigger signal, 1-3 is master input gate signals, 4 is busy out signal and 5-7 is master output gate signals. )V0G0N" << std::endl; @@ -4748,7 +4663,7 @@ std::string Caller::firmwaretest(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Firmware test, ie. reads a read fixed pattern from a register. )V0G0N" + [Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Firmware test, ie. reads a read fixed pattern from a register. )V0G0N" << std::endl; return os.str(); } @@ -5314,7 +5229,7 @@ std::string Caller::framesl(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of frames left in acquisition. + [Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of frames left in acquisition. [Gotthard2] only in continuous auto mode. )V0G0N" << std::endl; return os.str(); @@ -6141,7 +6056,6 @@ std::string Caller::highvoltage(int action) { if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_value] High voltage to the sensor in Voltage. - [Gotthard] [0|90|110|120|150|180|200] [Eiger][Mythen3][Gotthard2] 0-200 [Jungfrau][Moench][Ctb] [0|60-200] )V0G0N" << std::endl; @@ -6405,7 +6319,6 @@ std::string Caller::imagetest(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([0, 1] - [Gotthard] 1 adds channel intensity with precalculated values when taking an acquisition. Default is 0. [Eiger][Jungfrau][Moench] Only for Virtual servers. If 0, each pixel intensity incremented by 1. If 1, all pixels almost saturated. )V0G0N" << std::endl; return os.str(); @@ -6934,7 +6847,7 @@ std::string Caller::master(int action) { if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([0, 1] [Eiger][Gotthard2][Jungfrau][Moench] Sets (half) module to master and other(s) to slaves. - [Gotthard][Gotthard2][Mythen3][Eiger][Jungfrau][Moench] Gets if the current (half) module is master. )V0G0N" + [Gotthard2][Mythen3][Eiger][Jungfrau][Moench] Gets if the current (half) module is master. )V0G0N" << std::endl; return os.str(); } @@ -7858,19 +7771,30 @@ std::string Caller::patloop(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 3) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + } + } else { @@ -7881,23 +7805,24 @@ std::string Caller::patloop(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopAddresses(level, std::vector{det_id}); - os << level << ' ' << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = + det->getPatternLoopAddresses(level, std::vector{det_id}); + os << level << ' ' << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - int start = StringTo(args[iArg++]); - int stop = StringTo(args[iArg++]); - det->setPatternLoopAddresses(level, start, stop, - std::vector{det_id}); - os << level << ' ' << '[' << ToStringHex(start, 4) << ", " - << ToStringHex(stop, 4) << ']' << '\n'; + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + det->setPatternLoopAddresses(level, start, stop, + std::vector{det_id}); + os << level << ' ' << '[' << ToStringHex(start, 4) << ", " + << ToStringHex(stop, 4) << ']' << '\n'; + } } return os.str(); @@ -7914,19 +7839,30 @@ std::string Caller::patloop0(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 3) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + } + } else { @@ -7937,23 +7873,24 @@ std::string Caller::patloop0(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopAddresses(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = + det->getPatternLoopAddresses(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - int start = StringTo(args[iArg++]); - int stop = StringTo(args[iArg++]); - det->setPatternLoopAddresses(level, start, stop, - std::vector{det_id}); - os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) - << ']' << '\n'; + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + det->setPatternLoopAddresses(level, start, stop, + std::vector{det_id}); + os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) + << ']' << '\n'; + } } return os.str(); @@ -7970,19 +7907,30 @@ std::string Caller::patloop1(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 3) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + } + } else { @@ -7993,23 +7941,24 @@ std::string Caller::patloop1(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopAddresses(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = + det->getPatternLoopAddresses(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - int start = StringTo(args[iArg++]); - int stop = StringTo(args[iArg++]); - det->setPatternLoopAddresses(level, start, stop, - std::vector{det_id}); - os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) - << ']' << '\n'; + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + det->setPatternLoopAddresses(level, start, stop, + std::vector{det_id}); + os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) + << ']' << '\n'; + } } return os.str(); @@ -8026,19 +7975,30 @@ std::string Caller::patloop2(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 3) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + } + } else { @@ -8049,23 +8009,24 @@ std::string Caller::patloop2(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopAddresses(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = + det->getPatternLoopAddresses(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 2; - GetLevelAndUpdateArgIndex(action, "patloop", level, iArg, nGetArgs, - nPutArgs); - int start = StringTo(args[iArg++]); - int stop = StringTo(args[iArg++]); - det->setPatternLoopAddresses(level, start, stop, - std::vector{det_id}); - os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) - << ']' << '\n'; + if (args.size() == 3) { + int level = StringTo(args[0]); + int start = StringTo(args[1]); + int stop = StringTo(args[2]); + det->setPatternLoopAddresses(level, start, stop, + std::vector{det_id}); + os << '[' << ToStringHex(start, 4) << ", " << ToStringHex(stop, 4) + << ']' << '\n'; + } } return os.str(); @@ -8145,19 +8106,29 @@ std::string Caller::patnloop(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patnloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + } + } else { @@ -8168,21 +8139,20 @@ std::string Caller::patnloop(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopCycles(level, std::vector{det_id}); - os << level << ' ' << OutString(t) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternLoopCycles(level, std::vector{det_id}); + os << level << ' ' << OutString(t) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - std::string nloops = args[iArg++]; - auto arg1 = StringTo(nloops); - det->setPatternLoopCycles(level, arg1, std::vector{det_id}); - os << level << ' ' << nloops << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + det->setPatternLoopCycles(level, nloops, std::vector{det_id}); + os << level << ' ' << nloops << '\n'; + } } return os.str(); @@ -8199,19 +8169,29 @@ std::string Caller::patnloop0(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patnloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + } + } else { @@ -8222,21 +8202,20 @@ std::string Caller::patnloop0(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopCycles(level, std::vector{det_id}); - os << OutString(t) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternLoopCycles(level, std::vector{det_id}); + os << OutString(t) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - std::string nloops = args[iArg++]; - auto arg1 = StringTo(nloops); - det->setPatternLoopCycles(level, arg1, std::vector{det_id}); - os << nloops << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + det->setPatternLoopCycles(level, nloops, std::vector{det_id}); + os << nloops << '\n'; + } } return os.str(); @@ -8253,19 +8232,29 @@ std::string Caller::patnloop1(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patnloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + } + } else { @@ -8276,21 +8265,20 @@ std::string Caller::patnloop1(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopCycles(level, std::vector{det_id}); - os << OutString(t) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternLoopCycles(level, std::vector{det_id}); + os << OutString(t) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - std::string nloops = args[iArg++]; - auto arg1 = StringTo(nloops); - det->setPatternLoopCycles(level, arg1, std::vector{det_id}); - os << nloops << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + det->setPatternLoopCycles(level, nloops, std::vector{det_id}); + os << nloops << '\n'; + } } return os.str(); @@ -8307,19 +8295,29 @@ std::string Caller::patnloop2(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patnloop"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + } + } else { @@ -8330,21 +8328,20 @@ std::string Caller::patnloop2(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternLoopCycles(level, std::vector{det_id}); - os << OutString(t) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternLoopCycles(level, std::vector{det_id}); + os << OutString(t) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patnloop", level, iArg, nGetArgs, - nPutArgs); - std::string nloops = args[iArg++]; - auto arg1 = StringTo(nloops); - det->setPatternLoopCycles(level, arg1, std::vector{det_id}); - os << nloops << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int nloops = StringTo(args[1]); + det->setPatternLoopCycles(level, nloops, std::vector{det_id}); + os << nloops << '\n'; + } } return os.str(); @@ -8457,7 +8454,7 @@ std::string Caller::patternstart(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Mythen3] Starts Pattern )V0G0N" + [Mythen3][Xilinx Ctb] Starts Pattern )V0G0N" << std::endl; return os.str(); } @@ -8502,19 +8499,29 @@ std::string Caller::patwait(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patwait"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + } + } else { @@ -8525,20 +8532,20 @@ std::string Caller::patwait(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitAddr(level, std::vector{det_id}); - os << level << ' ' << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternWaitAddr(level, std::vector{det_id}); + os << level << ' ' << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - int addr = StringTo(args[iArg++]); - det->setPatternWaitAddr(level, addr, std::vector{det_id}); - os << level << ' ' << ToStringHex(addr, 4) << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + det->setPatternWaitAddr(level, addr, std::vector{det_id}); + os << level << ' ' << ToStringHex(addr, 4) << '\n'; + } } return os.str(); @@ -8555,19 +8562,29 @@ std::string Caller::patwait0(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patwait"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + } + } else { @@ -8578,20 +8595,20 @@ std::string Caller::patwait0(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitAddr(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternWaitAddr(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - int addr = StringTo(args[iArg++]); - det->setPatternWaitAddr(level, addr, std::vector{det_id}); - os << ToStringHex(addr, 4) << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + det->setPatternWaitAddr(level, addr, std::vector{det_id}); + os << ToStringHex(addr, 4) << '\n'; + } } return os.str(); @@ -8608,19 +8625,29 @@ std::string Caller::patwait1(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patwait"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + } + } else { @@ -8631,20 +8658,20 @@ std::string Caller::patwait1(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitAddr(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternWaitAddr(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - int addr = StringTo(args[iArg++]); - det->setPatternWaitAddr(level, addr, std::vector{det_id}); - os << ToStringHex(addr, 4) << '\n'; + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + det->setPatternWaitAddr(level, addr, std::vector{det_id}); + os << ToStringHex(addr, 4) << '\n'; + } } return os.str(); @@ -8661,19 +8688,29 @@ std::string Caller::patwait2(int action) { return os.str(); } + GetLevelAndInsertIntoArgs("patwait"); // check if action and arguments are valid if (action == slsDetectorDefs::GET_ACTION) { - if (0) { + if (1 && args.size() != 1) { throw RuntimeError("Wrong number of arguments for action GET"); } + if (args.size() == 1) { + int level = StringTo(args[0]); + } + } else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { + if (1 && args.size() != 2) { throw RuntimeError("Wrong number of arguments for action PUT"); } + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + } + } else { @@ -8684,233 +8721,20 @@ std::string Caller::patwait2(int action) { // generate code for each action if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitAddr(level, std::vector{det_id}); - os << OutStringHex(t, 4) << '\n'; + if (args.size() == 1) { + int level = StringTo(args[0]); + auto t = det->getPatternWaitAddr(level, std::vector{det_id}); + os << OutStringHex(t, 4) << '\n'; + } } if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwait", level, iArg, nGetArgs, - nPutArgs); - int addr = StringTo(args[iArg++]); - det->setPatternWaitAddr(level, addr, std::vector{det_id}); - os << ToStringHex(addr, 4) << '\n'; - } - - return os.str(); -} - -std::string Caller::patwaittime(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([0-6] [n_clk] - [Ctb][Mythen3][Xilinx Ctb] Wait time in clock cycles for the loop provided. - [Mythen3] Level options: 0-3 only. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action GET"); + if (args.size() == 2) { + int level = StringTo(args[0]); + int addr = StringTo(args[1]); + det->setPatternWaitAddr(level, addr, std::vector{det_id}); + os << ToStringHex(addr, 4) << '\n'; } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitTime(level, std::vector{det_id}); - os << level << ' ' << OutString(t) << '\n'; - } - - if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - uint64_t waittime = StringTo(args[iArg++]); - det->setPatternWaitTime(level, waittime, std::vector{det_id}); - os << level << ' ' << waittime << '\n'; - } - - return os.str(); -} - -std::string Caller::patwaittime0(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N( - Deprecated command. Use patwaittime. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitTime(level, std::vector{det_id}); - os << OutString(t) << '\n'; - } - - if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - uint64_t waittime = StringTo(args[iArg++]); - det->setPatternWaitTime(level, waittime, std::vector{det_id}); - os << waittime << '\n'; - } - - return os.str(); -} - -std::string Caller::patwaittime1(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N( - Deprecated command. Use patwaittime. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitTime(level, std::vector{det_id}); - os << OutString(t) << '\n'; - } - - if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - uint64_t waittime = StringTo(args[iArg++]); - det->setPatternWaitTime(level, waittime, std::vector{det_id}); - os << waittime << '\n'; - } - - return os.str(); -} - -std::string Caller::patwaittime2(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N( - Deprecated command. Use patwaittime. )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (0) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - auto t = det->getPatternWaitTime(level, std::vector{det_id}); - os << OutString(t) << '\n'; - } - - if (action == slsDetectorDefs::PUT_ACTION) { - int level = -1, iArg = 0, nGetArgs = 0, nPutArgs = 1; - GetLevelAndUpdateArgIndex(action, "patwaittime", level, iArg, nGetArgs, - nPutArgs); - uint64_t waittime = StringTo(args[iArg++]); - det->setPatternWaitTime(level, waittime, std::vector{det_id}); - os << waittime << '\n'; } return os.str(); @@ -9006,8 +8830,7 @@ std::string Caller::pedestalmode(int action) { #frames is overwritten and #triggers = 1, else #triggers is overwritten and #frames = 1. One cannot set #frames, #triggers or timing mode in pedestal mode (exception thrown). - -pedestalmode [0] + pedestalmode [0] [Jungfrau] Disable pedestal mode. Disabling pedestal mode will set back the normal mode values of #frames and #triggers. )V0G0N" << std::endl; @@ -9167,7 +8990,7 @@ std::string Caller::periodl(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Gotthard][Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Period left for current frame. + [Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Period left for current frame. [Gotthard2] only in continuous mode. )V0G0N" << std::endl; return os.str(); @@ -10240,7 +10063,7 @@ std::string Caller::rebootcontroller(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Jungfrau][Moench][Ctb][Gotthard][Mythen3][Gotthard2][Xilinx Ctb] Reboot controller of detector. )V0G0N" + [Jungfrau][Moench][Ctb][Mythen3][Gotthard2][Xilinx Ctb] Reboot controller of detector. )V0G0N" << std::endl; return os.str(); } @@ -10392,7 +10215,7 @@ std::string Caller::resetdacs(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([(optional) hard] - [Eiger][Jungfrau][Moench][Gotthard][Gotthard2][Mythen3]Reset dac values to the defaults. A 'hard' optional reset will reset the dacs to the hardcoded defaults in on-board detector server. )V0G0N" + [Eiger][Jungfrau][Moench][Gotthard2][Mythen3]Reset dac values to the defaults. A 'hard' optional reset will reset the dacs to the hardcoded defaults in on-board detector server. )V0G0N" << std::endl; return os.str(); } @@ -10476,71 +10299,6 @@ std::string Caller::resetfpga(int action) { return os.str(); } -std::string Caller::roi(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([xmin] [xmax] - [Gotthard] Region of interest in detector. - Options: Only a single ROI per module. - Either all channels or a single adc or 2 chips (256 channels). Default is all channels enabled (-1 -1). )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (1 && args.size() != 0) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - if (args.size() == 0) { - } - - } - - else if (action == slsDetectorDefs::PUT_ACTION) { - if (1 && args.size() != 2) { - throw RuntimeError("Wrong number of arguments for action PUT"); - } - - if (args.size() == 2) { - defs::ROI t = - defs::ROI(StringTo(args[0]), StringTo(args[1])); - } - - } - - else { - - throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " - "are ['GET', 'PUT']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - if (args.size() == 0) { - auto t = det->getROI(std::vector{det_id}); - os << t << '\n'; - } - } - - if (action == slsDetectorDefs::PUT_ACTION) { - if (args.size() == 2) { - defs::ROI t = - defs::ROI(StringTo(args[0]), StringTo(args[1])); - if (det_id == -1 && det->size() > 1) { - throw RuntimeError("Cannot execute ROI at multi module level"); - } - det->setROI(t, det_id); - os << t << '\n'; - } - } - - return os.str(); -} - std::string Caller::romode(int action) { std::ostringstream os; @@ -10673,7 +10431,8 @@ std::string Caller::runclk(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_clk in MHz] - [Ctb] Run clock in MHz. )V0G0N" + [Ctb] Run clock in MHz. + [xilinx Ctb] Run clock in kHz. )V0G0N" << std::endl; return os.str(); } @@ -10844,7 +10603,8 @@ std::string Caller::rx_clearroi(int action) { std::ostringstream os; // print help if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N(Resets Region of interest in receiver. Default is all channels/pixels enabled. )V0G0N" + os << R"V0G0N( + Resets Region of interest in receiver. Default is all channels/pixels enabled. )V0G0N" << std::endl; return os.str(); } @@ -10943,6 +10703,68 @@ std::string Caller::rx_dbitoffset(int action) { return os.str(); } +std::string Caller::rx_dbitreorder(int action) { + + std::ostringstream os; + // print help + if (action == slsDetectorDefs::HELP_ACTION) { + os << R"V0G0N([0, 1] + [Ctb] Reorder digital data such that it groups each signal (0-63) from all the different samples together . Default is 1. Setting to 0 means 'do not reorder' and to keep what the board spits out, which is that all signals in a sample are grouped together. )V0G0N" + << std::endl; + return os.str(); + } + + // check if action and arguments are valid + if (action == slsDetectorDefs::GET_ACTION) { + if (1 && args.size() != 0) { + throw RuntimeError("Wrong number of arguments for action GET"); + } + + if (args.size() == 0) { + } + + } + + else if (action == slsDetectorDefs::PUT_ACTION) { + if (1 && args.size() != 1) { + throw RuntimeError("Wrong number of arguments for action PUT"); + } + + if (args.size() == 1) { + try { + StringTo(args[0]); + } catch (...) { + throw RuntimeError("Could not convert argument 0 to bool"); + } + } + + } + + else { + + throw RuntimeError("INTERNAL ERROR: Invalid action: supported actions " + "are ['GET', 'PUT']"); + } + + // generate code for each action + if (action == slsDetectorDefs::GET_ACTION) { + if (args.size() == 0) { + auto t = det->getRxDbitReorder(std::vector{det_id}); + os << OutString(t) << '\n'; + } + } + + if (action == slsDetectorDefs::PUT_ACTION) { + if (args.size() == 1) { + auto arg0 = StringTo(args[0]); + det->setRxDbitReorder(arg0, std::vector{det_id}); + os << args.front() << '\n'; + } + } + + return os.str(); +} + std::string Caller::rx_discardpolicy(int action) { std::ostringstream os; @@ -12528,7 +12350,7 @@ std::string Caller::serialnumber(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Ctb] + [Jungfrau][Moench][Mythen3][Gotthard2][Ctb] Serial number of detector. )V0G0N" << std::endl; return os.str(); @@ -12664,8 +12486,6 @@ std::string Caller::settings(int action) { os << R"V0G0N([standard, fast, highgain, dynamicgain, lowgain, mediumgain, veryhighgain, highgain0, fixgain1, fixgain2, forceswitchg1, forceswitchg2, verylowgain, g1_hg, g1_lg, g2_hc_hg, g2_hc_lg, g2_lc_hg, g2_lc_lg, g4_hg, g4_lg, gain0] Detector Settings [Jungfrau] - [ gain0 | highgain0] - [Gotthard] - [dynamicgain | highgain | lowgain | mediumgain | veryhighgain] - [Gotthard] Also loads default dacs on to the detector. [Gotthard2] - [dynamicgain | fixgain1 | fixgain2] [Mythen3] - [standard | fast | highgain] Also changes vrshaper and vrpreamp. [Eiger] Use threshold or thresholdnotb. @@ -13973,7 +13793,7 @@ std::string Caller::temp_adc(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_value] - [Jungfrau][Moench][Gotthard] ADC Temperature )V0G0N" + [Jungfrau][Moench] ADC Temperature )V0G0N" << std::endl; return os.str(); } @@ -14177,7 +13997,7 @@ std::string Caller::temp_fpga(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([n_value] - [Eiger][Jungfrau][Moench][Gotthard][Mythen3][Gotthard2][Xilinx CTB] FPGA Temperature )V0G0N" + [Eiger][Jungfrau][Moench][Mythen3][Gotthard2][Xilinx CTB] FPGA Temperature )V0G0N" << std::endl; return os.str(); } @@ -14676,9 +14496,9 @@ std::string Caller::timing(int action) { std::ostringstream os; // print help if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N([auto|trigger|gating|burst_trigger] + os << R"V0G0N([auto|trigger|gating|burst_trigger|trigger_gating] Timing Mode of detector. - [Jungfrau][Moench][Gotthard][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger] + [Jungfrau][Moench][Ctb][Gotthard2][Xilinx Ctb] [auto|trigger] [Mythen3] [auto|trigger|gating|trigger_gating] [Eiger] [auto|trigger|gating|burst_trigger] )V0G0N" << std::endl; @@ -14743,7 +14563,7 @@ std::string Caller::timing_info_decoder(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([swissfel|shine] - [Jungfrau] Advanced Command and only for Swissfel and Shine. Sets the bunch id or timing info decoder. Default is swissfel. )V0G0N" + [Jungfrau] Advanced Command and only for Swissfel and Shine. Sets the bunch id or timing info decoder. Default is swissfel. Only allowed for pcbv2.0. )V0G0N" << std::endl; return os.str(); } @@ -15141,7 +14961,7 @@ std::string Caller::triggersl(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - [Gotthard][Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of triggers left in acquisition. Only when external trigger used. )V0G0N" + [Jungfrau][Moench][Mythen3][Gotthard2][Ctb][Xilinx Ctb] Number of triggers left in acquisition. Only when external trigger used. )V0G0N" << std::endl; return os.str(); } @@ -15364,7 +15184,7 @@ std::string Caller::txdelay(int action) { [Eiger][Jungfrau][Moench][Mythen3] Set transmission delay for all modules in the detector using the step size provided.Sets up [Eiger] txdelay_left to (2 * mod_index * n_delay), [Eiger] txdelay_right to ((2 * mod_index + 1) * n_delay) and - [Eiger] txdelay_frame to (2 *num_modules * n_delay) + [Eiger] txdelay_frame to (2 * num_modules * n_delay) [Jungfrau][Moench][Mythen3] txdelay_frame to (num_modules * n_delay) for every module. )V0G0N" << std::endl; return os.str(); @@ -15622,7 +15442,7 @@ std::string Caller::type(int action) { // print help if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( - Returns detector type. Can be Eiger, Jungfrau, Gotthard, Moench, Mythen3, Gotthard2, ChipTestBoard, Xilinx_ChipTestBoard )V0G0N" + Returns detector type. Can be Eiger, Jungfrau, Moench, Mythen3, Gotthard2, ChipTestBoard, Xilinx_ChipTestBoard )V0G0N" << std::endl; return os.str(); } @@ -16316,7 +16136,7 @@ std::string Caller::update(int action) { if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N( Without tftp: [server_name (incl fullpath)] [fname.pof (incl full path)] This does not use tftp. - [Jungfrau][Moench][Gotthard][Ctb] Updates the firmware, detector server, deletes old server, creates the symbolic link and then reboots detector controller. + [Jungfrau][Moench][Ctb] Updates the firmware, detector server, deletes old server, creates the symbolic link and then reboots detector controller. [Mythen3][Gotthard2] will require a script to start up the shorter named server link at start up. server_name is full path name of detector server binary fname is full path of programming file )V0G0N" @@ -16499,48 +16319,6 @@ std::string Caller::updatemode(int action) { return os.str(); } -std::string Caller::user(int action) { - - std::ostringstream os; - // print help - if (action == slsDetectorDefs::HELP_ACTION) { - os << R"V0G0N( - User details from shared memory (hostname, type, PID, User, Date). )V0G0N" - << std::endl; - return os.str(); - } - - // check if action and arguments are valid - if (action == slsDetectorDefs::GET_ACTION) { - if (1 && args.size() != 0) { - throw RuntimeError("Wrong number of arguments for action GET"); - } - - if (args.size() == 0) { - } - - } - - else { - - throw RuntimeError( - "INTERNAL ERROR: Invalid action: supported actions are ['GET']"); - } - - // generate code for each action - if (action == slsDetectorDefs::GET_ACTION) { - if (args.size() == 0) { - if (det_id != -1) { - throw RuntimeError("Cannot execute user at module level"); - } - auto t = det->getUserDetails(); - os << t << '\n'; - } - } - - return os.str(); -} - std::string Caller::v_a(int action) { std::ostringstream os; @@ -17633,7 +17411,7 @@ std::string Caller::vetophoton(int action) { if (action == slsDetectorDefs::HELP_ACTION) { os << R"V0G0N([ichip] [#photons] [energy in keV] [reference file] [Gotthard2] Set veto reference for 128 channels for chip ichip according to reference file and #photons and energy in keV. -[ichip] [output file] + [ichip] [output file] Get gain indices and veto reference for 128 channels for chip ichip, saved to file. )V0G0N" << std::endl; return os.str(); diff --git a/slsDetectorSoftware/src/Caller.h b/slsDetectorSoftware/src/Caller.h index b1f1e58b3..12a665f79 100644 --- a/slsDetectorSoftware/src/Caller.h +++ b/slsDetectorSoftware/src/Caller.h @@ -1,5 +1,5 @@ // This file is used as input to generate the caller class - +#pragma once #include "CmdParser.h" #include "HelpDacs.h" #include "sls/Detector.h" @@ -19,11 +19,10 @@ class Caller { IpAddr getDstIpFromAuto(); IpAddr getSrcIpFromAuto(); UdpDestination getUdpEntry(); - void GetLevelAndUpdateArgIndex(int action, - std::string levelSeparatedCommand, - int &level, int &iArg, size_t nGetArgs, - size_t nPutArgs); + int GetLevelAndInsertIntoArgs(std::string levelSeparatedCommand); void WrongNumberOfParameters(size_t expected); + std::vector parseRoiVector(const std::string &input); + defs::ROI parseRoi(const std::vector &args); template std::string OutStringHex(const V &value) { if (value.equal()) @@ -85,7 +84,6 @@ class Caller { std::string chipversion(int action); std::string clearbit(int action); std::string clearbusy(int action); - std::string clearroi(int action); std::string clientversion(int action); std::string clkdiv(int action); std::string clkfreq(int action); @@ -123,7 +121,6 @@ class Caller { std::string exptime1(int action); std::string exptime2(int action); std::string exptime3(int action); - std::string exptimel(int action); std::string extrastoragecells(int action); std::string extsampling(int action); std::string extsamplingsrc(int action); @@ -207,9 +204,6 @@ class Caller { std::string patwait1(int action); std::string patwait2(int action); std::string patwaittime(int action); - std::string patwaittime0(int action); - std::string patwaittime1(int action); - std::string patwaittime2(int action); std::string patword(int action); std::string pedestalmode(int action); std::string period(int action); @@ -236,7 +230,6 @@ class Caller { std::string reg(int action); std::string resetdacs(int action); std::string resetfpga(int action); - std::string roi(int action); std::string romode(int action); std::string row(int action); std::string runclk(int action); @@ -245,6 +238,7 @@ class Caller { std::string rx_clearroi(int action); std::string rx_dbitlist(int action); std::string rx_dbitoffset(int action); + std::string rx_dbitreorder(int action); std::string rx_discardpolicy(int action); std::string rx_fifodepth(int action); std::string rx_frameindex(int action); @@ -434,7 +428,6 @@ class Caller { {"chipversion", &Caller::chipversion}, {"clearbit", &Caller::clearbit}, {"clearbusy", &Caller::clearbusy}, - {"clearroi", &Caller::clearroi}, {"clientversion", &Caller::clientversion}, {"clkdiv", &Caller::clkdiv}, {"clkfreq", &Caller::clkfreq}, @@ -472,7 +465,6 @@ class Caller { {"exptime1", &Caller::exptime1}, {"exptime2", &Caller::exptime2}, {"exptime3", &Caller::exptime3}, - {"exptimel", &Caller::exptimel}, {"extrastoragecells", &Caller::extrastoragecells}, {"extsampling", &Caller::extsampling}, {"extsamplingsrc", &Caller::extsamplingsrc}, @@ -549,16 +541,16 @@ class Caller { {"patnloop1", &Caller::patnloop1}, {"patnloop2", &Caller::patnloop2}, {"patsetbit", &Caller::patsetbit}, - {"patternX", &Caller::pattern}, + {"pattern", &Caller::pattern}, {"patternstart", &Caller::patternstart}, {"patwait", &Caller::patwait}, {"patwait0", &Caller::patwait0}, {"patwait1", &Caller::patwait1}, {"patwait2", &Caller::patwait2}, {"patwaittime", &Caller::patwaittime}, - {"patwaittime0", &Caller::patwaittime0}, - {"patwaittime1", &Caller::patwaittime1}, - {"patwaittime2", &Caller::patwaittime2}, + {"patwaittime0", &Caller::patwaittime}, + {"patwaittime1", &Caller::patwaittime}, + {"patwaittime2", &Caller::patwaittime}, {"patword", &Caller::patword}, {"pedestalmode", &Caller::pedestalmode}, {"period", &Caller::period}, @@ -585,7 +577,6 @@ class Caller { {"reg", &Caller::reg}, {"resetdacs", &Caller::resetdacs}, {"resetfpga", &Caller::resetfpga}, - {"roi", &Caller::roi}, {"romode", &Caller::romode}, {"row", &Caller::row}, {"runclk", &Caller::runclk}, @@ -594,6 +585,7 @@ class Caller { {"rx_clearroi", &Caller::rx_clearroi}, {"rx_dbitlist", &Caller::rx_dbitlist}, {"rx_dbitoffset", &Caller::rx_dbitoffset}, + {"rx_dbitreorder", &Caller::rx_dbitreorder}, {"rx_discardpolicy", &Caller::rx_discardpolicy}, {"rx_fifodepth", &Caller::rx_fifodepth}, {"rx_frameindex", &Caller::rx_frameindex}, @@ -790,13 +782,9 @@ class Caller { {"vishaper", "dac"}, {"iodelay", "dac"}, {"vref_ds", "dac"}, - {"vcascn_pb", "dac"}, - {"vcascp_pb", "dac"}, {"vout_cm", "dac"}, - {"vcasc_out", "dac"}, {"vin_cm", "dac"}, {"vref_comp", "dac"}, - {"ib_test_c", "dac"}, {"vrshaper_n", "dac"}, {"vipre", "dac"}, {"vdcsh", "dac"}, @@ -878,6 +866,7 @@ class Caller { {"i_c", "im_c"}, {"i_d", "im_d"}, {"i_io", "im_io"}, + {"patternX", "pattern"}, {"copydetectorserver", "updatedetectorserver"}, {"nframes", "framecounter"}, {"now", "runtime"}, diff --git a/slsDetectorSoftware/src/CallerSpecial.cpp b/slsDetectorSoftware/src/CallerSpecial.cpp index 80b2a9867..b21f7332c 100644 --- a/slsDetectorSoftware/src/CallerSpecial.cpp +++ b/slsDetectorSoftware/src/CallerSpecial.cpp @@ -73,6 +73,7 @@ std::string Caller::list(int action) { } if (args.empty()) { std::string ret = "free\n"; + ret += "user\n"; for (auto &f : functions) { ret += f.first + "\n"; } @@ -112,10 +113,6 @@ IpAddr Caller::getDstIpFromAuto() { } IpAddr Caller::getSrcIpFromAuto() { - if (det->getDetectorType().squash() == defs::GOTTHARD) { - throw RuntimeError( - "Cannot use 'auto' for udp_srcip for GotthardI Detector."); - } std::string hostname = det->getHostname(std::vector{det_id}).squash("none"); // Hostname could be ip try to decode otherwise look up the hostname @@ -175,28 +172,16 @@ void Caller::WrongNumberOfParameters(size_t expected) { std::to_string(args.size()) + "\n"); } -void Caller::GetLevelAndUpdateArgIndex(int action, - std::string levelSeparatedCommand, - int &level, int &iArg, size_t nGetArgs, - size_t nPutArgs) { - if (cmd == levelSeparatedCommand) { - ++nGetArgs; - ++nPutArgs; - } else { +int Caller::GetLevelAndInsertIntoArgs(std::string levelSeparatedCommand) { + if (cmd != levelSeparatedCommand) { LOG(logWARNING) << "This command is deprecated and will be removed. " "Please migrate to " << levelSeparatedCommand; + int level = cmd[cmd.find_first_of("012")] - '0'; + args.insert(args.begin(), std::to_string(level)); + return true; } - if (action == defs::GET_ACTION && args.size() != nGetArgs) { - WrongNumberOfParameters(nGetArgs); - } else if (action == defs::PUT_ACTION && args.size() != nPutArgs) { - WrongNumberOfParameters(nPutArgs); - } - if (cmd == levelSeparatedCommand) { - level = StringTo(args[iArg++]); - } else { - level = cmd[cmd.find_first_of("012")] - '0'; - } + return false; } std::string Caller::free(int action) { @@ -204,13 +189,24 @@ std::string Caller::free(int action) { return "free\n\tFree detector shared memory\n"; } +std::string Caller::user(int action) { + // This function is purely for help, actual functionality is in the caller + return "user\n\tUser details from shared memory (hostname, type, PID, " + "User, Date).\n"; +} + std::string Caller::hostname(int action) { std::ostringstream os; if (action == defs::HELP_ACTION) { os << "\n\tFrees shared memory and sets hostname (or IP address) of " "all modules concatenated by +.\n\t Virtual servers can already " "use the port in hostname separated by ':' and ports incremented " - "by 2 to accomodate the stop server as well." + "by 2 to accomodate the stop server as well. The row and column " + "values in the udp/zmq header are affected by the order in this " + "command and the detsize command. The modules are stacked row by " + "row until they reach the y-axis limit set by detsize (if " + "specified). Then, stacking continues in the next column and so " + "on. This only affects row and column in udp/zmq header." << '\n'; } else if (action == defs::GET_ACTION) { if (!args.empty()) { @@ -250,8 +246,7 @@ void Caller::EmptyDataCallBack(detectorData *data, uint64_t frameIndex, std::string Caller::acquire(int action) { std::ostringstream os; if (action == defs::HELP_ACTION) { - os << cmd - << "\n\tAcquire the number of frames set up.\n\tBlocking command, " + os << "\n\tAcquire the number of frames set up.\n\tBlocking command, " "where control server is blocked and cannot accept other " "commands until acquisition is done. \n\t- sets acquiring " "flag\n\t- starts the receiver listener (if enabled)\n\t- starts " @@ -371,7 +366,8 @@ std::string Caller::threshold(int action) { if (cmd == "thresholdnotb") { os << "Trimbits are not loaded."; } - os << "\n\nthreshold [eV1] [eV2] [eV3] [(optional settings)]" + os << "\n\t" << cmd + << " [eV1] [eV2] [eV3] [(optional settings)]" "\n\t[Mythen3] Threshold in eV for each counter. It loads trim " "files from settingspath. An energy of -1 will pick up values " " from detector."; @@ -447,10 +443,9 @@ std::string Caller::trimen(int action) { std::ostringstream os; if (action == defs::HELP_ACTION) { os << "[trim_ev1] [trim_Ev2 (optional)] [trim_ev3 (optional)] " - "...\n\t[Eiger][Mythen3] Number of trim energies and list of " - "trim " - "energies, where corresponding default trim files exist in " - "corresponding trim folders." + "...\n\t[Eiger][Mythen3] list of trim energies, where " + "corresponding default trim files exist in corresponding trim " + "folders." << '\n'; } else if (action == defs::GET_ACTION) { if (!args.empty()) { @@ -519,7 +514,7 @@ std::string Caller::udp_srcip(int action) { "ip.\n\t[Eiger] Set only for 10G. For 1G, detector will replace " "with its own DHCP IP address. \n\tOne can also set this to " "'auto' for 1 GbE data and virtual detectors. It will set to IP " - "of detector. Not available for GotthardI" + "of detector." << '\n'; } else if (action == defs::GET_ACTION) { auto t = det->getSourceUDPIP(std::vector{det_id}); @@ -731,49 +726,133 @@ std::string Caller::rx_zmqip(int action) { } return os.str(); } + std::string Caller::rx_roi(int action) { std::ostringstream os; + std::string helpMessage = + std::string("[xmin] [xmax] [ymin] [ymax]\n") + + "\tDefines a single region of interest (ROI) in the receiver.\n" + "\tFor example, to set a single ROI: 0 100 20 30\n\n" + + "\tTo specify multiple ROIs, use square brackets between ROIs and " + "commas inside for each ROI. \n" + "\tInside each bracket, no spaces allowed.\n\n" + + "\tIf you use semicolon (along with '['and ']' to separate rois), \n" + "\tenclose the entire list in quotes.\n" + "\tExamples:\n" + "\t [0,100,0,100] [200,300,0,100]\n" + "\t \"[0,100,0,100];[200,300,0,100]\"\n\n" + + "\tNotes:\n" + "\t- ROIs can only be set at the multi-module level.\n" + "\t- If multi module ROIs ends up with more then 1 ROI per UDP " + "port or if they overlap each other, it will throw an error.\n" + "\t- ROIs coordinates assume no gap pixels, even if they are enabled " + "in gui.\n" + "\t- To retrieve ROIs per port, specify the module ID when using the " + "get command.\n" + "\t- Use the command 'rx_clearroi' to clear all ROIs.\n" + "\t- Changing the number of UDP interfaces will automatically clear " + "the current ROIs.\n\n" + "\t- Cannot be set for CTB or Xilinx CTB.\n"; + if (action == defs::HELP_ACTION) { - os << "[xmin] [xmax] [ymin] [ymax]\n\tRegion of interest in " - "receiver.\n\tOnly allowed at multi module level and without gap " - "pixels." - << '\n'; + os << helpMessage; } else if (action == defs::GET_ACTION) { if (!args.empty()) { WrongNumberOfParameters(0); } - if (det_id == -1) { - auto t = det->getRxROI(); - os << t << '\n'; - } else { - auto t = det->getIndividualRxROIs(std::vector{det_id}); - os << t << '\n'; - } + auto t = det->getRxROI(det_id); + os << ToString(t) << '\n'; } else if (action == defs::PUT_ACTION) { - defs::ROI t; - // 2 or 4 arguments - if (args.size() != 2 && args.size() != 4) { - WrongNumberOfParameters(2); - } - if (args.size() == 2 || args.size() == 4) { - t.xmin = StringTo(args[0]); - t.xmax = StringTo(args[1]); - } - if (args.size() == 4) { - t.ymin = StringTo(args[2]); - t.ymax = StringTo(args[3]); - } - // only multi level if (det_id != -1) { - throw RuntimeError("Cannot execute receiver ROI at module level"); + throw RuntimeError("Cannot set receiver ROI at module level"); } - det->setRxROI(t); - os << t << '\n'; + // Support multiple args with bracketed ROIs, or single arg with + // semicolon-separated vector in quotes + bool isVectorInput = + std::all_of(args.begin(), args.end(), [](const std::string &a) { + return a.find('[') != std::string::npos && + a.find(']') != std::string::npos; + }); + std::vector rois; + try { + // single roi in previous format: [xmin,xmax,ymin,ymax] + if (!isVectorInput) { + auto t = parseRoi(args); + rois.emplace_back(t); + } + // multiple roi or single roi with brackets + // multiple roi: multiple args with bracketed ROIs, or single arg + // with semicolon-bracketed Rois in quotes + else { + for (const auto &arg : args) { + auto subRois = parseRoiVector(arg); + rois.insert(rois.end(), subRois.begin(), subRois.end()); + } + } + } catch (const std::exception &e) { + throw RuntimeError("Could not parse ROI: Did you use spaces inside " + "the brackets? Use sls_detector_help " + + cmd + " to get the right syntax expected."); + } + + det->setRxROI(rois); + os << ToString(rois) << '\n'; } else { throw RuntimeError("Unknown action"); } return os.str(); } + +std::vector Caller::parseRoiVector(const std::string &input) { + std::vector rois; + std::stringstream ss(input); + std::string token; + + while (std::getline(ss, token, ']')) { + // remove spaces and semicolons + token.erase( + std::remove_if(token.begin(), token.end(), + [](char c) { return std::isspace(c) || c == ';'; }), + token.end()); + if (token.empty()) + continue; + if (token.front() != '[') { + throw RuntimeError("Each ROI must be enclosed in square brackets: " + "[xmin,xmax,ymin,ymax]"); + } + token = token.substr(1, token.size() - 1); // remove brackets + std::vector parts; + std::stringstream inner(token); + std::string num; + while (std::getline(inner, num, ',')) { + parts.push_back(num); + } + + auto roi = parseRoi(parts); + rois.emplace_back(roi); + } + return rois; +} + +defs::ROI Caller::parseRoi(const std::vector &parts) { + if (parts.size() != 2 && parts.size() != 4) { + throw RuntimeError( + "Could not parse ROI. A ROI must have 2 or 4 integers"); + } + + defs::ROI roi; + roi.xmin = StringTo(parts[0]); + roi.xmax = StringTo(parts[1]); + if (parts.size() == 4) { + roi.ymin = StringTo(parts[2]); + roi.ymax = StringTo(parts[3]); + } + return roi; +} + std::string Caller::ratecorr(int action) { std::ostringstream os; if (action == defs::HELP_ACTION) { @@ -1018,13 +1097,94 @@ std::string Caller::slowadc(int action) { } return os.str(); } +std::string Caller::patwaittime(int action) { + std::ostringstream os; + + if (action == defs::HELP_ACTION) { + os << "[0-6] [n_clk] \n\t[Ctb][Mythen3][Xilinx Ctb] Wait time in clock " + "cycles for the loop provided.\n\t[Mythen3] Level options: 0-3 " + "only." + << '\n'; + return os.str(); + } + + // parse level + bool deprecated_cmd = GetLevelAndInsertIntoArgs("patwaittime"); + int level = 0; + try { + if (args.size() > 0) + level = StringTo(args[0]); + } catch (const std::exception &e) { + LOG(logERROR) << "Could not scan level."; + throw; + } + if (!deprecated_cmd && args.size() >= 1) + os << args[0] << ' '; + + if (action == defs::GET_ACTION) { + if (args.size() != 1 && args.size() != 2) + WrongNumberOfParameters(1); + // with time unit + if (args.size() == 2) { + auto t = + det->getPatternWaitInterval(level, std::vector{det_id}); + os << OutString(t, args[1]) << '\n'; + } + // in clocks + else { + auto t = det->getPatternWaitClocks(level, std::vector{det_id}); + os << OutString(t) << '\n'; + } + } else if (action == defs::PUT_ACTION) { + if (args.size() != 2 && args.size() != 3) + WrongNumberOfParameters(2); + // clocks (all digits) + if (args.size() == 2 && + std::all_of(args[1].begin(), args[1].end(), ::isdigit)) { + uint64_t waittime = StringTo(args[1]); + det->setPatternWaitClocks(level, waittime, + std::vector{det_id}); + os << waittime << '\n'; + } + // time + else { + time::ns converted_time{0}; + try { + if (args.size() == 2) { + std::string tmp_time(args[1]); + std::string unit = RemoveUnit(tmp_time); + converted_time = StringTo(tmp_time, unit); + } else { + converted_time = StringTo(args[1], args[2]); + } + } catch (...) { + throw RuntimeError("Could not convert argument to time::ns"); + } + det->setPatternWaitInterval(level, converted_time, + std::vector{det_id}); + os << args[1]; + if (args.size() == 3) + os << ' ' << args[2]; + os << '\n'; + } + } else { + throw RuntimeError("Unknown action"); + } + return os.str(); +} std::string Caller::rx_dbitlist(int action) { std::ostringstream os; if (action == defs::HELP_ACTION) { - os << "[all] or [i0] [i1] [i2]... \n\t[Ctb] List of digital signal " - "bits read out. If all is used instead of a list, all digital " - "bits (64) enabled. Each element in list can be 0 - 63 and must " - "be non repetitive." + os << "[all] or [none] or [i0] [i1] [i2]... \n\t[Ctb] List of digital " + "signal bits enabled and rearranged according to the signals " + "(all samples of each signal is put together). If 'all' is used " + "instead of a list, all digital bits (64) enabled. Each element " + "in list can be 0 - 63 and must be non repetitive. The option " + "'none' will still spit out all data as is from the detector, " + "but without rearranging it. Please note that when using the " + "receiver list, the data size will be bigger if the number of " + "samples is not divisible by 8 as every signal bit is padded to " + "the next byte when combining all the samples in the receiver." << '\n'; } else if (action == defs::GET_ACTION) { if (!args.empty()) { @@ -1042,7 +1202,9 @@ std::string Caller::rx_dbitlist(int action) { for (unsigned int i = 0; i < 64; ++i) { t[i] = i; } - } else { + } + // 'none' option already covered as t is empty by default + else if (args[0] != "none") { unsigned int ntrim = args.size(); t.resize(ntrim); for (unsigned int i = 0; i < ntrim; ++i) { diff --git a/slsDetectorSoftware/src/CmdApp.cpp b/slsDetectorSoftware/src/CmdApp.cpp index facb584a8..70f5855ea 100644 --- a/slsDetectorSoftware/src/CmdApp.cpp +++ b/slsDetectorSoftware/src/CmdApp.cpp @@ -50,14 +50,27 @@ int main(int argc, char *argv[]) { action = slsDetectorDefs::HELP_ACTION; else { // Free shared memory should work also without a detector - // if we have an option for verify in the detector constructor - // we could avoid this but clutter the code if (parser.command() == "free") { if (parser.detector_id() != -1) std::cout << "Cannot free shared memory of sub-detector\n"; else sls::freeSharedMemory(parser.multi_id()); - return 0; + return EXIT_SUCCESS; + } + + // Get user details from shared memory should work also without a + // detector + if (parser.command() == "user") { + if (action == slsDetectorDefs::PUT_ACTION) { + std::cout << "Cannot set user details\n"; + return EXIT_FAILURE; + } + if (parser.detector_id() != -1) + std::cout << "Cannot get user details of only a sub-detector\n"; + else + std::cout << sls::getUserDetails(parser.multi_id()) + << std::endl; + return EXIT_SUCCESS; } } @@ -84,7 +97,7 @@ int main(int argc, char *argv[]) { c.call(parser.command(), parser.arguments(), parser.detector_id(), action, std::cout, parser.receiver_id()); } catch (sls::RuntimeError &e) { - exit(EXIT_FAILURE); + return EXIT_FAILURE; } - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; } \ No newline at end of file diff --git a/slsDetectorSoftware/src/CmdParser.cpp b/slsDetectorSoftware/src/CmdParser.cpp index 109a50b77..d036e4dc2 100644 --- a/slsDetectorSoftware/src/CmdParser.cpp +++ b/slsDetectorSoftware/src/CmdParser.cpp @@ -27,6 +27,10 @@ void CmdParser::Parse(std::string s) { // taking s by value we can modify it. Reset(); + // If the string is empty there is nothing to parse + if (s.empty()) + return; + // Are we looking at -h --help? avoid removing h from command starting // with h when combined with detector id (ex, 1-hostname) bool h = replace_first(&s, "--help", " "); diff --git a/slsDetectorSoftware/src/CtbConfig.h b/slsDetectorSoftware/src/CtbConfig.h index 2e03996d3..0e2fe68d7 100644 --- a/slsDetectorSoftware/src/CtbConfig.h +++ b/slsDetectorSoftware/src/CtbConfig.h @@ -3,7 +3,16 @@ #include namespace sls { +#define CTB_SHMAPIVERSION 0x250820 +#define CTB_SHMVERSION 0x250820 + class CtbConfig { + public: + /** fixed pattern */ + int shmversion{CTB_SHMVERSION}; + bool isValid{true}; // false if freed to block access from python or c++ api + /** end of fixed pattern */ + private: static constexpr size_t name_length = 20; static constexpr size_t num_dacs = 18; static constexpr size_t num_adcs = 32; diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index a8e2ad2e2..f6dd395af 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -46,13 +46,72 @@ void freeSharedMemory(const int detectorIndex, const int moduleIndex) { for (int i = 0; i < numDetectors; ++i) { SharedMemory moduleShm(detectorIndex, i); - moduleShm.removeSharedMemory(); + if (moduleShm.exists()) { + moduleShm.removeSharedMemory(); + } } // Ctb configuration SharedMemory ctbShm(detectorIndex, -1, CtbConfig::shm_tag()); - if (ctbShm.exists()) + if (ctbShm.exists()) { ctbShm.removeSharedMemory(); + } +} + +std::string getUserDetails(const int detectorIndex) { + + int numModules = 0; + defs::detectorType type = defs::GENERIC; + pid_t pid = -1; + std::string hostname = "Unknown"; + std::string user = "Unknown"; + std::string date = "Unknown"; + + { + SharedMemory detectorShm(detectorIndex, -1); + if (!detectorShm.exists()) { + throw SharedMemoryError("No detector with index " + + std::to_string(detectorIndex) + + " in shared memory!"); + } + detectorShm.openSharedMemory(false); + if (detectorShm()->shmversion < DETECTOR_SHMAPIVERSION) { + detectorShm.unmapSharedMemory(); + throw SharedMemoryError( + "Detector Shared memory version too old to get user details!"); + } + numModules = detectorShm()->totalNumberOfModules; + type = detectorShm()->detType; + pid = detectorShm()->lastPID; + user = detectorShm()->lastUser; + date = detectorShm()->lastDate; + + detectorShm.unmapSharedMemory(); + } + + for (int imod = 0; imod != numModules; ++imod) { + SharedMemory moduleShm(detectorIndex, imod); + if (moduleShm.exists()) { + moduleShm.openSharedMemory(false); + if (moduleShm()->shmversion < MODULE_SHMAPIVERSION) { + LOG(logWARNING) + << "Module Shared Memory too old to get hostname"; + } else { + hostname = moduleShm()->hostname; + } + moduleShm.unmapSharedMemory(); + } + } + + std::ostringstream userDetails; + userDetails << "Detector Index: " << detectorIndex << "\n" + << "Number of Modules: " << numModules << "\n" + << "Type: " << type << "\n" + << "PID: " << pid << "\n" + << "User: " << user << "\n" + << "Date: " << date << "\n" + << "Hostname: " << hostname << "\n"; + return userDetails.str(); } using defs = slsDetectorDefs; @@ -99,6 +158,12 @@ void Detector::loadParameters(const std::vector ¶meters) { CmdParser parser; for (const auto ¤t_line : parameters) { parser.Parse(current_line); + if (parser.multi_id() != 0) { + throw RuntimeError( + "Multi-detector indices [" + std::to_string(parser.multi_id()) + + "] are not allowed in the file. Instead, use the index for " + "'config' or 'parameters' command?"); + } caller.call(parser.command(), parser.arguments(), parser.detector_id(), defs::PUT_ACTION, std::cout, parser.receiver_id()); } @@ -137,7 +202,7 @@ void Detector::setVirtualDetectorServers(int numServers, int Detector::getShmId() const { return pimpl->getDetectorIndex(); } -std::string Detector::getPackageVersion() const { return RELEASE; } +std::string Detector::getPackageVersion() const { return SLS_DET_VERSION; } std::string Detector::getClientVersion() const { Version v(APILIB); @@ -195,6 +260,26 @@ Result Detector::getModuleSize(Positions pos) const { return pimpl->Parallel(&Module::getNumberOfChannels, pos); } +defs::xy Detector::getPortPerModuleGeometry() const { + return pimpl->getPortGeometry(); +} + +Result Detector::getPortSize(Positions pos) const { + Result res = pimpl->Parallel(&Module::getNumberOfChannels, pos); + defs::xy portGeometry = getPortPerModuleGeometry(); + if ((portGeometry.x != 1 && portGeometry.x != 2) || + (portGeometry.y != 1 && portGeometry.y != 2)) { + throw RuntimeError( + "Port size is not 1 or 2 in either dimension. Port geometry:" + + ToString(portGeometry)); + } + for (auto &it : res) { + it.x /= portGeometry.x; + it.y /= portGeometry.y; + } + return res; +} + defs::xy Detector::getDetectorSize() const { return pimpl->getNumberOfChannels(); } @@ -209,10 +294,6 @@ std::vector Detector::getSettingsList() const { return std::vector{ defs::STANDARD, defs::HIGHGAIN, defs::LOWGAIN, defs::VERYHIGHGAIN, defs::VERYLOWGAIN}; - case defs::GOTTHARD: - return std::vector{ - defs::HIGHGAIN, defs::DYNAMICGAIN, defs::LOWGAIN, defs::MEDIUMGAIN, - defs::VERYHIGHGAIN}; case defs::JUNGFRAU: return std::vector{defs::GAIN0, defs::HIGHGAIN0}; @@ -678,7 +759,6 @@ std::vector Detector::getTemperatureList() const { return std::vector{defs::SLOW_ADC_TEMP}; case defs::JUNGFRAU: case defs::MOENCH: - case defs::GOTTHARD: return std::vector{defs::TEMPERATURE_ADC, defs::TEMPERATURE_FPGA}; case defs::EIGER: @@ -741,10 +821,6 @@ std::vector Detector::getDacList() const { defs::VCAL, defs::VCMP_RL, defs::RXB_RB, defs::RXB_LB, defs::VCMP_RR, defs::VCP, defs::VCN, defs::VISHAPER, defs::VTHRESHOLD}; - case defs::GOTTHARD: - return std::vector{ - defs::VREF_DS, defs::VCASCN_PB, defs::VCASCP_PB, defs::VOUT_CM, - defs::VCASC_OUT, defs::VIN_CM, defs::VREF_COMP, defs::IB_TESTC}; case defs::JUNGFRAU: return std::vector{ defs::VB_COMP, defs::VDD_PROT, defs::VIN_COM, defs::VREF_PRECH, @@ -1282,7 +1358,7 @@ Result Detector::getRxPort(Positions pos) const { void Detector::setRxPort(uint16_t port, int module_id) { if (module_id == -1) { - validatePortRange(port, size() - 1); + validatePortRange(port, size()); std::vector port_list(size()); std::iota(std::begin(port_list), std::end(port_list), port); @@ -1370,13 +1446,13 @@ void Detector::setRxArping(bool value, Positions pos) { pimpl->Parallel(&Module::setRxArping, pos, value); } -Result Detector::getIndividualRxROIs(Positions pos) const { - return pimpl->Parallel(&Module::getRxROI, pos); +std::vector Detector::getRxROI(int module_id) const { + return pimpl->getRxROI(module_id); } -defs::ROI Detector::getRxROI() const { return pimpl->getRxROI(); } - -void Detector::setRxROI(const defs::ROI value) { pimpl->setRxROI(value); } +void Detector::setRxROI(const std::vector &args) { + pimpl->setRxROI(args); +} void Detector::clearRxROI() { pimpl->clearRxROI(); } @@ -1812,27 +1888,6 @@ void Detector::setCollectionMode(defs::collectionMode value, Positions pos) { pimpl->Parallel(&Module::setCollectionMode, pos, value); } -// Gotthard Specific - -Result Detector::getROI(Positions pos) const { - return pimpl->Parallel(&Module::getROI, pos); -} - -void Detector::setROI(defs::ROI value, int module_id) { - if (module_id < 0 && size() > 1) { - throw RuntimeError("Cannot set ROI for all modules simultaneously"); - } - pimpl->Parallel(&Module::setROI, {module_id}, value); -} - -void Detector::clearROI(Positions pos) { - pimpl->Parallel(&Module::clearROI, pos); -} - -Result Detector::getExptimeLeft(Positions pos) const { - return pimpl->Parallel(&Module::getExptimeLeft, pos); -} - // Gotthard2 Specific Result Detector::getNumberOfBursts(Positions pos) const { @@ -1887,7 +1942,7 @@ void Detector::setVetoFile(const int chipIndex, const std::string &fname, pimpl->Parallel(&Module::setVetoFile, pos, chipIndex, fname); } -Result Detector::getBurstMode(Positions pos) { +Result Detector::getBurstMode(Positions pos) const { return pimpl->Parallel(&Module::getBurstMode, pos); } @@ -2301,6 +2356,14 @@ void Detector::setRxDbitOffset(int value, Positions pos) { pimpl->Parallel(&Module::setReceiverDbitOffset, pos, value); } +Result Detector::getRxDbitReorder(Positions pos) const { + return pimpl->Parallel(&Module::getReceiverDbitReorder, pos); +} + +void Detector::setRxDbitReorder(bool reorder, Positions pos) { + pimpl->Parallel(&Module::setReceiverDbitReorder, pos, reorder); +} + void Detector::setDigitalIODelay(uint64_t pinMask, int delay, Positions pos) { pimpl->Parallel(&Module::setDigitalIODelay, pos, pinMask, delay); } @@ -2593,12 +2656,21 @@ void Detector::setPatternWaitAddr(int level, int addr, Positions pos) { pimpl->Parallel(&Module::setPatternWaitAddr, pos, level, addr); } -Result Detector::getPatternWaitTime(int level, Positions pos) const { - return pimpl->Parallel(&Module::getPatternWaitTime, pos, level); +Result Detector::getPatternWaitClocks(int level, + Positions pos) const { + return pimpl->Parallel(&Module::getPatternWaitClocks, pos, level); } -void Detector::setPatternWaitTime(int level, uint64_t t, Positions pos) { - pimpl->Parallel(&Module::setPatternWaitTime, pos, level, t); +void Detector::setPatternWaitClocks(int level, uint64_t t, Positions pos) { + pimpl->Parallel(&Module::setPatternWaitClocks, pos, level, t); +} + +Result Detector::getPatternWaitInterval(int level, Positions pos) const { + return pimpl->Parallel(&Module::getPatternWaitInterval, pos, level); +} + +void Detector::setPatternWaitInterval(int level, ns t, Positions pos) { + pimpl->Parallel(&Module::setPatternWaitInterval, pos, level, t.count()); } Result Detector::getPatternMask(Positions pos) { @@ -2809,13 +2881,11 @@ Result Detector::getMeasurementTime(Positions pos) const { return pimpl->Parallel(&Module::getMeasurementTime, pos); } -std::string Detector::getUserDetails() const { return pimpl->getUserDetails(); } - std::vector Detector::getValidPortNumbers(uint16_t start_port) { int num_sockets_per_detector = getNumberofUDPInterfaces({}).tsquash( "Number of UDP Interfaces is not consistent among modules"); - validatePortRange(start_port, (size() - 1) * num_sockets_per_detector); + validatePortRange(start_port, size() * num_sockets_per_detector); std::vector res; res.reserve(size()); diff --git a/slsDetectorSoftware/src/DetectorImpl.cpp b/slsDetectorSoftware/src/DetectorImpl.cpp index 02ddcf7f5..fceba4cb8 100644 --- a/slsDetectorSoftware/src/DetectorImpl.cpp +++ b/slsDetectorSoftware/src/DetectorImpl.cpp @@ -31,21 +31,16 @@ namespace sls { -DetectorImpl::DetectorImpl(int detector_index, bool verify, bool update) +DetectorImpl::DetectorImpl(int detector_index) : detectorIndex(detector_index), shm(detector_index, -1), ctb_shm(detector_index, -1, CtbConfig::shm_tag()) { - setupDetector(verify, update); + setupDetector(); } -void DetectorImpl::setupDetector(bool verify, bool update) { - initSharedMemory(verify); - initializeMembers(verify); - if (update) { - updateUserdetails(); - } - - if (ctb_shm.exists()) - ctb_shm.openSharedMemory(verify); +void DetectorImpl::setupDetector() { + initSharedMemory(); + initializeMembers(); + updateUserdetails(); } bool DetectorImpl::isAllPositions(Positions pos) const { @@ -57,64 +52,45 @@ void DetectorImpl::setAcquiringFlag(bool flag) { shm()->acquiringFlag = flag; } int DetectorImpl::getDetectorIndex() const { return detectorIndex; } -std::string DetectorImpl::getUserDetails() { - if (modules.empty()) { - return std::string("none"); - } - - std::ostringstream sstream; - sstream << "\nHostname: "; - for (auto &module : modules) { - sstream << (module->isFixedPatternSharedMemoryCompatible() - ? module->getHostname() - : "Unknown") - << "+"; - } - sstream << "\nType: "; - // get type from detector version shm - if (shm()->shmversion >= DETECTOR_SHMAPIVERSION) { - sstream << ToString(shm()->detType); - } - // get type from module shm - else { - for (auto &module : modules) { - sstream << (module->isFixedPatternSharedMemoryCompatible() - ? ToString(module->getDetectorType()) - : "Unknown") - << "+"; - } - } - - sstream << "\nPID: " << shm()->lastPID << "\nUser: " << shm()->lastUser - << "\nDate: " << shm()->lastDate << std::endl; - - return sstream.str(); -} - bool DetectorImpl::getInitialChecks() const { return shm()->initialChecks; } void DetectorImpl::setInitialChecks(const bool value) { shm()->initialChecks = value; } -void DetectorImpl::initSharedMemory(bool verify) { +void DetectorImpl::initSharedMemory() { + // creating new shm if (!shm.exists()) { shm.createSharedMemory(); initializeDetectorStructure(); - } else { - shm.openSharedMemory(verify); - if (verify && shm()->shmversion != DETECTOR_SHMVERSION) { + } + + // opening existing shm + else { + shm.openSharedMemory(true); + if (shm()->shmversion != DETECTOR_SHMVERSION) { LOG(logERROR) << "Detector shared memory (" << detectorIndex << ") version mismatch " "(expected 0x" << std::hex << DETECTOR_SHMVERSION << " but got 0x" << shm()->shmversion << std::dec - << ". Clear Shared memory to continue."; - throw SharedMemoryError("Shared memory version mismatch!"); + << ". Free Shared memory to continue."; + shm.unmapSharedMemory(); + throw SharedMemoryError("Detector Shared memory version mismatch!"); + } + if (ctb_shm.exists()) { + ctb_shm.openSharedMemory(true); + if (ctb_shm()->shmversion != CTB_SHMVERSION) { + LOG(logERROR) + << "CTB shared memory version mismatch (expected 0x" + << std::hex << CTB_SHMVERSION << " but got 0x" + << ctb_shm()->shmversion << std::dec + << ". Free Shared memory to continue."; + ctb_shm.unmapSharedMemory(); + throw SharedMemoryError("Ctb Shared memory version mismatch!"); + } } } - - // std::cout << } void DetectorImpl::initializeDetectorStructure() { @@ -130,20 +106,16 @@ void DetectorImpl::initializeDetectorStructure() { shm()->gapPixels = false; // zmqlib default shm()->zmqHwm = -1; - shm()->rx_roi.xmin = -1; - shm()->rx_roi.xmax = -1; - shm()->rx_roi.ymin = -1; - shm()->rx_roi.ymax = -1; } -void DetectorImpl::initializeMembers(bool verify) { +void DetectorImpl::initializeMembers() { // DetectorImpl zmqSocket.clear(); // get objects from single det shared memory (open) for (int i = 0; i < shm()->totalNumberOfModules; i++) { try { - modules.push_back(make_unique(detectorIndex, i, verify)); + modules.push_back(make_unique(detectorIndex, i)); } catch (...) { modules.clear(); throw; @@ -214,10 +186,12 @@ void DetectorImpl::setHostname(const std::vector &name) { if (shm()->detType == defs::CHIPTESTBOARD || shm()->detType == defs::XILINX_CHIPTESTBOARD) { - if (ctb_shm.exists()) - ctb_shm.openSharedMemory(true); - else - ctb_shm.createSharedMemory(); + if (ctb_shm.exists()) { + throw SharedMemoryError( + "This shared memory " + ctb_shm.getName() + + " should have been deleted before! Free it to continue."); + } + ctb_shm.createSharedMemory(); } } @@ -230,14 +204,14 @@ void DetectorImpl::addModule(const std::string &name) { // get type by connecting detectorType type = Module::getTypeFromDetector(hostname, port); - // gotthard cannot have more than 2 modules (50um=1, 25um=2 - if ((type == GOTTHARD || type == GOTTHARD2) && modules.size() > 2) { - throw RuntimeError("Gotthard cannot have more than 2 modules. Please " + // gotthard2 cannot have more than 2 modules (50um=1, 25um=2 + if (type == GOTTHARD2 && modules.size() > 2) { + throw RuntimeError("GotthardII cannot have more than 2 modules. Please " "free the shared memory and start again."); } auto pos = modules.size(); - modules.emplace_back(make_unique(type, detectorIndex, pos, false)); + modules.emplace_back(make_unique(type, detectorIndex, pos)); shm()->totalNumberOfModules = modules.size(); modules[pos]->setControlPort(port); modules[pos]->setStopPort(port + 1); @@ -277,7 +251,19 @@ void DetectorImpl::updateDetectorSize() { if (detSizeX > 1 && detSizeX <= maxChanX) { maxChanX = detSizeX; } + if (maxChanX < modSize.x) { + std::stringstream os; + os << "The max det size in x dim (" << maxChanX + << ") is less than the module size in x dim (" << modSize.x + << "). Probably using shared memory of a different detector " + "type. Please free and try again."; + throw RuntimeError(os.str()); + } nModx = maxChanX / modSize.x; + if (nModx == 0) { + throw RuntimeError( + "number of modules in x dimension is 0. Unable to proceed."); + } nMody = size() / nModx; if ((maxChanX % modSize.x) > 0) { ++nMody; @@ -291,7 +277,18 @@ void DetectorImpl::updateDetectorSize() { if (detSizeY > 1 && detSizeY <= maxChanY) { maxChanY = detSizeY; } + if (maxChanY < modSize.y) { + std::stringstream os; + os << "The max det size in y dim (" << maxChanY + << ") is less than the module size in y dim (" << modSize.y + << "). Probably using shared memory of a different detector " + "type. Please free and try again."; + throw RuntimeError(os.str()); + } nMody = maxChanY / modSize.y; + if (nMody == 0) + throw RuntimeError( + "number of modules in y dimension is 0. Unable to proceed."); nModx = size() / nMody; if ((maxChanY % modSize.y) > 0) { ++nModx; @@ -516,7 +513,6 @@ void DetectorImpl::readFrameFromReceiver() { bool quadEnable = false; // to flip image bool eiger = false; - std::array rxRoi = shm()->rx_roi.getIntArray(); std::vector runningList(zmqSocket.size()); std::vector connectList(zmqSocket.size()); @@ -557,7 +553,7 @@ void DetectorImpl::readFrameFromReceiver() { memset(multiframe.get(), 0xFF, multisize); } - completeImage = (numZmqRunning == (int)zmqSocket.size()); + completeImage = true; // get each frame for (unsigned int isocket = 0; isocket < zmqSocket.size(); ++isocket) { @@ -574,7 +570,6 @@ void DetectorImpl::readFrameFromReceiver() { // parse error, version error or end of acquisition for // socket runningList[isocket] = false; - completeImage = false; --numZmqRunning; continue; } @@ -714,7 +709,7 @@ void DetectorImpl::readFrameFromReceiver() { thisData = new detectorData(currentProgress, currentFileName, nDetActualPixelsX, nDetActualPixelsY, callbackImage, imagesize, dynamicRange, - currentFileIndex, completeImage, rxRoi); + currentFileIndex, completeImage); try { dataReady( thisData, currentFrameIndex, @@ -1165,11 +1160,6 @@ int DetectorImpl::acquire() { if (acquisition_finished != nullptr) { // status auto statusList = Parallel(&Module::getRunStatus, {}); - // if any slave still waiting, wait up to 1s (gotthard) - for (int i = 0; i != 20 && statusList.any(WAITING); ++i) { - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - statusList = Parallel(&Module::getRunStatus, {}); - } runStatus status = statusList.squash(ERROR); // inconsistent status (squash error), but none of them in error if (status == ERROR && (!statusList.any(ERROR))) { @@ -1213,7 +1203,6 @@ bool DetectorImpl::handleSynchronization(Positions pos) { switch (shm()->detType) { case defs::MYTHEN3: case defs::GOTTHARD2: - case defs::GOTTHARD: handleSync = true; break; case defs::JUNGFRAU: @@ -1268,11 +1257,6 @@ void DetectorImpl::startAcquisition(const bool blocking, Positions pos) { // ensure all status normal (slaves not blocking) // to catch those slaves that are still 'waiting' auto statusList = Parallel(&Module::getRunStatus, pos); - // if any slave still waiting, wait up to 1s (gotthard) - for (int i = 0; i != 20 && statusList.any(WAITING); ++i) { - std::this_thread::sleep_for(std::chrono::milliseconds(50)); - statusList = Parallel(&Module::getRunStatus, pos); - } if (!statusList.contains_only(IDLE, STOPPED, RUN_FINISHED)) { throw RuntimeError("Acquisition not successful. " "Unexpected detector status"); @@ -1420,7 +1404,6 @@ std::vector DetectorImpl::readProgrammingFile(const std::string &fname) { } break; case EIGER: - case GOTTHARD: throw RuntimeError("programfpga not implemented for this detector"); default: throw RuntimeError( @@ -1538,31 +1521,6 @@ void DetectorImpl::setDefaultDac(defs::dacIndex index, int defaultValue, Parallel(&Module::setDefaultDac, pos, index, defaultValue, sett); } -defs::xy DetectorImpl::getPortGeometry() const { - defs::xy portGeometry(1, 1); - switch (shm()->detType) { - case EIGER: - portGeometry.x = modules[0]->getNumberofUDPInterfacesFromShm(); - break; - case JUNGFRAU: - case MOENCH: - portGeometry.y = modules[0]->getNumberofUDPInterfacesFromShm(); - break; - default: - break; - } - return portGeometry; -} - -defs::xy DetectorImpl::calculatePosition(int moduleIndex, - defs::xy geometry) const { - defs::xy pos{}; - int maxYMods = shm()->numberOfModules.y; - pos.y = (moduleIndex % maxYMods) * geometry.y; - pos.x = (moduleIndex / maxYMods) * geometry.x; - return pos; -} - void DetectorImpl::verifyUniqueDetHost(const uint16_t port, std::vector positions) const { // port for given positions @@ -1686,7 +1644,7 @@ void DetectorImpl::verifyUniqueHost( } } -defs::ROI DetectorImpl::getRxROI() const { +std::vector DetectorImpl::getRxROI(int module_id) const { if (shm()->detType == CHIPTESTBOARD || shm()->detType == defs::XILINX_CHIPTESTBOARD) { throw RuntimeError("RxRoi not implemented for this Detector"); @@ -1694,75 +1652,164 @@ defs::ROI DetectorImpl::getRxROI() const { if (modules.size() == 0) { throw RuntimeError("No Modules added"); } - // complete detector in roi - auto t = Parallel(&Module::getRxROI, {}); - if (t.equal() && t.front().completeRoi()) { - LOG(logDEBUG) << "no roi"; - return defs::ROI(0, shm()->numberOfChannels.x - 1, 0, - shm()->numberOfChannels.y - 1); + if (module_id >= (int)modules.size()) { + throw RuntimeError("Invalid module id: " + std::to_string(module_id)); + } + if (module_id >= 0) { + return modules[module_id]->getRxROI(); } - defs::xy numChansPerMod = modules[0]->getNumberOfChannels(); - bool is2D = (numChansPerMod.y > 1 ? true : false); - defs::xy geometry = getPortGeometry(); - - defs::ROI retval{}; - for (size_t iModule = 0; iModule != modules.size(); ++iModule) { - - defs::ROI moduleRoi = modules[iModule]->getRxROI(); - if (moduleRoi.noRoi()) { - LOG(logDEBUG) << iModule << ": no roi"; - } else { - // expand complete roi - if (moduleRoi.completeRoi()) { - moduleRoi.xmin = 0; - moduleRoi.xmax = numChansPerMod.x; - if (is2D) { - moduleRoi.ymin = 0; - moduleRoi.ymax = numChansPerMod.y; - } - } - LOG(logDEBUG) << iModule << ": " << moduleRoi; - - // get roi at detector level - defs::xy pos = calculatePosition(iModule, geometry); - defs::ROI moduleFullRoi{}; - moduleFullRoi.xmin = numChansPerMod.x * pos.x + moduleRoi.xmin; - moduleFullRoi.xmax = numChansPerMod.x * pos.x + moduleRoi.xmax; - if (is2D) { - moduleFullRoi.ymin = numChansPerMod.y * pos.y + moduleRoi.ymin; - moduleFullRoi.ymax = numChansPerMod.y * pos.y + moduleRoi.ymax; - } - LOG(logDEBUG) << iModule << ": (full roi)" << moduleFullRoi; - - // get min and max - if (retval.xmin == -1 || moduleFullRoi.xmin < retval.xmin) { - LOG(logDEBUG) << iModule << ": xmin updated"; - retval.xmin = moduleFullRoi.xmin; - } - if (retval.xmax == -1 || moduleFullRoi.xmax > retval.xmax) { - LOG(logDEBUG) << iModule << ": xmax updated"; - retval.xmax = moduleFullRoi.xmax; - } - if (retval.ymin == -1 || moduleFullRoi.ymin < retval.ymin) { - LOG(logDEBUG) << iModule << ": ymin updated"; - retval.ymin = moduleFullRoi.ymin; - } - if (retval.ymax == -1 || moduleFullRoi.ymax > retval.ymax) { - LOG(logDEBUG) << iModule << ": ymax updated"; - retval.ymax = moduleFullRoi.ymax; - } - } - LOG(logDEBUG) << iModule << ": (retval): " << retval; - } - if (retval.ymin == -1) { - retval.ymin = 0; - retval.ymax = 0; - } - return retval; + return modules[0]->getRxROIMetadata(); } -void DetectorImpl::setRxROI(const defs::ROI arg) { +void DetectorImpl::validateROIs(const std::vector &rois) { + for (size_t i = 0; i < rois.size(); ++i) { + const auto &roi = rois[i]; + + if (roi.noRoi()) { + throw RuntimeError("Invalid Roi of size 0. Roi: " + ToString(roi)); + } + bool is2D = (modules[0]->getNumberOfChannels().y > 1 ? true : false); + if (roi.completeRoi()) { + std::ostringstream oss; + oss << "Did you mean the clear roi command (API: clearRxROI, cmd: " + "rx_clearroi) Roi: [ -1, -1 "; + oss << (is2D ? ", -1, -1 ]?" : "]?"); + throw RuntimeError(oss.str()); + } + if (roi.xmin > roi.xmax || roi.ymin > roi.ymax) { + throw RuntimeError( + "Invalid Roi. xmin/ymin exceeds xmax/ymax. Roi: " + + ToString(roi)); + } + + if (roi.xmin < 0 || roi.xmax >= shm()->numberOfChannels.x) { + throw RuntimeError( + "ROI x-dimension outside detector bounds. Roi: " + + ToString(roi)); + } + + if (is2D) { + if (roi.ymin < 0 || roi.ymax >= shm()->numberOfChannels.y) { + throw RuntimeError( + "ROI y-dimension outside detector bounds. Roi: " + + ToString(roi)); + } + } else { + if ((roi.ymin != -1 && roi.ymin != 0) || + (roi.ymax != -1 && roi.ymax != 0)) { + throw RuntimeError( + "Invalid Y range for 1D detector: should be -1. Roi: " + + ToString(roi)); + } + } + + for (size_t j = i + 1; j < rois.size(); ++j) { + if (rois[i].overlap(rois[j])) { + throw RuntimeError("Invalid Overlapping Rois."); + } + } + } +} + +defs::xy DetectorImpl::getPortGeometry() const { + defs::xy portGeometry(1, 1); + switch (shm()->detType) { + case EIGER: + portGeometry.x = modules[0]->getNumberofUDPInterfacesFromShm(); + break; + case JUNGFRAU: + case MOENCH: + portGeometry.y = modules[0]->getNumberofUDPInterfacesFromShm(); + break; + case GOTTHARD2: // 2nd port if used is for veto, not data + default: + break; + } + return portGeometry; +} + +defs::xy DetectorImpl::calculatePosition(int moduleIndex) const { + int maxYMods = shm()->numberOfModules.y; + int y = (moduleIndex % maxYMods); + int x = (moduleIndex / maxYMods); + return defs::xy{x, y}; +} + +defs::ROI DetectorImpl::getModuleROI(int moduleIndex) const { + const defs::xy modSize = modules[0]->getNumberOfChannels(); + // calculate module position (not taking into account port geometry) + const defs::xy modPos = calculatePosition(moduleIndex); + const int xmin = modSize.x * modPos.x; + const int xmax = xmin + modSize.x - 1; + int ymin = -1, ymax = -1; + if (modSize.y > 1) { + ymin = modSize.y * modPos.y; + ymax = ymin + modSize.y - 1; + } + return defs::ROI{xmin, xmax, ymin, ymax}; +} + +void DetectorImpl::convertGlobalRoiToPortLevel( + const defs::ROI &userRoi, const defs::ROI &moduleRoi, + std::vector &portRois) const { + const defs::xy modSize = modules[0]->getNumberOfChannels(); + const defs::xy portGeometry = getPortGeometry(); + const int numPortsPerModule = portGeometry.x * portGeometry.y; + + if (numPortsPerModule > 2) { + throw RuntimeError("Only up to 2 ports per module supported."); + } + if (numPortsPerModule != (int)portRois.size()) { + throw RuntimeError("Number of port ROIs does not match number of ports " + "in module. Expected: " + + std::to_string(numPortsPerModule) + + ", got: " + std::to_string(portRois.size())); + } + + for (int port = 0; port != numPortsPerModule; ++port) { + defs::ROI portRoi = moduleRoi; + // Recalculate port ROI boundaries (split vertically or horizontally) + if (portGeometry.x == 2) { + int midX = (moduleRoi.xmin + moduleRoi.xmax) / 2; + if (port == 0) + portRoi.xmax = midX; + else + portRoi.xmin = midX + 1; + } else if (portGeometry.y == 2) { + int midY = (moduleRoi.ymin + moduleRoi.ymax) / 2; + if (port == 0) + portRoi.ymax = midY; + else + portRoi.ymin = midY + 1; + } + + // find overlapped roi (port vs user roi) + if (userRoi.overlap(portRoi)) { + defs::ROI clipped{}; + // Clip user ROI to port ROI + clipped.xmin = std::max(userRoi.xmin, portRoi.xmin) - portRoi.xmin; + clipped.xmax = std::min(userRoi.xmax, portRoi.xmax) - portRoi.xmin; + if (modSize.y > 1) { + clipped.ymin = + std::max(userRoi.ymin, portRoi.ymin) - portRoi.ymin; + clipped.ymax = + std::min(userRoi.ymax, portRoi.ymax) - portRoi.ymin; + } + + // Check if port ROI already exists for this port (from another user + // roi) + if (!portRois[port].completeRoi() && !portRois[port].noRoi()) { + throw RuntimeError( + "Multiple ROIs specified for the same port " + + std::to_string(port) + " with ROI: " + ToString(userRoi)); + } + portRois[port] = clipped; + } + } +} + +void DetectorImpl::setRxROI(const std::vector &args) { if (shm()->detType == CHIPTESTBOARD || shm()->detType == defs::XILINX_CHIPTESTBOARD) { throw RuntimeError("RxRoi not implemented for this Detector"); @@ -1770,118 +1817,41 @@ void DetectorImpl::setRxROI(const defs::ROI arg) { if (modules.size() == 0) { throw RuntimeError("No Modules added"); } - if (arg.noRoi()) { - throw RuntimeError("Invalid Roi of size 0."); - } - if (arg.completeRoi()) { - throw RuntimeError("Did you mean the clear roi command (API: " - "clearRxROI, cmd: rx_clearroi)?"); - } - if (arg.xmin > arg.xmax || arg.ymin > arg.ymax) { - throw RuntimeError( - "Invalid Receiver Roi. xmin/ymin exceeds xmax/ymax."); + + if (args.empty()) { + return clearRxROI(); } - defs::xy numChansPerMod = modules[0]->getNumberOfChannels(); - bool is2D = (numChansPerMod.y > 1 ? true : false); - defs::xy geometry = getPortGeometry(); + validateROIs(args); + int nPortsPerModule = + Parallel(&Module::getNumberofUDPInterfacesFromShm, {}) + .tsquash("Inconsistent number of udp ports set up per module"); - if (!is2D && ((arg.ymin != -1 && arg.ymin != 0) || - (arg.ymax != -1 && arg.ymax != 0))) { - throw RuntimeError( - "Invalid Receiver roi. Cannot set 2d roi for a 1d detector."); - } + for (size_t iModule = 0; iModule < modules.size(); ++iModule) { + auto moduleGlobalRoi = getModuleROI(iModule); + // at most 2 rois per module (for each port) + std::vector portRois(nPortsPerModule); - if (arg.xmin < 0 || arg.xmax >= shm()->numberOfChannels.x || - (is2D && (arg.ymin < 0 || arg.ymax >= shm()->numberOfChannels.y))) { - throw RuntimeError("Invalid Receiver Roi. Outside detector range."); - } - - for (size_t iModule = 0; iModule != modules.size(); ++iModule) { - // default init = complete roi - defs::ROI moduleRoi{}; - - // incomplete roi - if (!arg.completeRoi()) { - // multi module Gotthard2 - if (shm()->detType == GOTTHARD2 && size() > 1) { - moduleRoi.xmin = arg.xmin / 2; - moduleRoi.xmax = arg.xmax / 2; - if (iModule == 0) { - // all should be even - if (arg.xmin % 2 != 0) { - ++moduleRoi.xmin; - } - } else if (iModule == 1) { - // all should be odd - if (arg.xmax % 2 == 0) { - --moduleRoi.xmax; - } - } else { - throw RuntimeError("Cannot have more than 2 modules for a " - "Gotthard2 detector"); - } - } else { - // get module limits - defs::xy pos = calculatePosition(iModule, geometry); - defs::ROI moduleFullRoi{}; - moduleFullRoi.xmin = numChansPerMod.x * pos.x; - moduleFullRoi.xmax = numChansPerMod.x * (pos.x + 1) - 1; - if (is2D) { - moduleFullRoi.ymin = numChansPerMod.y * pos.y; - moduleFullRoi.ymax = numChansPerMod.y * (pos.y + 1) - 1; - } - - // no roi - if (arg.xmin > moduleFullRoi.xmax || - arg.xmax < moduleFullRoi.xmin || - (is2D && (arg.ymin > moduleFullRoi.ymax || - arg.ymax < moduleFullRoi.ymin))) { - moduleRoi.setNoRoi(); - } - // incomplete module roi - else if (arg.xmin > moduleFullRoi.xmin || - arg.xmax < moduleFullRoi.xmax || - (is2D && (arg.ymin > moduleFullRoi.ymin || - arg.ymax < moduleFullRoi.ymax))) { - moduleRoi.xmin = (arg.xmin <= moduleFullRoi.xmin) - ? 0 - : (arg.xmin % numChansPerMod.x); - moduleRoi.xmax = (arg.xmax >= moduleFullRoi.xmax) - ? numChansPerMod.x - 1 - : (arg.xmax % numChansPerMod.x); - if (is2D) { - moduleRoi.ymin = (arg.ymin <= moduleFullRoi.ymin) - ? 0 - : (arg.ymin % numChansPerMod.y); - moduleRoi.ymax = (arg.ymax >= moduleFullRoi.ymax) - ? numChansPerMod.y - 1 - : (arg.ymax % numChansPerMod.y); - } - } + // check overlap with module + for (const auto &arg : args) { + if (arg.overlap(moduleGlobalRoi)) { + convertGlobalRoiToPortLevel(arg, moduleGlobalRoi, portRois); } } - modules[iModule]->setRxROI(moduleRoi); + modules[iModule]->setRxROI(portRois); } - // updating shm rx_roi for gui purposes - shm()->rx_roi = arg; - // metadata - if (arg.completeRoi()) { - modules[0]->setRxROIMetadata(defs::ROI(0, shm()->numberOfChannels.x - 1, - 0, - shm()->numberOfChannels.y - 1)); - } else { - modules[0]->setRxROIMetadata(arg); - } + modules[0]->setRxROIMetadata(args); } void DetectorImpl::clearRxROI() { - Parallel(&Module::setRxROI, {}, defs::ROI{}); - shm()->rx_roi.xmin = -1; - shm()->rx_roi.ymin = -1; - shm()->rx_roi.xmax = -1; - shm()->rx_roi.ymax = -1; + int nPortsPerModule = + Parallel(&Module::getNumberofUDPInterfacesFromShm, {}) + .tsquash("Inconsistent number of udp ports set up per module"); + for (size_t iModule = 0; iModule < modules.size(); ++iModule) { + modules[iModule]->setRxROI(std::vector(nPortsPerModule)); + } + modules[0]->setRxROIMetadata(std::vector(1)); } void DetectorImpl::getBadChannels(const std::string &fname, diff --git a/slsDetectorSoftware/src/DetectorImpl.h b/slsDetectorSoftware/src/DetectorImpl.h index 424330043..fddccfe2f 100644 --- a/slsDetectorSoftware/src/DetectorImpl.h +++ b/slsDetectorSoftware/src/DetectorImpl.h @@ -24,7 +24,7 @@ class detectorData; class Module; #define DETECTOR_SHMAPIVERSION 0x190809 -#define DETECTOR_SHMVERSION 0x220505 +#define DETECTOR_SHMVERSION 0x250820 #define SHORT_STRING_LENGTH 50 /** @@ -51,35 +51,31 @@ struct sharedDetector { int totalNumberOfModules; slsDetectorDefs::detectorType detType; - /** END OF FIXED PATTERN - * -----------------------------------------------*/ - /** Number of modules operated at once */ slsDetectorDefs::xy numberOfModules; /** max number of channels for complete detector*/ slsDetectorDefs::xy numberOfChannels; + bool isValid{true}; // false if freed to block access from python or c++ api + + /** END OF FIXED PATTERN + * -----------------------------------------------*/ + bool acquiringFlag; bool initialChecks; bool gapPixels; /** high water mark of listening tcp port (only data) */ int zmqHwm; - /** in shm for gui purposes */ - defs::ROI rx_roi{}; }; class DetectorImpl : public virtual slsDetectorDefs { public: - /** - * @param verify true to verify if shared memory version matches existing - * one - * @param update true to update last user pid, date etc - */ - explicit DetectorImpl(int detector_index = 0, bool verify = true, - bool update = true); + explicit DetectorImpl(int detector_index = 0); - template struct NonDeduced { using type = CT; }; + template struct NonDeduced { + using type = CT; + }; template Result Parallel(RT (Module::*somefunc)(CT...), std::vector positions, @@ -193,9 +189,6 @@ class DetectorImpl : public virtual slsDetectorDefs { /** return detector index in shared memory */ int getDetectorIndex() const; - /** Get user details of shared memory */ - std::string getUserDetails(); - bool getInitialChecks() const; /** initial compaibility and other server start up checks @@ -301,8 +294,9 @@ class DetectorImpl : public virtual slsDetectorDefs { std::vector> verifyUniqueRxHost(const std::vector &names) const; - defs::ROI getRxROI() const; - void setRxROI(const defs::ROI arg); + defs::xy getPortGeometry() const; + std::vector getRxROI(int module_id = -1) const; + void setRxROI(const std::vector &args); void clearRxROI(); void getBadChannels(const std::string &fname, Positions pos) const; @@ -338,26 +332,20 @@ class DetectorImpl : public virtual slsDetectorDefs { /** * Creates/open shared memory, initializes detector structure and members * Called by constructor/ set hostname / read config file - * @param verify true to verify if shared memory version matches existing - * one - * @param update true to update last user pid, date etc */ - void setupDetector(bool verify = true, bool update = true); + void setupDetector(); /** * Creates shm and initializes shm structure OR * Open shm and maps to structure - * @param verify true to verify if shm size matches existing one */ - void initSharedMemory(bool verify = true); + void initSharedMemory(); /** Initialize detector structure for the shared memory just created */ void initializeDetectorStructure(); - /** Initialize members (eg. modules from shm, zmqsockets) - * @param verify true to verify if shm size matches existing one - */ - void initializeMembers(bool verify = true); + /** Initialize members (eg. modules from shm, zmqsockets) */ + void initializeMembers(); /** Update in shm */ void updateUserdetails(); @@ -420,12 +408,17 @@ class DetectorImpl : public virtual slsDetectorDefs { */ int kbhit(); - defs::xy getPortGeometry() const; - defs::xy calculatePosition(int moduleIndex, defs::xy geometry) const; - void verifyUniqueHost( bool isDet, std::vector> &hosts) const; + bool roisOverlap(const defs::ROI &a, const defs::ROI &b) const; + void validateROIs(const std::vector &rois); + defs::xy calculatePosition(int moduleIndex) const; + defs::ROI getModuleROI(int moduleIndex) const; + void convertGlobalRoiToPortLevel(const defs::ROI &userRoi, + const defs::ROI &moduleRoi, + std::vector &portRois) const; + const int detectorIndex{0}; SharedMemory shm{0, -1}; SharedMemory ctb_shm{0, -1, CtbConfig::shm_tag()}; diff --git a/slsDetectorSoftware/src/HelpDacs.cpp b/slsDetectorSoftware/src/HelpDacs.cpp index 3a2c0504c..aaa67cbcf 100644 --- a/slsDetectorSoftware/src/HelpDacs.cpp +++ b/slsDetectorSoftware/src/HelpDacs.cpp @@ -93,35 +93,19 @@ std::string GetHelpDac(std::string dac) { } if (dac == "vref_ds") { return std::string("[dac or mV value][(optional unit) mV] " - "\n\t[Gotthard][Jungfrau] Dac for ??"); - } - if (dac == "vcascn_pb") { - return std::string( - "[dac or mV value][(optional unit) mV] \n\t[Gotthard] Dac for ??"); - } - if (dac == "vcascp_pb") { - return std::string( - "[dac or mV value][(optional unit) mV] \n\t[Gotthard] Dac for ??"); + "\n\t[Jungfrau] Dac for ??"); } if (dac == "vout_cm") { return std::string("[dac or mV value][(optional unit) mV] " - "\n\t[Gotthard] Dac for ??\n\t[Moench] Dac for 5"); - } - if (dac == "vcasc_out") { - return std::string( - "[dac or mV value][(optional unit) mV] \n\t[Gotthard] Dac for ??"); + "\n\t[Moench] Dac for 5"); } if (dac == "vin_cm") { return std::string("[dac or mV value][(optional unit) mV] " - "\n\t[Gotthard] Dac for ??\n\t[Moench] Dac for 2"); + "\n\t[Moench] Dac for 2"); } if (dac == "vref_comp") { return std::string("[dac or mV value][(optional unit) mV] " - "\n\t[Gotthard][Jungfrau] Dac for ??"); - } - if (dac == "ib_test_c") { - return std::string( - "[dac or mV value][(optional unit) mV] \n\t[Gotthard] Dac for ??"); + "\n\t[Jungfrau] Dac for ??"); } if (dac == "vrshaper_n") { return std::string( diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 93a50789e..a47eda649 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -30,27 +30,15 @@ namespace sls { // creating new shm -Module::Module(detectorType type, int det_id, int module_index, bool verify) +Module::Module(detectorType type, int det_id, int module_index) : moduleIndex(module_index), shm(det_id, module_index) { - - // ensure shared memory was not created before - if (shm.exists()) { - LOG(logWARNING) << "This shared memory should have been " - "deleted before! " - << shm.getName() << ". Freeing it again"; - shm.removeSharedMemory(); - } - - initSharedMemory(type, det_id, verify); + createSharedMemory(type, det_id); } // opening existing shm -Module::Module(int det_id, int module_index, bool verify) +Module::Module(int det_id, int module_index) : moduleIndex(module_index), shm(det_id, module_index) { - - // getDetectorType From shm will check if existing - detectorType type = getDetectorTypeFromShm(det_id, verify); - initSharedMemory(type, det_id, verify); + openSharedMemory(det_id); } bool Module::isFixedPatternSharedMemoryCompatible() const { @@ -161,6 +149,7 @@ Module::getTypeFromDetector(const std::string &hostname, uint16_t cport) { LOG(logDEBUG1) << "Getting Module type "; ClientSocket socket("Detector", hostname, cport); socket.Send(F_GET_DETECTOR_TYPE); + socket.setFnum(F_GET_DETECTOR_TYPE); if (socket.Receive() == FAIL) { throw RuntimeError("Detector (" + hostname + ", " + std::to_string(cport) + @@ -555,6 +544,7 @@ void Module::setSynchronization(const bool value) { std::vector Module::getBadChannels() const { auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_GET_BAD_CHANNELS); + client.setFnum(F_GET_BAD_CHANNELS); if (client.Receive() == FAIL) { throw DetectorError("Detector " + std::to_string(moduleIndex) + " returned error: " + client.readErrorMessage()); @@ -576,6 +566,7 @@ void Module::setBadChannels(std::vector list) { LOG(logDEBUG1) << "Sending bad channels to detector, nch:" << nch; auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_SET_BAD_CHANNELS); + client.setFnum(F_SET_BAD_CHANNELS); client.Send(nch); if (nch > 0) { client.Send(list); @@ -631,10 +622,22 @@ void Module::setNumberOfTriggers(int64_t value) { } int64_t Module::getExptime(int gateIndex) const { + if (shm()->detType == CHIPTESTBOARD || + shm()->detType == XILINX_CHIPTESTBOARD) { + LOG(logWARNING) + << "Exposure time is deprecated and will be removed for this " + "detector. Please migrate to patwaittime."; + } return sendToDetector(F_GET_EXPTIME, gateIndex); } void Module::setExptime(int gateIndex, int64_t value) { + if (shm()->detType == CHIPTESTBOARD || + shm()->detType == XILINX_CHIPTESTBOARD) { + LOG(logWARNING) + << "Exposure time is deprecated and will be removed for this " + "detector. Please migrate to patwaittime."; + } int64_t prevVal = value; if (shm()->detType == EIGER) { prevVal = getExptime(-1); @@ -642,9 +645,16 @@ void Module::setExptime(int gateIndex, int64_t value) { int64_t args[]{static_cast(gateIndex), value}; sendToDetector(F_SET_EXPTIME, args, nullptr); if (shm()->useReceiverFlag) { + // get exact value due to clk + if (shm()->detType == MYTHEN3 && gateIndex == -1) { + value = getExptime(0); // m3 does not support -1 + } else { + value = getExptime(gateIndex); // others only support -1 + } + args[1] = value; sendToReceiver(F_RECEIVER_SET_EXPTIME, args, nullptr); } - if (prevVal != value) { + if (shm()->detType == EIGER && prevVal != value) { updateRateCorrection(); } } @@ -656,6 +666,7 @@ int64_t Module::getPeriod() const { void Module::setPeriod(int64_t value) { sendToDetector(F_SET_PERIOD, value, nullptr); if (shm()->useReceiverFlag) { + value = getPeriod(); // get exact value due to clk sendToReceiver(F_RECEIVER_SET_PERIOD, value, nullptr); } } @@ -734,6 +745,9 @@ slsDetectorDefs::speedLevel Module::getReadoutSpeed() const { void Module::setReadoutSpeed(speedLevel value) { sendToDetector(F_SET_READOUT_SPEED, value, nullptr); + if (shm()->useReceiverFlag) { + sendToReceiver(F_SET_RECEIVER_READOUT_SPEED, value, nullptr); + } } int Module::getClockDivider(int clkIndex) const { @@ -966,6 +980,7 @@ std::vector Module::getFramesCaughtByReceiver() const { if (shm()->useReceiverFlag) { auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); client.Send(F_GET_RECEIVER_FRAMES_CAUGHT); + client.setFnum(F_GET_RECEIVER_FRAMES_CAUGHT); if (client.Receive() == FAIL) { throw ReceiverError( "Receiver " + std::to_string(moduleIndex) + @@ -988,6 +1003,7 @@ std::vector Module::getNumMissingPackets() const { if (shm()->useReceiverFlag) { auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); client.Send(F_GET_NUM_MISSING_PACKETS); + client.setFnum(F_GET_NUM_MISSING_PACKETS); if (client.Receive() == FAIL) { throw ReceiverError( "Receiver " + std::to_string(moduleIndex) + @@ -1010,6 +1026,7 @@ std::vector Module::getReceiverCurrentFrameIndex() const { if (shm()->useReceiverFlag) { auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); client.Send(F_GET_RECEIVER_FRAME_INDEX); + client.setFnum(F_GET_RECEIVER_FRAME_INDEX); if (client.Receive() == FAIL) { throw ReceiverError( "Receiver " + std::to_string(moduleIndex) + @@ -1185,7 +1202,7 @@ void Module::setDestinationUDPIP(const IpAddr ip) { } sendToDetector(F_SET_DEST_UDP_IP, ip, nullptr); if (shm()->useReceiverFlag) { - MacAddr retval(0LU); + MacAddr retval; sendToReceiver(F_SET_RECEIVER_UDP_IP, ip, retval); LOG(logINFO) << "Setting destination udp mac of Module " << moduleIndex << " to " << retval; @@ -1208,7 +1225,7 @@ void Module::setDestinationUDPIP2(const IpAddr ip) { } sendToDetector(F_SET_DEST_UDP_IP2, ip, nullptr); if (shm()->useReceiverFlag) { - MacAddr retval(0LU); + MacAddr retval; sendToReceiver(F_SET_RECEIVER_UDP_IP2, ip, retval); LOG(logINFO) << "Setting destination udp mac2 of Module " << moduleIndex << " to " << retval; @@ -1503,17 +1520,94 @@ void Module::setRxArping(bool enable) { sendToReceiver(F_SET_RECEIVER_ARPING, static_cast(enable), nullptr); } -defs::ROI Module::getRxROI() const { - return sendToReceiver(F_RECEIVER_GET_RECEIVER_ROI); +std::vector Module::getRxROI() const { + LOG(logDEBUG1) << "Getting receiver ROI for Module " << moduleIndex; + // check number of ports + if (!shm()->useReceiverFlag) { + throw RuntimeError("No receiver to get ROI."); + } + auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); + client.Send(F_RECEIVER_GET_RECEIVER_ROI); + client.setFnum(F_RECEIVER_GET_RECEIVER_ROI); + auto nPorts = client.Receive(); + std::vector retval(nPorts); + if (nPorts > 0) + client.Receive(retval); + if (nPorts != shm()->numUDPInterfaces) { + throw RuntimeError( + "Invalid number of rois: " + std::to_string(nPorts) + + ". Expected: " + std::to_string(shm()->numUDPInterfaces)); + } + LOG(logDEBUG1) << "ROI of Receiver" << moduleIndex << ": " + << ToString(retval); + return retval; } -void Module::setRxROI(const slsDetectorDefs::ROI arg) { - LOG(logDEBUG) << moduleIndex << ": " << arg; - sendToReceiver(F_RECEIVER_SET_RECEIVER_ROI, arg, nullptr); +void Module::setRxROI(const std::vector &portRois) { + LOG(logDEBUG) << "Sending to receiver " << moduleIndex + << " [roi: " << ToString(portRois) << ']'; + if (!shm()->useReceiverFlag) { + throw RuntimeError("No receiver to set ROI."); + } + if ((int)portRois.size() != shm()->numUDPInterfaces) { + throw RuntimeError( + "Invalid number of ROIs: " + std::to_string(portRois.size()) + + ". Expected: " + std::to_string(shm()->numUDPInterfaces)); + } + // check number of ports + auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); + client.Send(F_RECEIVER_SET_RECEIVER_ROI); + client.setFnum(F_RECEIVER_SET_RECEIVER_ROI); + int size = static_cast(portRois.size()); + client.Send(size); + if (size > 0) + client.Send(portRois); + if (client.Receive() == FAIL) { + throw ReceiverError("Receiver " + std::to_string(moduleIndex) + + " returned error: " + client.readErrorMessage()); + } } -void Module::setRxROIMetadata(const slsDetectorDefs::ROI arg) { - sendToReceiver(F_RECEIVER_SET_RECEIVER_ROI_METADATA, arg, nullptr); +std::vector Module::getRxROIMetadata() const { + LOG(logDEBUG1) << "Getting receiver ROI metadata for Module " + << moduleIndex; + // check number of ports + if (!shm()->useReceiverFlag) { + throw RuntimeError("No receiver to get ROI metadata."); + } + auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); + client.Send(F_RECEIVER_GET_ROI_METADATA); + client.setFnum(F_RECEIVER_GET_ROI_METADATA); + auto size = client.Receive(); + std::vector retval(size); + if (size > 0) + client.Receive(retval); + if (size == 0) { + throw RuntimeError("Invalid number of ROI metadata: " + + std::to_string(size) + ". Min: 1."); + } + LOG(logDEBUG1) << "ROI metadata of Receiver: " << ToString(retval); + return retval; +} + +void Module::setRxROIMetadata(const std::vector &args) { + LOG(logDEBUG) << "Sending to receiver " << moduleIndex + << " [roi metadata: " << ToString(args) << ']'; + auto receiver = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); + receiver.Send(F_RECEIVER_SET_RECEIVER_ROI_METADATA); + receiver.setFnum(F_RECEIVER_SET_RECEIVER_ROI_METADATA); + int size = static_cast(args.size()); + receiver.Send(size); + if (size > 0) + receiver.Send(args); + if (size < 1) { + throw RuntimeError("Invalid number of ROI metadata: " + + std::to_string(size) + ". Min: 1."); + } + if (receiver.Receive() == FAIL) { + throw ReceiverError("Receiver " + std::to_string(moduleIndex) + + " returned error: " + receiver.readErrorMessage()); + } } // File @@ -1682,6 +1776,7 @@ void Module::setSubExptime(int64_t value) { } sendToDetector(F_SET_SUB_EXPTIME, value, nullptr); if (shm()->useReceiverFlag) { + value = getSubExptime(); // get exact value due to clk sendToReceiver(F_RECEIVER_SET_SUB_EXPTIME, value, nullptr); } if (prevVal != value) { @@ -1696,6 +1791,7 @@ int64_t Module::getSubDeadTime() const { void Module::setSubDeadTime(int64_t value) { sendToDetector(F_SET_SUB_DEADTIME, value, nullptr); if (shm()->useReceiverFlag) { + value = getSubDeadTime(); // get exact value due to clk sendToReceiver(F_RECEIVER_SET_SUB_DEADTIME, value, nullptr); } } @@ -1726,6 +1822,7 @@ void Module::sendReceiverRateCorrections(const std::vector &t) { << ']'; auto receiver = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); receiver.Send(F_SET_RECEIVER_RATE_CORRECT); + receiver.setFnum(F_SET_RECEIVER_RATE_CORRECT); receiver.Send(static_cast(t.size())); receiver.Send(t); if (receiver.Receive() == FAIL) { @@ -1948,29 +2045,6 @@ void Module::setCollectionMode(const defs::collectionMode value) { sendToDetector(F_SET_COLLECTION_MODE, static_cast(value), nullptr); } -// Gotthard Specific - -slsDetectorDefs::ROI Module::getROI() const { - return sendToDetector(F_GET_ROI); -} - -void Module::setROI(slsDetectorDefs::ROI arg) { - if (arg.xmin < 0 || arg.xmax >= getNumberOfChannels().x) { - arg.xmin = -1; - arg.xmax = -1; - } - sendToDetector(F_SET_ROI, arg, nullptr); - if (shm()->useReceiverFlag) { - sendToReceiver(F_RECEIVER_SET_DETECTOR_ROI, arg, nullptr); - } -} - -void Module::clearROI() { setROI(slsDetectorDefs::ROI{}); } - -int64_t Module::getExptimeLeft() const { - return sendToDetectorStop(F_GET_EXPTIME_LEFT); -} - // Gotthard2 Specific int64_t Module::getNumberOfBursts() const { @@ -2022,6 +2096,7 @@ void Module::sendVetoPhoton(const int chipIndex, const int args[]{chipIndex, nch}; auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_SET_VETO_PHOTON); + client.setFnum(F_SET_VETO_PHOTON); client.Send(args); client.Send(gainIndices); client.Send(values); @@ -2036,6 +2111,7 @@ void Module::getVetoPhoton(const int chipIndex, LOG(logDEBUG1) << "Getting veto photon [" << chipIndex << "]\n"; auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_GET_VETO_PHOTON); + client.setFnum(F_GET_VETO_PHOTON); client.Send(chipIndex); if (client.Receive() == FAIL) { throw DetectorError("Detector " + std::to_string(moduleIndex) + @@ -2213,6 +2289,8 @@ void Module::setBurstMode(slsDetectorDefs::burstMode value) { sendToDetector(F_SET_BURST_MODE, value, nullptr); if (shm()->useReceiverFlag) { sendToReceiver(F_SET_RECEIVER_BURST_MODE, value, nullptr); + // changing burst mode may change exptime due to clk change + setExptime(-1, getExptime(-1)); // update exact exptime in receiver } } @@ -2304,6 +2382,9 @@ void Module::setGateDelay(int gateIndex, int64_t value) { int64_t args[]{static_cast(gateIndex), value}; sendToDetector(F_SET_GATE_DELAY, args, nullptr); if (shm()->useReceiverFlag) { + // get exact value due to clk + args[1] = + getGateDelay(gateIndex == -1 ? 0 : gateIndex); // m3 doesnt allow -1 sendToReceiver(F_SET_RECEIVER_GATE_DELAY, args, nullptr); } } @@ -2376,7 +2457,6 @@ void Module::setNumberOfAnalogSamples(int value) { // update #nchan, as it depends on #samples, adcmask updateNumberOfChannels(); if (shm()->useReceiverFlag) { - LOG(logINFORED) << "receiver up!"; sendToReceiver(F_RECEIVER_SET_NUM_ANALOG_SAMPLES, value, nullptr); } } @@ -2512,6 +2592,15 @@ void Module::setReceiverDbitOffset(int value) { sendToReceiver(F_SET_RECEIVER_DBIT_OFFSET, value, nullptr); } +bool Module::getReceiverDbitReorder() const { + return sendToReceiver(F_GET_RECEIVER_DBIT_REORDER); +} + +void Module::setReceiverDbitReorder(bool reorder) { + sendToReceiver(F_SET_RECEIVER_DBIT_REORDER, static_cast(reorder), + nullptr); +} + void Module::setDigitalIODelay(uint64_t pinMask, int delay) { uint64_t args[]{pinMask, static_cast(delay)}; sendToDetector(F_DIGITAL_IO_DELAY, args, nullptr); @@ -2542,6 +2631,7 @@ std::string Module::getPatterFileName() const { void Module::setPattern(const Pattern &pat, const std::string &fname) { auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_SET_PATTERN); + client.setFnum(F_SET_PATTERN); client.Send(pat.data(), pat.size()); char args[MAX_STR_LENGTH]{}; strcpy_safe(args, fname.c_str()); @@ -2612,15 +2702,23 @@ void Module::setPatternWaitAddr(int level, int addr) { sendToDetector(F_SET_PATTERN_WAIT_ADDR, args); } -uint64_t Module::getPatternWaitTime(int level) const { +uint64_t Module::getPatternWaitClocks(int level) const { uint64_t args[]{static_cast(level), static_cast(GET_FLAG)}; - return sendToDetector(F_SET_PATTERN_WAIT_TIME, args); + return sendToDetector(F_SET_PATTERN_WAIT_CLOCKS, args); } -void Module::setPatternWaitTime(int level, uint64_t t) { +void Module::setPatternWaitClocks(int level, uint64_t t) { uint64_t args[]{static_cast(level), t}; - sendToDetector(F_SET_PATTERN_WAIT_TIME, args); + sendToDetector(F_SET_PATTERN_WAIT_CLOCKS, args); +} + +uint64_t Module::getPatternWaitInterval(int level) const { + return sendToDetector(F_GET_PATTERN_WAIT_INTERVAL, level); +} +void Module::setPatternWaitInterval(int level, uint64_t t) { + uint64_t args[]{static_cast(level), t}; + sendToDetector(F_SET_PATTERN_WAIT_INTERVAL, args, nullptr); } uint64_t Module::getPatternMask() const { @@ -2652,6 +2750,7 @@ std::map Module::getAdditionalJsonHeader() const { } auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); client.Send(F_GET_ADDITIONAL_JSON_HEADER); + client.setFnum(F_GET_ADDITIONAL_JSON_HEADER); if (client.Receive() == FAIL) { throw ReceiverError("Receiver " + std::to_string(moduleIndex) + " returned error: " + client.readErrorMessage()); @@ -2697,6 +2796,7 @@ void Module::setAdditionalJsonHeader( << ToString(jsonHeader); auto client = ReceiverSocket(shm()->rxHostname, shm()->rxTCPPort); client.Send(F_SET_ADDITIONAL_JSON_HEADER); + client.setFnum(F_SET_ADDITIONAL_JSON_HEADER); client.Send(size); if (size > 0) client.Send(&buff[0], buff.size()); @@ -2892,6 +2992,7 @@ std::string Module::executeCommand(const std::string &cmd) { << "): Sending command " << cmd; auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_EXEC_COMMAND); + client.setFnum(F_EXEC_COMMAND); client.Send(arg); if (client.Receive() == FAIL) { std::cout << '\n'; @@ -3290,43 +3391,39 @@ Ret Module::sendToReceiver(int fnum, const Arg &args) { return static_cast(*this).sendToReceiver(fnum, args); } -slsDetectorDefs::detectorType Module::getDetectorTypeFromShm(int det_id, - bool verify) { +void Module::createSharedMemory(detectorType type, int det_id) { + shm = SharedMemory(det_id, moduleIndex); + + // ensure shared memory was not created before + if (shm.exists()) { + LOG(logWARNING) + << "This shared memory " + shm.getName() + + " should have been deleted before! Freeing it to continue."; + shm.removeSharedMemory(); + } + shm.createSharedMemory(); + initializeModuleStructure(type); +} + +void Module::openSharedMemory(int det_id) { + shm = SharedMemory(det_id, moduleIndex); + if (!shm.exists()) { throw SharedMemoryError("Shared memory " + shm.getName() + " does not exist.\n Corrupted Multi Shared " "memory. Please free shared memory."); } - shm.openSharedMemory(verify); - if (verify && shm()->shmversion != MODULE_SHMVERSION) { + shm.openSharedMemory(true); + if (shm()->shmversion != MODULE_SHMVERSION) { std::ostringstream ss; - ss << "Single shared memory (" << det_id << "-" << moduleIndex - << ":)version mismatch (expected 0x" << std::hex << MODULE_SHMVERSION - << " but got 0x" << shm()->shmversion << ")" << std::dec - << ". Clear Shared memory to continue."; + ss << "Module shared memory (" << det_id << "-" << moduleIndex + << ":) version mismatch (expected 0x" << std::hex + << MODULE_SHMVERSION << " but got 0x" << shm()->shmversion << ")" + << std::dec << ". Clear Shared memory to continue."; shm.unmapSharedMemory(); throw SharedMemoryError(ss.str()); } - return shm()->detType; -} - -void Module::initSharedMemory(detectorType type, int det_id, bool verify) { - shm = SharedMemory(det_id, moduleIndex); - if (!shm.exists()) { - shm.createSharedMemory(); - initializeModuleStructure(type); - } else { - shm.openSharedMemory(verify); - if (verify && shm()->shmversion != MODULE_SHMVERSION) { - std::ostringstream ss; - ss << "Single shared memory (" << det_id << "-" << moduleIndex - << ":) version mismatch (expected 0x" << std::hex - << MODULE_SHMVERSION << " but got 0x" << shm()->shmversion << ")" - << std::dec << ". Clear Shared memory to continue."; - throw SharedMemoryError(ss.str()); - } - } } void Module::initializeModuleStructure(detectorType type) { @@ -3408,8 +3505,6 @@ const std::string Module::getDetectorAPI() const { return APIEIGER; case JUNGFRAU: return APIJUNGFRAU; - case GOTTHARD: - return APIGOTTHARD; case CHIPTESTBOARD: return APICTB; case MOENCH: @@ -3504,6 +3599,7 @@ void Module::setModule(sls_detector_module &module, bool trimbits) { } auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_SET_MODULE); + client.setFnum(F_SET_MODULE); sendModule(&module, client); if (client.Receive() == FAIL) { throw DetectorError("Module " + std::to_string(moduleIndex) + @@ -3516,6 +3612,7 @@ sls_detector_module Module::getModule() { sls_detector_module module(shm()->detType); auto client = DetectorSocket(shm()->hostname, shm()->controlPort); client.Send(F_GET_MODULE); + client.setFnum(F_GET_MODULE); if (client.Receive() == FAIL) { throw DetectorError("Module " + std::to_string(moduleIndex) + " returned error: " + client.readErrorMessage()); diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index aa6f02f1a..d1fd4a325 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -19,7 +19,7 @@ namespace sls { class ServerInterface; #define MODULE_SHMAPIVERSION 0x190726 -#define MODULE_SHMVERSION 0x230913 +#define MODULE_SHMVERSION 0x250820 /** * @short structure allocated in shared memory to store Module settings for @@ -32,6 +32,7 @@ struct sharedModule { int shmversion; char hostname[MAX_STR_LENGTH]; slsDetectorDefs::detectorType detType; + bool isValid{true}; // false if freed to block access from python or c++ api /** END OF FIXED PATTERN -----------------------------------------------*/ @@ -66,14 +67,11 @@ class Module : public virtual slsDetectorDefs { * * * ************************************************/ - /** creating new shared memory - verify is if shared memory version matches existing one */ - explicit Module(detectorType type, int det_id = 0, int module_index = 0, - bool verify = true); + /** creating new shared memory */ + explicit Module(detectorType type, int det_id = 0, int module_index = 0); - /** opening existing shared memory - verify is if shared memory version matches existing one */ - explicit Module(int det_id = 0, int module_index = 0, bool verify = true); + /** opening existing shared memory */ + explicit Module(int det_id = 0, int module_index = 0); bool isFixedPatternSharedMemoryCompatible() const; std::string getHostname() const; @@ -301,9 +299,10 @@ class Module : public virtual slsDetectorDefs { std::array getReceiverThreadIds() const; bool getRxArping() const; void setRxArping(bool enable); - defs::ROI getRxROI() const; - void setRxROI(const slsDetectorDefs::ROI arg); - void setRxROIMetadata(const slsDetectorDefs::ROI arg); + std::vector getRxROI() const; + void setRxROI(const std::vector &portRois); + void setRxROIMetadata(const std::vector &args); + std::vector getRxROIMetadata() const; /************************************************** * * @@ -418,16 +417,6 @@ class Module : public virtual slsDetectorDefs { defs::collectionMode getCollectionMode() const; void setCollectionMode(const defs::collectionMode enable); - /************************************************** - * * - * Gotthard Specific * - * * - * ************************************************/ - slsDetectorDefs::ROI getROI() const; - void setROI(slsDetectorDefs::ROI arg); - void clearROI(); - int64_t getExptimeLeft() const; - /************************************************** * * * Gotthard2 Specific * @@ -520,6 +509,8 @@ class Module : public virtual slsDetectorDefs { void setReceiverDbitList(std::vector list); int getReceiverDbitOffset() const; void setReceiverDbitOffset(int value); + bool getReceiverDbitReorder() const; + void setReceiverDbitReorder(bool value); void setDigitalIODelay(uint64_t pinMask, int delay); bool getLEDEnable() const; void setLEDEnable(bool enable); @@ -550,8 +541,10 @@ class Module : public virtual slsDetectorDefs { void setPatternLoopCycles(int level, int n); int getPatternWaitAddr(int level) const; void setPatternWaitAddr(int level, int addr); - uint64_t getPatternWaitTime(int level) const; - void setPatternWaitTime(int level, uint64_t t); + uint64_t getPatternWaitClocks(int level) const; + void setPatternWaitClocks(int level, uint64_t t); + uint64_t getPatternWaitInterval(int level) const; + void setPatternWaitInterval(int level, uint64_t t); uint64_t getPatternMask() const; void setPatternMask(uint64_t mask); uint64_t getPatternBitMask() const; @@ -742,13 +735,8 @@ class Module : public virtual slsDetectorDefs { template Ret sendToReceiver(int fnum, const Arg &args) const; - /** Get Detector Type from Shared Memory - verify is if shm size matches existing one */ - detectorType getDetectorTypeFromShm(int det_id, bool verify = true); - - /** Initialize shared memory - verify is if shm size matches existing one */ - void initSharedMemory(detectorType type, int det_id, bool verify = true); + void createSharedMemory(detectorType type, int det_id); + void openSharedMemory(int det_id); /** Initialize module structure to defaults, Called when new shared memory is created */ diff --git a/slsDetectorSoftware/src/Pattern.cpp b/slsDetectorSoftware/src/Pattern.cpp index 3b7049b60..1a5f7b80c 100644 --- a/slsDetectorSoftware/src/Pattern.cpp +++ b/slsDetectorSoftware/src/Pattern.cpp @@ -93,7 +93,8 @@ void Pattern::validate() const { } } -void Pattern::load(const std::string &fname) { +size_t Pattern::load(const std::string &fname) { + size_t numPatWords = 0; std::ifstream input_file(fname); if (!input_file) { throw RuntimeError("Could not open pattern file " + fname + @@ -125,6 +126,7 @@ void Pattern::load(const std::string &fname) { throw RuntimeError("Invalid address for " + ToString(args)); } pat->word[addr] = StringTo(args[2]); + ++numPatWords; } else if (cmd == "patioctrl") { if (nargs != 1) { throw RuntimeError("Invalid arguments for " + @@ -238,6 +240,40 @@ void Pattern::load(const std::string &fname) { } } } + return numPatWords; +} + +std::ostream &Pattern::stream(std::ostream &os) const { + for (uint32_t i = pat->limits[0]; i <= pat->limits[1]; ++i) { + os << "patword " << ToStringHex(i, 4) << " " + << ToStringHex(pat->word[i], 16) << std::endl; + } + + // patioctrl + os << "patioctrl " << ToStringHex(pat->ioctrl, 16) << std::endl; + + // patlimits + os << "patlimits " << ToStringHex(pat->limits[0], 4) << " " + << ToStringHex(pat->limits[1], 4) << std::endl; + + for (size_t i = 0; i < MAX_PATTERN_LEVELS; ++i) { + // patloop + os << "patloop " << i << " " << ToStringHex(pat->startloop[i], 4) << " " + << ToStringHex(pat->stoploop[i], 4) << std::endl; + // patnloop + os << "patnloop " << i << " " << pat->nloop[i] << std::endl; + } + + for (size_t i = 0; i < MAX_PATTERN_LEVELS; ++i) { + // patwait + os << "patwait " << i << " " << ToStringHex(pat->wait[i], 4) + << std::endl; + // patwaittime + os << "patwaittime " << i << " " << pat->waittime[i]; + if (i < MAX_PATTERN_LEVELS - 1) + os << std::endl; + } + return os; } void Pattern::save(const std::string &fname) { @@ -246,65 +282,12 @@ void Pattern::save(const std::string &fname) { throw RuntimeError("Could not open pattern file " + fname + " for writing"); } - std::ostringstream os; - // pattern word - for (uint32_t i = pat->limits[0]; i <= pat->limits[1]; ++i) { - output_file << "patword " << ToStringHex(i, 4) << " " - << ToStringHex(pat->word[i], 16) << std::endl; - } - - // patioctrl - output_file << "patioctrl " << ToStringHex(pat->ioctrl, 16) << std::endl; - - // patlimits - output_file << "patlimits " << ToStringHex(pat->limits[0], 4) << " " - << ToStringHex(pat->limits[1], 4) << std::endl; - - for (size_t i = 0; i < MAX_PATTERN_LEVELS; ++i) { - // patloop - output_file << "patloop " << i << " " - << ToStringHex(pat->startloop[i], 4) << " " - << ToStringHex(pat->stoploop[i], 4) << std::endl; - // patnloop - output_file << "patnloop " << i << " " << pat->nloop[i] << std::endl; - } - - for (size_t i = 0; i < MAX_PATTERN_LEVELS; ++i) { - // patwait - output_file << "patwait " << i << " " << ToStringHex(pat->wait[i], 4) - << std::endl; - // patwaittime - output_file << "patwaittime " << i << " " << pat->waittime[i] - << std::endl; - } + stream(output_file); } std::string Pattern::str() const { std::ostringstream oss; - oss << '[' << std::setfill('0') << std::endl; - int addr_width = 4; - int word_width = 16; - for (int i = 0; i < MAX_PATTERN_LENGTH; ++i) { - if (pat->word[i] != 0) { - oss << "patword " << ToStringHex(i, addr_width) << " " - << ToStringHex(pat->word[i], word_width) << std::endl; - } - } - oss << "patioctrl " << ToStringHex(pat->ioctrl, word_width) << std::endl - << "patlimits " << ToStringHex(pat->limits[0], addr_width) << " " - << ToStringHex(pat->limits[1], addr_width) << std::endl; - - for (int i = 0; i != MAX_PATTERN_LEVELS; ++i) { - oss << "patloop " << i << ' ' - << ToStringHex(pat->startloop[i], addr_width) << " " - << ToStringHex(pat->stoploop[i], addr_width) << std::endl - << "patnloop " << pat->nloop[i] << std::endl - << "patwait " << i << ' ' << ToStringHex(pat->wait[i], addr_width) - << std::endl - << "patwaittime " << i << ' ' << pat->waittime[i] << std::endl; - } - - oss << ']'; + stream(oss); return oss.str(); } diff --git a/slsDetectorSoftware/src/SharedMemory.h b/slsDetectorSoftware/src/SharedMemory.h index 880e7e89f..2265d2f96 100644 --- a/slsDetectorSoftware/src/SharedMemory.h +++ b/slsDetectorSoftware/src/SharedMemory.h @@ -10,6 +10,7 @@ *@short functions basic implemenation of shared memory */ +#include "sls/TypeTraits.h" #include "sls/logger.h" #include "sls/sls_detector_exceptions.h" @@ -24,13 +25,40 @@ #include // fstat #include +// ********************** Defines for shared memory. ********************** +// WARNING! before chaning these search the codebase for their usage! + +#define SHM_IS_VALID_CHECK_VERSION 0x250820 + +//Max shared memory name length in macOS is 31 characters +#ifdef __APPLE__ +#define SHM_DETECTOR_PREFIX "/sls_" +#define SHM_MODULE_PREFIX "_mod_" +#else +#define SHM_DETECTOR_PREFIX "/slsDetectorPackage_detector_" +#define SHM_MODULE_PREFIX "_module_" +#endif + +#define SHM_ENV_NAME "SLSDETNAME" +// ************************************************************************ + namespace sls { -#define SHM_DETECTOR_PREFIX "/slsDetectorPackage_detector_" -#define SHM_MODULE_PREFIX "_module_" -#define SHM_ENV_NAME "SLSDETNAME" +class CtbConfig; + + +template constexpr bool is_type() { + return std::is_same_v, T>; +} template class SharedMemory { + +#ifndef DISABLE_STATIC_ASSERT + static_assert(has_bool_isValid::value, + "SharedMemory requires the struct to have a bool member " + "named 'isValid'"); +#endif + static constexpr int NAME_MAX_LENGTH = 255; std::string name; T *shared_struct{nullptr}; @@ -41,6 +69,8 @@ template class SharedMemory { name = constructSharedMemoryName(detectorId, moduleIndex, tag); } + explicit SharedMemory(const std::string &shm_name) : name(shm_name) {} + // Disable copy, since we refer to a unique location SharedMemory(const SharedMemory &) = delete; SharedMemory &operator=(const SharedMemory &other) = delete; @@ -64,16 +94,61 @@ template class SharedMemory { unmapSharedMemory(); } + bool memoryHasValidFlag() const { + if (shared_struct == nullptr) { + throw SharedMemoryError( + "Shared memory not mapped. Cannot check validity."); + } + // CtbConfig did not have shmversion before, so exact value check + if constexpr (is_type()) { + if (shared_struct->shmversion == SHM_IS_VALID_CHECK_VERSION) { + return true; + } + } else if (shared_struct->shmversion >= SHM_IS_VALID_CHECK_VERSION) { + return true; + } + return false; + } + + bool checkValidity() const { + if (memoryHasValidFlag() && !shared_struct->isValid) + return false; + return true; + } + + void invalidate() { + bool wasValid = true; + if (shared_struct == nullptr) { + wasValid = false; + openSharedMemory(false); + } + // also called by obsolete shm test structure (so check added) + if constexpr (has_bool_isValid::value) { + if (memoryHasValidFlag()) + shared_struct->isValid = false; + } + if (!wasValid) + unmapSharedMemory(); + } + T *operator()() { - if (shared_struct) - return shared_struct; - throw SharedMemoryError(getNoShmAccessMessage()); + if (!shared_struct) + throw SharedMemoryError(getNoShmAccessMessage()); + + if (!checkValidity()) + throw SharedMemoryError(getInvalidShmMessage()); + + return shared_struct; } const T *operator()() const { - if (shared_struct) - return shared_struct; - throw SharedMemoryError(getNoShmAccessMessage()); + if (!shared_struct) + throw SharedMemoryError(getNoShmAccessMessage()); + + if (!checkValidity()) + throw SharedMemoryError(getInvalidShmMessage()); + + return shared_struct; } std::string getName() const { return name; } @@ -132,6 +207,7 @@ template class SharedMemory { } void removeSharedMemory() { + invalidate(); unmapSharedMemory(); if (shm_unlink(name.c_str()) < 0) { // silent exit if shm did not exist anyway @@ -203,6 +279,11 @@ template class SharedMemory { throw SharedMemoryError(msg); } + #ifdef __APPLE__ + // On macOS, fstat returns the allocated size and not the requested size. + // This means we can't check for size since we always get for example 16384 bytes. + return; + #endif auto actual_size = static_cast(sb.st_size); auto expected_size = sizeof(T); if (actual_size != expected_size) { @@ -215,10 +296,15 @@ template class SharedMemory { } } - const char *getNoShmAccessMessage() const { + inline const char *getNoShmAccessMessage() const { return ("No shared memory to access. Create it first with " "hostname or config command."); }; + + inline const char *getInvalidShmMessage() const { + return ("Shared memory is invalid or freed. Close resources before " + "access."); + }; }; } // namespace sls diff --git a/slsDetectorSoftware/src/inferAction.cpp b/slsDetectorSoftware/src/inferAction.cpp index 4b46f6bde..0b72bcd06 100644 --- a/slsDetectorSoftware/src/inferAction.cpp +++ b/slsDetectorSoftware/src/inferAction.cpp @@ -426,18 +426,6 @@ int InferAction::clearbusy() { } } -int InferAction::clearroi() { - - if (args.size() == 0) { - return slsDetectorDefs::PUT_ACTION; - } - - else { - - throw RuntimeError("Could not infer action: Wrong number of arguments"); - } -} - int InferAction::clientversion() { if (args.size() == 0) { @@ -1032,22 +1020,6 @@ int InferAction::exptime3() { } } -int InferAction::exptimel() { - - if (args.size() == 0) { - return slsDetectorDefs::GET_ACTION; - } - - if (args.size() == 1) { - return slsDetectorDefs::GET_ACTION; - } - - else { - - throw RuntimeError("Could not infer action: Wrong number of arguments"); - } -} - int InferAction::extrastoragecells() { if (args.size() == 0) { @@ -2012,29 +1984,13 @@ int InferAction::patlimits() { "sls_detector_get or sls_detector_put"); } -int InferAction::patloop() { +int InferAction::patloop() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patloop. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patloop0() { throw RuntimeError("infer_action is disabled"); } -int InferAction::patloop0() { +int InferAction::patloop1() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patloop0. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patloop1() { - - throw RuntimeError("sls_detector is disabled for command: patloop1. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patloop2() { - - throw RuntimeError("sls_detector is disabled for command: patloop2. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patloop2() { throw RuntimeError("infer_action is disabled"); } int InferAction::patmask() { @@ -2052,29 +2008,13 @@ int InferAction::patmask() { } } -int InferAction::patnloop() { +int InferAction::patnloop() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patnloop. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patnloop0() { throw RuntimeError("infer_action is disabled"); } -int InferAction::patnloop0() { +int InferAction::patnloop1() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patnloop0. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patnloop1() { - - throw RuntimeError("sls_detector is disabled for command: patnloop1. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patnloop2() { - - throw RuntimeError("sls_detector is disabled for command: patnloop2. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patnloop2() { throw RuntimeError("infer_action is disabled"); } int InferAction::patsetbit() { @@ -2116,29 +2056,13 @@ int InferAction::patternstart() { } } -int InferAction::patwait() { +int InferAction::patwait() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patwait. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patwait0() { throw RuntimeError("infer_action is disabled"); } -int InferAction::patwait0() { +int InferAction::patwait1() { throw RuntimeError("infer_action is disabled"); } - throw RuntimeError("sls_detector is disabled for command: patwait0. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patwait1() { - - throw RuntimeError("sls_detector is disabled for command: patwait1. Use " - "sls_detector_get or sls_detector_put"); -} - -int InferAction::patwait2() { - - throw RuntimeError("sls_detector is disabled for command: patwait2. Use " - "sls_detector_get or sls_detector_put"); -} +int InferAction::patwait2() { throw RuntimeError("infer_action is disabled"); } int InferAction::patwaittime() { @@ -2146,24 +2070,6 @@ int InferAction::patwaittime() { "sls_detector_get or sls_detector_put"); } -int InferAction::patwaittime0() { - - throw RuntimeError("sls_detector is disabled for command: patwaittime0. " - "Use sls_detector_get or sls_detector_put"); -} - -int InferAction::patwaittime1() { - - throw RuntimeError("sls_detector is disabled for command: patwaittime1. " - "Use sls_detector_get or sls_detector_put"); -} - -int InferAction::patwaittime2() { - - throw RuntimeError("sls_detector is disabled for command: patwaittime2. " - "Use sls_detector_get or sls_detector_put"); -} - int InferAction::patword() { if (args.size() == 1) { @@ -2548,22 +2454,6 @@ int InferAction::resetfpga() { } } -int InferAction::roi() { - - if (args.size() == 0) { - return slsDetectorDefs::GET_ACTION; - } - - if (args.size() == 2) { - return slsDetectorDefs::PUT_ACTION; - } - - else { - - throw RuntimeError("Could not infer action: Wrong number of arguments"); - } -} - int InferAction::romode() { if (args.size() == 0) { @@ -2678,6 +2568,22 @@ int InferAction::rx_dbitoffset() { } } +int InferAction::rx_dbitreorder() { + + if (args.size() == 0) { + return slsDetectorDefs::GET_ACTION; + } + + if (args.size() == 1) { + return slsDetectorDefs::PUT_ACTION; + } + + else { + + throw RuntimeError("Could not infer action: Wrong number of arguments"); + } +} + int InferAction::rx_discardpolicy() { if (args.size() == 0) { @@ -2863,22 +2769,8 @@ int InferAction::rx_realudpsocksize() { int InferAction::rx_roi() { - if (args.size() == 0) { - return slsDetectorDefs::GET_ACTION; - } - - if (args.size() == 2) { - return slsDetectorDefs::PUT_ACTION; - } - - if (args.size() == 4) { - return slsDetectorDefs::PUT_ACTION; - } - - else { - - throw RuntimeError("Could not infer action: Wrong number of arguments"); - } + throw RuntimeError("sls_detector is disabled for command: rx_roi. Use " + "sls_detector_get or sls_detector_put"); } int InferAction::rx_silent() { @@ -4266,7 +4158,9 @@ int InferAction::updatemode() { int InferAction::user() { if (args.size() == 0) { - return slsDetectorDefs::GET_ACTION; + throw RuntimeError( + "sls_detector is disabled for command: user with number of " + "arguments 0. Use sls_detector_get or sls_detector_put"); } else { diff --git a/slsDetectorSoftware/src/inferAction.h b/slsDetectorSoftware/src/inferAction.h index dc44bf83f..ffc6944d7 100644 --- a/slsDetectorSoftware/src/inferAction.h +++ b/slsDetectorSoftware/src/inferAction.h @@ -39,7 +39,6 @@ class InferAction { int chipversion(); int clearbit(); int clearbusy(); - int clearroi(); int clientversion(); int clkdiv(); int clkfreq(); @@ -77,7 +76,6 @@ class InferAction { int exptime1(); int exptime2(); int exptime3(); - int exptimel(); int extrastoragecells(); int extsampling(); int extsamplingsrc(); @@ -161,9 +159,6 @@ class InferAction { int patwait1(); int patwait2(); int patwaittime(); - int patwaittime0(); - int patwaittime1(); - int patwaittime2(); int patword(); int pedestalmode(); int period(); @@ -190,7 +185,6 @@ class InferAction { int reg(); int resetdacs(); int resetfpga(); - int roi(); int romode(); int row(); int runclk(); @@ -199,6 +193,7 @@ class InferAction { int rx_clearroi(); int rx_dbitlist(); int rx_dbitoffset(); + int rx_dbitreorder(); int rx_discardpolicy(); int rx_fifodepth(); int rx_frameindex(); @@ -376,7 +371,6 @@ class InferAction { {"chipversion", &InferAction::chipversion}, {"clearbit", &InferAction::clearbit}, {"clearbusy", &InferAction::clearbusy}, - {"clearroi", &InferAction::clearroi}, {"clientversion", &InferAction::clientversion}, {"clkdiv", &InferAction::clkdiv}, {"clkfreq", &InferAction::clkfreq}, @@ -414,7 +408,6 @@ class InferAction { {"exptime1", &InferAction::exptime1}, {"exptime2", &InferAction::exptime2}, {"exptime3", &InferAction::exptime3}, - {"exptimel", &InferAction::exptimel}, {"extrastoragecells", &InferAction::extrastoragecells}, {"extsampling", &InferAction::extsampling}, {"extsamplingsrc", &InferAction::extsamplingsrc}, @@ -491,16 +484,16 @@ class InferAction { {"patnloop1", &InferAction::patnloop1}, {"patnloop2", &InferAction::patnloop2}, {"patsetbit", &InferAction::patsetbit}, - {"patternX", &InferAction::pattern}, + {"pattern", &InferAction::pattern}, {"patternstart", &InferAction::patternstart}, {"patwait", &InferAction::patwait}, {"patwait0", &InferAction::patwait0}, {"patwait1", &InferAction::patwait1}, {"patwait2", &InferAction::patwait2}, {"patwaittime", &InferAction::patwaittime}, - {"patwaittime0", &InferAction::patwaittime0}, - {"patwaittime1", &InferAction::patwaittime1}, - {"patwaittime2", &InferAction::patwaittime2}, + {"patwaittime0", &InferAction::patwaittime}, + {"patwaittime1", &InferAction::patwaittime}, + {"patwaittime2", &InferAction::patwaittime}, {"patword", &InferAction::patword}, {"pedestalmode", &InferAction::pedestalmode}, {"period", &InferAction::period}, @@ -527,7 +520,6 @@ class InferAction { {"reg", &InferAction::reg}, {"resetdacs", &InferAction::resetdacs}, {"resetfpga", &InferAction::resetfpga}, - {"roi", &InferAction::roi}, {"romode", &InferAction::romode}, {"row", &InferAction::row}, {"runclk", &InferAction::runclk}, @@ -536,6 +528,7 @@ class InferAction { {"rx_clearroi", &InferAction::rx_clearroi}, {"rx_dbitlist", &InferAction::rx_dbitlist}, {"rx_dbitoffset", &InferAction::rx_dbitoffset}, + {"rx_dbitreorder", &InferAction::rx_dbitreorder}, {"rx_discardpolicy", &InferAction::rx_discardpolicy}, {"rx_fifodepth", &InferAction::rx_fifodepth}, {"rx_frameindex", &InferAction::rx_frameindex}, diff --git a/slsDetectorSoftware/tests/CMakeLists.txt b/slsDetectorSoftware/tests/CMakeLists.txt index 521deec4d..d547abc4b 100755 --- a/slsDetectorSoftware/tests/CMakeLists.txt +++ b/slsDetectorSoftware/tests/CMakeLists.txt @@ -8,16 +8,18 @@ target_sources(tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-rx.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-rx-running.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-pattern.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-eiger.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-jungfrau.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-mythen3.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-gotthard2.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-gotthard.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-chiptestboard.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-xilinx-chiptestboard.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-moench.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-global.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-acquire.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/Caller/test-Caller-master-attributes.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-Result.cpp @@ -25,15 +27,27 @@ target_sources(tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/test-Module.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-Pattern.cpp ${CMAKE_CURRENT_SOURCE_DIR}/test-CtbConfig.cpp - - - ) +# HDF5 file +if (SLS_USE_HDF5) + target_compile_definitions(tests + PUBLIC + -DHDF5C ${HDF5_DEFINITIONS} + ) +endif (SLS_USE_HDF5) + +target_compile_options(tests + PRIVATE + # Suppress warnings for deprecated functions in rapidjson + -Wno-deprecated-declarations +) + target_include_directories(tests PUBLIC "$" "$" + "$" PRIVATE ${SLS_INTERNAL_RAPIDJSON_DIR} ) \ No newline at end of file diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-acquire.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-acquire.cpp new file mode 100644 index 000000000..299125b99 --- /dev/null +++ b/slsDetectorSoftware/tests/Caller/test-Caller-acquire.cpp @@ -0,0 +1,280 @@ +// SPDX-License-Identifier: LGPL-3.0-or-other +// Copyright (C) 2021 Contributors to the SLS Detector Package +#include "Caller.h" +#include "catch.hpp" +#include "sls/Detector.h" +#include "sls/sls_detector_defs.h" +#include "sls/versionAPI.h" +#include "test-Caller-global.h" +#include "tests/globals.h" + +#include +#include + +namespace sls { + +using test::GET; +using test::PUT; + +TEST_CASE("jungfrau_or_moench_acquire_check_file_size", + "[.cmdcall][.cmdacquire]") { + + Detector det; + Caller caller(&det); + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + + if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH) { + + auto num_udp_interfaces = det.getNumberofUDPInterfaces().tsquash( + "inconsistent number of udp interfaces"); + + int num_frames_to_acquire = 2; + create_files_for_acquire(det, caller, num_frames_to_acquire); + + // check file size (assuming local pc) + { + detParameters par(det_type); + int bytes_per_pixel = det.getDynamicRange().squash() / 8; + // if 2 udp interfaces, data split into half + size_t expected_image_size = (par.nChanX * par.nChanY * par.nChipX * + par.nChipY * bytes_per_pixel) / + num_udp_interfaces; + testFileInfo test_file_info; + test_acquire_binary_file_size(test_file_info, num_frames_to_acquire, + expected_image_size); + } + } +} + +TEST_CASE("eiger_acquire_check_file_size", "[.cmdcall][.cmdacquire]") { + Detector det; + Caller caller(&det); + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + + if (det_type == defs::EIGER) { + + int dynamic_range = det.getDynamicRange().squash(); + if (dynamic_range != 16) { + throw RuntimeError( + "Eiger detector must have dynamic range 16 to test"); + } + int num_frames_to_acquire = 2; + create_files_for_acquire(det, caller, num_frames_to_acquire); + + // check file size (assuming local pc) + { + detParameters par(det_type); + // data split into half due to 2 udp interfaces per half module + int num_chips = (par.nChipX / 2); + int bytes_per_pixel = (dynamic_range / 8); + size_t expected_image_size = + par.nChanX * par.nChanY * num_chips * bytes_per_pixel; + testFileInfo test_file_info; + test_acquire_binary_file_size(test_file_info, num_frames_to_acquire, + expected_image_size); + } + } +} + +TEST_CASE("mythen3_acquire_check_file_size", "[.cmdcall][.cmdacquire]") { + Detector det; + Caller caller(&det); + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + + if (det_type == defs::MYTHEN3) { + + int dynamic_range = det.getDynamicRange().squash(); + int counter_mask = det.getCounterMask().squash(); + if (dynamic_range != 16 && counter_mask != 0x3) { + throw RuntimeError("Mythen3 detector must have dynamic range 16 " + "and counter mask 0x3 to test"); + } + int num_counters = __builtin_popcount(counter_mask); + int num_frames_to_acquire = 2; + create_files_for_acquire(det, caller, num_frames_to_acquire); + + // check file size (assuming local pc) + { + detParameters par(det_type); + int bytes_per_pixel = dynamic_range / 8; + int num_channels_per_counter = par.nChanX / 3; + size_t expected_image_size = num_channels_per_counter * + num_counters * par.nChipX * + bytes_per_pixel; + testFileInfo test_file_info; + test_acquire_binary_file_size(test_file_info, num_frames_to_acquire, + expected_image_size); + } + } +} + +TEST_CASE("gotthard2_acquire_check_file_size", "[.cmdcall][.cmdacquire]") { + Detector det; + Caller caller(&det); + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + + if (det_type == defs::GOTTHARD2) { + + int num_frames_to_acquire = 2; + create_files_for_acquire(det, caller, num_frames_to_acquire); + + // check file size (assuming local pc) + { + detParameters par(det_type); + int bytes_per_pixel = det.getDynamicRange().squash() / 8; + size_t expected_image_size = + par.nChanX * par.nChipX * bytes_per_pixel; + testFileInfo test_file_info; + test_acquire_binary_file_size(test_file_info, num_frames_to_acquire, + expected_image_size); + } + } +} + +void test_ctb_file_size_with_acquire(Detector &det, Caller &caller, + int64_t num_frames, + const testCtbAcquireInfo &test_info, + bool isXilinxCtb) { + + create_files_for_acquire(det, caller, num_frames, test_info); + + // check file size (assuming local pc) + uint64_t expected_image_size = + calculate_ctb_image_size(test_info, isXilinxCtb).first; + testFileInfo test_file_info; + REQUIRE_NOTHROW(test_acquire_binary_file_size(test_file_info, num_frames, + expected_image_size)); +} + +TEST_CASE("ctb_acquire_check_file_size", "[.cmdcall][.cmdacquire]") { + Detector det; + Caller caller(&det); + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + + if (det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { + bool isXilinxCtb = (det_type == defs::XILINX_CHIPTESTBOARD); + int num_frames_to_acquire = 2; + // all the test cases + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::ANALOG_AND_DIGITAL; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::ANALOG_AND_DIGITAL; + test_ctb_config.dbit_offset = 16; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::ANALOG_AND_DIGITAL; + test_ctb_config.dbit_reorder = true; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::ANALOG_AND_DIGITAL; + test_ctb_config.dbit_offset = 16; + test_ctb_config.dbit_reorder = true; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::ANALOG_AND_DIGITAL; + test_ctb_config.dbit_offset = 16; + test_ctb_config.dbit_list.clear(); + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::ANALOG_AND_DIGITAL; + test_ctb_config.dbit_offset = 16; + test_ctb_config.dbit_list.clear(); + test_ctb_config.dbit_reorder = true; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::DIGITAL_AND_TRANSCEIVER; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::DIGITAL_AND_TRANSCEIVER; + test_ctb_config.dbit_offset = 16; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::DIGITAL_AND_TRANSCEIVER; + test_ctb_config.dbit_list.clear(); + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::DIGITAL_AND_TRANSCEIVER; + test_ctb_config.dbit_offset = 16; + test_ctb_config.dbit_list.clear(); + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::DIGITAL_AND_TRANSCEIVER; + test_ctb_config.dbit_offset = 16; + test_ctb_config.dbit_list.clear(); + test_ctb_config.dbit_reorder = true; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::TRANSCEIVER_ONLY; + test_ctb_config.dbit_offset = 16; + test_ctb_config.dbit_list.clear(); + test_ctb_config.dbit_reorder = true; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + { + testCtbAcquireInfo test_ctb_config{}; + test_ctb_config.readout_mode = defs::ANALOG_ONLY; + test_ctb_config.dbit_offset = 16; + test_ctb_config.dbit_list.clear(); + test_ctb_config.dbit_reorder = true; + REQUIRE_NOTHROW(test_ctb_file_size_with_acquire( + det, caller, num_frames_to_acquire, test_ctb_config, + isXilinxCtb)); + } + } +} + +} // namespace sls diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp index fbb11128d..2bc827476 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp @@ -530,15 +530,6 @@ TEST_CASE("dac", "[.cmdcall][.dacs]") { REQUIRE_THROWS(caller.call("dac", {"vb_ds"}, -1, GET)); REQUIRE_THROWS(caller.call("dac", {"vref_ds"}, -1, GET)); REQUIRE_THROWS(caller.call("dac", {"vref_comp"}, -1, GET)); - // gotthard - REQUIRE_THROWS(caller.call("dac", {"vref_ds"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcascn_pb"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcascp_pb"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vout_cm"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcasc_out"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vin_cm"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vref_comp"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"ib_test_c"}, -1, GET)); // mythen3 REQUIRE_THROWS(caller.call("dac", {"vrpreamp"}, -1, GET)); REQUIRE_THROWS(caller.call("dac", {"vrshaper"}, -1, GET)); @@ -1009,7 +1000,7 @@ TEST_CASE("dbitclk", "[.cmdcall]") { auto det_type = det.getDetectorType().squash(); if (det_type == defs::CHIPTESTBOARD) { - auto prev_val = det.getRUNClock(); + auto prev_val = det.getDBITClock(); { std::ostringstream oss; caller.call("dbitclk", {"20"}, -1, PUT, oss); @@ -1026,7 +1017,7 @@ TEST_CASE("dbitclk", "[.cmdcall]") { REQUIRE(oss.str() == "dbitclk 10\n"); } for (int i = 0; i != det.size(); ++i) { - det.setRUNClock(prev_val[i], {i}); + det.setDBITClock(prev_val[i], {i}); } } else { // clock index might work @@ -1034,91 +1025,43 @@ TEST_CASE("dbitclk", "[.cmdcall]") { } } -TEST_CASE("v_a", "[.cmdcall]") { +TEST_CASE("v_abcd", "[.cmdcall]") { Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::CHIPTESTBOARD || - det_type == defs::XILINX_CHIPTESTBOARD) { - auto prev_val = det.getPower(defs::V_POWER_A); - { - std::ostringstream oss1, oss2; - caller.call("v_a", {"1200"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "v_a 1200\n"); - caller.call("v_a", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "v_a 1200\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setPower(defs::V_POWER_A, prev_val[i], {i}); - } - } else { - REQUIRE_THROWS(caller.call("v_a", {}, -1, GET)); - } -} -TEST_CASE("v_b", "[.cmdcall]") { - Detector det; - Caller caller(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::CHIPTESTBOARD || - det_type == defs::XILINX_CHIPTESTBOARD) { - auto prev_val = det.getPower(defs::V_POWER_B); - { - std::ostringstream oss1, oss2; - caller.call("v_b", {"1200"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "v_b 1200\n"); - caller.call("v_b", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "v_b 1200\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setPower(defs::V_POWER_B, prev_val[i], {i}); - } - } else { - REQUIRE_THROWS(caller.call("v_b", {}, -1, GET)); - } -} + std::vector cmds{"v_a", "v_b", "v_c", "v_d"}; + std::vector indices{defs::V_POWER_A, defs::V_POWER_B, + defs::V_POWER_C, defs::V_POWER_D}; -TEST_CASE("v_c", "[.cmdcall]") { - Detector det; - Caller caller(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::CHIPTESTBOARD || - det_type == defs::XILINX_CHIPTESTBOARD) { - auto prev_val = det.getPower(defs::V_POWER_C); - { - std::ostringstream oss1, oss2; - caller.call("v_c", {"1200"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "v_c 1200\n"); - caller.call("v_c", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "v_c 1200\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setPower(defs::V_POWER_C, prev_val[i], {i}); - } - } else { - REQUIRE_THROWS(caller.call("v_c", {}, -1, GET)); + if (det.isVirtualDetectorServer().tsquash("Inconsistent virtual servers")) { + cmds.push_back("v_io"); + indices.push_back(defs::V_POWER_IO); } -} -TEST_CASE("v_d", "[.cmdcall]") { - Detector det; - Caller caller(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::CHIPTESTBOARD || - det_type == defs::XILINX_CHIPTESTBOARD) { - auto prev_val = det.getPower(defs::V_POWER_D); - { - std::ostringstream oss1, oss2; - caller.call("v_d", {"1200"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "v_d 1200\n"); - caller.call("v_d", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "v_d 1200\n"); + for (size_t i = 0; i < cmds.size(); ++i) { + if (det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { + auto prev_val = det.getPower(indices[i]); + { + std::ostringstream oss; + caller.call(cmds[i], {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == cmds[i] + " 0\n"); + } + { + std::ostringstream oss1, oss2; + caller.call(cmds[i], {"1200"}, -1, PUT, oss1); + REQUIRE(oss1.str() == cmds[i] + " 1200\n"); + caller.call(cmds[i], {}, -1, GET, oss2); + REQUIRE(oss2.str() == cmds[i] + " 1200\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setPower(indices[i], prev_val[i], {i}); + } + + } else { + REQUIRE_THROWS(caller.call(cmds[i], {}, -1, GET)); } - for (int i = 0; i != det.size(); ++i) { - det.setPower(defs::V_POWER_D, prev_val[i], {i}); - } - } else { - REQUIRE_THROWS(caller.call("v_d", {}, -1, GET)); } } diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-eiger.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-eiger.cpp index 70a9a8446..ae6a6c824 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-eiger.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-eiger.cpp @@ -185,15 +185,6 @@ TEST_CASE("Setting and reading back EIGER dacs", "[.cmdcall][.dacs]") { det.setDAC(defs::VCP, vcp[i], false, {i}); } } - // gotthard - REQUIRE_THROWS(caller.call("vref_ds", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcascn_pb", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcascp_pb", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vout_cm", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcasc_out", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vin_cm", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vref_comp", {}, -1, GET)); - REQUIRE_THROWS(caller.call("ib_test_c", {}, -1, GET)); // mythen3 // REQUIRE_THROWS(caller.call("vrpreamp", {}, -1, GET)); // REQUIRE_THROWS(caller.call("vrshaper", {}, -1, GET)); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp index 7900f3340..c27ff05d5 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-global.cpp @@ -2,8 +2,10 @@ // Copyright (C) 2021 Contributors to the SLS Detector Package #include "test-Caller-global.h" #include "Caller.h" +#include "GeneralData.h" #include "catch.hpp" #include "sls/Detector.h" +#include "sls/logger.h" #include "tests/globals.h" namespace sls { @@ -88,4 +90,187 @@ void test_onchip_dac_caller(defs::dacIndex index, const std::string &dacname, } } +testFileInfo get_file_state(const Detector &det) { + return testFileInfo{ + det.getFilePath().tsquash("Inconsistent file path"), + det.getFileNamePrefix().tsquash("Inconsistent file prefix"), + det.getAcquisitionIndex().tsquash( + "Inconsistent file acquisition index"), + det.getFileWrite().tsquash("Inconsistent file write state"), + det.getFileOverWrite().tsquash("Inconsistent file overwrite state"), + det.getFileFormat().tsquash("Inconsistent file format")}; +} + +void set_file_state(Detector &det, const testFileInfo &file_info) { + if (!file_info.file_path.empty()) + det.setFilePath(file_info.file_path); + det.setFileNamePrefix(file_info.file_prefix); + det.setAcquisitionIndex(file_info.file_acq_index); + det.setFileWrite(file_info.file_write); + det.setFileOverWrite(file_info.file_overwrite); + det.setFileFormat(file_info.file_format); +} + +void test_acquire_binary_file_size(const testFileInfo &file_info, + uint64_t num_frames_to_acquire, + uint64_t expected_image_size) { + assert(file_info.file_format == defs::BINARY); + std::string fname = file_info.file_path + "/" + file_info.file_prefix + + "_d0_f0_" + std::to_string(file_info.file_acq_index) + + ".raw"; + uint64_t expected_file_size = + num_frames_to_acquire * + (expected_image_size + sizeof(defs::sls_receiver_header)); + auto actual_file_size = std::filesystem::file_size(fname); + REQUIRE(actual_file_size == expected_file_size); +} + +void test_frames_caught(const Detector &det, int num_frames_to_acquire) { + auto frames_caught = det.getFramesCaught().tsquash( + "Inconsistent number of frames caught")[0]; + REQUIRE(frames_caught == num_frames_to_acquire); +} + +void test_acquire_with_receiver(Caller &caller, const Detector &det) { + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + REQUIRE_NOTHROW(caller.call("start", {}, -1, PUT)); + bool idle = false; + while (!idle) { + std::ostringstream oss; + REQUIRE_NOTHROW(caller.call("status", {}, -1, GET)); + auto statusList = det.getDetectorStatus(); + if (statusList.any(defs::ERROR)) { + throw std::runtime_error("error status while acquiring"); + } + if (statusList.contains_only(defs::IDLE, defs::STOPPED)) { + idle = true; + } + } + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); +} + +void create_files_for_acquire( + Detector &det, Caller &caller, int64_t num_frames, + const std::optional &test_info) { + + // save previous state + testFileInfo prev_file_info = get_file_state(det); + auto prev_num_frames = det.getNumberOfFrames().tsquash( + "Inconsistent number of frames to acquire"); + std::optional prev_ctb_config_info{}; + if (test_info) { + prev_ctb_config_info = get_ctb_config_state(det); + } + + // set state for acquire + testFileInfo test_file_info; + set_file_state(det, test_file_info); + det.setNumberOfFrames(num_frames); + if (test_info) { + set_ctb_config_state(det, *test_info); + } + + // acquire and get num frames caught + REQUIRE_NOTHROW(test_acquire_with_receiver(caller, det)); + auto frames_caught = det.getFramesCaught().tsquash( + "Inconsistent number of frames caught")[0]; + REQUIRE(frames_caught == num_frames); + + // hdf5 +#ifdef HDF5C + test_file_info.file_format = defs::HDF5; + test_file_info.file_acq_index = 0; + set_file_state(det, test_file_info); + + // acquire and get num frames caught + test_acquire_with_receiver(caller, det); + frames_caught = det.getFramesCaught().tsquash( + "Inconsistent number of frames caught")[0]; + REQUIRE(frames_caught == num_frames); +#endif + + // restore previous state + // file + set_file_state(det, prev_file_info); + det.setNumberOfFrames(prev_num_frames); + if (test_info) { + set_ctb_config_state(det, *prev_ctb_config_info); + } +} + +testCtbAcquireInfo get_ctb_config_state(const Detector &det) { + testCtbAcquireInfo ctb_config_info{ + det.getReadoutMode().tsquash("inconsistent readout mode to test"), + true, + det.getNumberOfAnalogSamples().tsquash( + "inconsistent number of analog samples to test"), + det.getNumberOfDigitalSamples().tsquash( + "inconsistent number of digital samples to test"), + det.getNumberOfTransceiverSamples().tsquash( + "inconsistent number of transceiver samples to test"), + 0, + det.getTenGigaADCEnableMask().tsquash( + "inconsistent ten giga adc enable mask to test"), + det.getRxDbitOffset().tsquash("inconsistent rx dbit offset to test"), + det.getRxDbitList().tsquash("inconsistent rx dbit list to test"), + det.getRxDbitReorder().tsquash("inconsistent rx dbit reorder to test"), + det.getTransceiverEnableMask().tsquash( + "inconsistent transceiver mask to test")}; + + if (det.getDetectorType().tsquash("inconsistent detector type to test") == + slsDetectorDefs::CHIPTESTBOARD) { + ctb_config_info.ten_giga = + det.getTenGiga().tsquash("inconsistent ten giga enable to test"); + ctb_config_info.adc_enable_1g = det.getADCEnableMask().tsquash( + "inconsistent adc enable mask to test"); + } + return ctb_config_info; +} + +void set_ctb_config_state(Detector &det, + const testCtbAcquireInfo &ctb_config_info) { + det.setReadoutMode(ctb_config_info.readout_mode); + if (det.getDetectorType().tsquash("inconsistent detector type to test") == + slsDetectorDefs::CHIPTESTBOARD) { + det.setTenGiga(ctb_config_info.ten_giga); + det.setADCEnableMask(ctb_config_info.adc_enable_1g); + } + det.setNumberOfAnalogSamples(ctb_config_info.num_adc_samples); + det.setNumberOfDigitalSamples(ctb_config_info.num_dbit_samples); + det.setNumberOfTransceiverSamples(ctb_config_info.num_trans_samples); + det.setTenGigaADCEnableMask(ctb_config_info.adc_enable_10g); + det.setRxDbitOffset(ctb_config_info.dbit_offset); + det.setRxDbitList(ctb_config_info.dbit_list); + det.setRxDbitReorder(ctb_config_info.dbit_reorder); + det.setTransceiverEnableMask(ctb_config_info.transceiver_mask); +} + +std::pair +calculate_ctb_image_size(const testCtbAcquireInfo &test_info, + bool isXilinxCtb) { + + // test_info.print(); // for debugging + sls::CtbImageInputs inputs{}; + inputs.mode = test_info.readout_mode; + inputs.nAnalogSamples = test_info.num_adc_samples; + inputs.adcMask = test_info.adc_enable_10g; + if (!isXilinxCtb && !test_info.ten_giga) { + inputs.adcMask = test_info.adc_enable_1g; + } + inputs.nTransceiverSamples = test_info.num_trans_samples; + inputs.transceiverMask = test_info.transceiver_mask; + inputs.nDigitalSamples = test_info.num_dbit_samples; + inputs.dbitOffset = test_info.dbit_offset; + inputs.dbitReorder = test_info.dbit_reorder; + inputs.dbitList = test_info.dbit_list; + + auto out = computeCtbImageSize(inputs); + uint64_t image_size = + out.nAnalogBytes + out.nDigitalBytes + out.nTransceiverBytes; + LOG(logDEBUG1) << "Expected image size: " << image_size; + int npixelx = out.nPixelsX; + LOG(logDEBUG1) << "Expected number of pixels in x: " << npixelx; + return std::make_pair(image_size, npixelx); +} + } // namespace sls diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-global.h b/slsDetectorSoftware/tests/Caller/test-Caller-global.h index 98fa46860..f93fc3cdd 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-global.h +++ b/slsDetectorSoftware/tests/Caller/test-Caller-global.h @@ -1,9 +1,78 @@ // SPDX-License-Identifier: LGPL-3.0-or-other // Copyright (C) 2021 Contributors to the SLS Detector Package #pragma once + +#include "Caller.h" +#include "sls/Detector.h" +#include "sls/ToString.h" +#include "sls/logger.h" #include "sls/sls_detector_defs.h" +#include +#include +#include +#include + namespace sls { +struct testFileInfo { + std::string file_path{"/tmp"}; + std::string file_prefix{"sls_test"}; + int64_t file_acq_index{0}; + bool file_write{true}; + bool file_overwrite{true}; + slsDetectorDefs::fileFormat file_format{slsDetectorDefs::BINARY}; + std::string getMasterFileNamePrefix() const { + return file_path + "/" + file_prefix + "_master_" + + std::to_string(file_acq_index); + } + std::string getVirtualFileName() const { + return file_path + "/" + file_prefix + "_virtual_" + + std::to_string(file_acq_index) + ".h5"; + } + inline void print() const { + LOG(logINFO) << "File Info: " + << "\n\tFile Path: " << file_path + << "\n\tFile Prefix: " << file_prefix + << "\n\tFile Acquisition Index: " << file_acq_index + << "\n\tFile Write: " << file_write + << "\n\tFile Overwrite: " << file_overwrite + << "\n\tFile Format: " << ToString(file_format) + << "\n\tMaster Filename: " << getMasterFileNamePrefix() + << "\n\tVirtual Filename: " << getVirtualFileName(); + } +}; + +struct testCtbAcquireInfo { + defs::readoutMode readout_mode{defs::ANALOG_AND_DIGITAL}; + bool ten_giga{false}; + int num_adc_samples{5000}; + int num_dbit_samples{6000}; + int num_trans_samples{288}; + uint32_t adc_enable_1g{0xFFFFFF00}; + uint32_t adc_enable_10g{0xFF00FFFF}; + int dbit_offset{0}; + std::vector dbit_list{0, 12, 2, 43}; + bool dbit_reorder{false}; + uint32_t transceiver_mask{0x3}; + + inline void print() const { + LOG(logINFO) << "CTB Acquire Info: " + << "\n\tReadout Mode: " << ToString(readout_mode) + << "\n\tTen Giga: " << ten_giga + << "\n\tADC Enable 1G: " << std::hex << adc_enable_1g + << std::dec << "\n\tADC Enable 10G: " << std::hex + << adc_enable_10g << std::dec + << "\n\tNumber of Analog Samples: " << num_adc_samples + << "\n\tNumber of Digital Samples: " << num_dbit_samples + << "\n\tNumber of Transceiver Samples: " + << num_trans_samples << "\n\tDBIT Offset: " << dbit_offset + << "\n\tDBIT Reorder: " << dbit_reorder + << "\n\tDBIT List: " << ToString(dbit_list) + << "\n\tTransceiver Mask: " << std::hex << transceiver_mask + << std::dec << std::endl; + } +}; + void test_valid_port_caller(const std::string &command, const std::vector &arguments, int detector_id, int action); @@ -13,4 +82,24 @@ void test_dac_caller(slsDetectorDefs::dacIndex index, void test_onchip_dac_caller(slsDetectorDefs::dacIndex index, const std::string &dacname, int dacvalue); +testFileInfo get_file_state(const Detector &det); +void set_file_state(Detector &det, const testFileInfo &file_info); +void test_acquire_binary_file_size(const testFileInfo &file_info, + uint64_t num_frames_to_acquire, + uint64_t expected_image_size); + +void test_frames_caught(const Detector &det, int num_frames_to_acquire); + +void test_acquire_with_receiver(Caller &caller, const Detector &det); + +void create_files_for_acquire( + Detector &det, Caller &caller, int64_t num_frames = 1, + const std::optional &test_info = std::nullopt); + +testCtbAcquireInfo get_ctb_config_state(const Detector &det); +void set_ctb_config_state(Detector &det, + const testCtbAcquireInfo &ctb_config_info); +std::pair +calculate_ctb_image_size(const testCtbAcquireInfo &test_info, bool isXilinxCtb); + } // namespace sls diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-gotthard.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-gotthard.cpp deleted file mode 100644 index 9eaa5db73..000000000 --- a/slsDetectorSoftware/tests/Caller/test-Caller-gotthard.cpp +++ /dev/null @@ -1,174 +0,0 @@ -// SPDX-License-Identifier: LGPL-3.0-or-other -// Copyright (C) 2021 Contributors to the SLS Detector Package -#include "Caller.h" -#include "catch.hpp" -#include "sls/Detector.h" -#include "sls/sls_detector_defs.h" -#include - -#include "sls/Result.h" -#include "sls/ToString.h" -#include "sls/versionAPI.h" -#include "test-Caller-global.h" -#include "tests/globals.h" - -namespace sls { - -using test::GET; -using test::PUT; - -/* dacs */ - -TEST_CASE("Setting and reading back GOTTHARD dacs", "[.cmdcall][.dacs]") { - // vref_ds, vcascn_pb, vcascp_pb, vout_cm, vcasc_out, vin_cm, vref_comp, - // ib_test_c - - Detector det; - Caller caller(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::GOTTHARD) { - SECTION("vref_ds") { test_dac_caller(defs::VREF_DS, "vref_ds", 660); } - SECTION("vcascn_pb") { - test_dac_caller(defs::VCASCN_PB, "vcascn_pb", 650); - } - SECTION("vcascp_pb") { - test_dac_caller(defs::VCASCP_PB, "vcascp_pb", 1480); - } - SECTION("vout_cm") { test_dac_caller(defs::VOUT_CM, "vout_cm", 1520); } - SECTION("vcasc_out") { - test_dac_caller(defs::VCASC_OUT, "vcasc_out", 1320); - } - SECTION("vin_cm") { test_dac_caller(defs::VIN_CM, "vin_cm", 1350); } - SECTION("vref_comp") { - test_dac_caller(defs::VREF_COMP, "vref_comp", 350); - } - SECTION("ib_test_c") { - test_dac_caller(defs::IB_TESTC, "ib_test_c", 2001); - } - // eiger - REQUIRE_THROWS(caller.call("dac", {"vthreshold"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vsvp"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vsvn"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vtrim"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vrpreamp"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vrshaper"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vtgstv"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcmp_ll"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcmp_lr"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcal"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcmp_rl"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcmp_rr"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"rxb_rb"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"rxb_lb"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcp"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcn"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vishaper"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"iodelay"}, -1, GET)); - // jungfrau - REQUIRE_THROWS(caller.call("dac", {"vb_comp"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vdd_prot"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vin_com"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vref_prech"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vb_pixbuf"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vb_ds"}, -1, GET)); - // REQUIRE_THROWS(caller.call("dac", {"vref_ds"}, -1, GET)); - // REQUIRE_THROWS(caller.call("dac", {"vref_comp"}, -1, GET)); - // mythen3 - REQUIRE_THROWS(caller.call("dac", {"vrpreamp"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vrshaper"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vrshaper_n"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vipre"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vishaper"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vdcsh"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vth1"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vth2"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vth3"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcal_n"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcal_p"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vtrim"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcassh"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcas"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vicin"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vipre_out"}, -1, GET)); - // gotthard2 - REQUIRE_THROWS(caller.call("dac", {"vref_h_adc"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vb_comp_fe"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vb_comp_adc"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcom_cds"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vref_rstore"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vb_opa_1st"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vref_comp_fe"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcom_adc1"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vref_l_adc"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vref_cds"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vb_cs"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vb_opa_fd"}, -1, GET)); - REQUIRE_THROWS(caller.call("dac", {"vcom_adc2"}, -1, GET)); - } -} - -/* Gotthard Specific */ - -TEST_CASE("roi", "[.cmdcall]") { - Detector det; - Caller caller(&det); - auto det_type = det.getDetectorType().squash(); - - if (det_type == defs::GOTTHARD) { - if (det.size() > 1) { - REQUIRE_THROWS(caller.call("roi", {"0", "255"}, -1, PUT)); - REQUIRE_NOTHROW(caller.call("roi", {}, -1, GET)); - } else { - auto prev_val = det.getROI(); - { - std::ostringstream oss; - caller.call("roi", {"0", "255"}, -1, PUT, oss); - REQUIRE(oss.str() == "roi [0, 255]\n"); - } - { - std::ostringstream oss; - caller.call("roi", {"256", "511"}, -1, PUT, oss); - REQUIRE(oss.str() == "roi [256, 511]\n"); - } - REQUIRE_THROWS(caller.call("roi", {"0", "256"}, -1, PUT)); - for (int i = 0; i != det.size(); ++i) { - det.setROI(prev_val[i], i); - } - } - } else { - REQUIRE_THROWS(caller.call("roi", {}, -1, GET)); - } -} - -TEST_CASE("clearroi", "[.cmdcall]") { - Detector det; - Caller caller(&det); - auto det_type = det.getDetectorType().squash(); - - if (det_type == defs::GOTTHARD) { - auto prev_val = det.getROI(); - { - std::ostringstream oss; - caller.call("clearroi", {}, -1, PUT, oss); - REQUIRE(oss.str() == "clearroi successful\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setROI(prev_val[i], i); - } - } else { - REQUIRE_THROWS(caller.call("clearroi", {}, -1, PUT)); - } -} - -TEST_CASE("exptimel", "[.cmdcall]") { - Detector det; - Caller caller(&det); - auto det_type = det.getDetectorType().squash(); - if (det_type == defs::GOTTHARD) { - REQUIRE_NOTHROW(caller.call("exptimel", {}, -1, GET)); - } else { - REQUIRE_THROWS(caller.call("exptimel", {}, -1, GET)); - } -} - -} // namespace sls diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp index e63f99144..4563cd32f 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-jungfrau.cpp @@ -59,15 +59,6 @@ TEST_CASE("Setting and reading back Jungfrau dacs", "[.cmdcall][.dacs]") { REQUIRE_THROWS(caller.call("vcn", {}, -1, GET)); REQUIRE_THROWS(caller.call("vishaper", {}, -1, GET)); REQUIRE_THROWS(caller.call("iodelay", {}, -1, GET)); - // gotthard - // REQUIRE_THROWS(caller.call("vref_ds", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcascn_pb", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcascp_pb", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vout_cm", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcasc_out", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vin_cm", {}, -1, GET)); - // REQUIRE_THROWS(caller.call("vref_comp", {}, -1, GET)); - REQUIRE_THROWS(caller.call("ib_test_c", {}, -1, GET)); // mythen3 REQUIRE_THROWS(caller.call("vrpreamp", {}, -1, GET)); REQUIRE_THROWS(caller.call("vrshaper", {}, -1, GET)); @@ -262,8 +253,7 @@ TEST_CASE("compdisabletime", "[.cmdcall]") { Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::JUNGFRAU && - det.getChipVersion().squash() * 10 == 11) { + if (det_type == defs::JUNGFRAU) { auto prev_val = det.getComparatorDisableTime(); { std::ostringstream oss; @@ -670,7 +660,8 @@ TEST_CASE("pedestalmode", "[.cmdcall]") { TEST_CASE("timing_info_decoder", "[.cmdcall]") { Detector det; Caller caller(&det); - if (det.getDetectorType().squash() == defs::JUNGFRAU) { + if (det.getDetectorType().squash() == defs::JUNGFRAU && + det.getHardwareVersion().squash() == "2.0") { auto prev_val = det.getTimingInfoDecoder(); /*{ std::ostringstream oss; diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-master-attributes.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-master-attributes.cpp new file mode 100644 index 000000000..bf4cf9bac --- /dev/null +++ b/slsDetectorSoftware/tests/Caller/test-Caller-master-attributes.cpp @@ -0,0 +1,1084 @@ +// SPDX-License-Identifier: LGPL-3.0-or-other +// Copyright (C) 2021 Contributors to the SLS Detector Package +#include "Caller.h" +#include "MasterAttributes.h" +#include "catch.hpp" +#include "receiver_defs.h" +#include "sls/Detector.h" +#include "sls/ToString.h" +#include "sls/logger.h" +#include "sls/sls_detector_defs.h" +#include "test-Caller-global.h" +#include "tests/globals.h" + +#include +#include +#include +#include +#include +#include + +#ifdef HDF5C +#include "H5Cpp.h" +const std::string HDF5_GROUP = "/entry/instrument/detector/"; +#endif + +namespace sls { + +using test::GET; +using test::PUT; +using namespace rapidjson; + +inline bool operator==(sls::ns lhs, sls::ns rhs) { + return lhs.count() == rhs.count(); +} + +#ifdef HDF5C +std::optional h5File{}; +#endif + +/** std::string */ +void read_from_json(const Document &doc, const std::string &name, + std::string &retval) { + retval = doc[name.c_str()].GetString(); +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + std::string &retval) { + dataset.read(retval, dataset.getStrType()); +} +#endif + +/** int */ +void read_from_json(const Document &doc, const std::string &name, int &retval) { + retval = doc[name.c_str()].GetInt(); +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + int &retval) { + dataset.read(&retval, H5::PredType::NATIVE_INT); +} +#endif + +/** uint64_t */ +void read_from_json(const Document &doc, const std::string &name, + uint64_t &retval) { + retval = doc[name.c_str()].GetUint64(); +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + uint64_t &retval) { + dataset.read(&retval, H5::PredType::STD_U64LE); +} +#endif + +/** uint32_t */ +void read_from_json(const Document &doc, const std::string &name, + uint32_t &retval) { + retval = doc[name.c_str()].GetUint(); +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + uint32_t &retval) { + dataset.read(&retval, H5::PredType::STD_U32LE); +} +#endif + +/** double */ +void read_from_json(const Document &doc, const std::string &name, + double &retval) { + retval = doc[name.c_str()].GetDouble(); +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + double &retval) { + dataset.read(&retval, H5::PredType::NATIVE_DOUBLE); +} +#endif + +/** std::vector */ +void read_from_json(const Document &doc, const std::string &name, + std::vector &retval) { + for (const auto &item : doc[name.c_str()].GetArray()) { + retval.push_back(item.GetInt64()); + } +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + std::vector &retval) { + H5::DataSpace dataspace = dataset.getSpace(); + hsize_t dims[1]; + dataspace.getSimpleExtentDims(dims); + retval.resize(dims[0]); + dataset.read(retval.data(), H5::PredType::STD_I64LE); +} +#endif + +/** std::vector */ +void read_from_json(const Document &doc, const std::string &name, + std::vector &retval) { + for (const auto &item : doc[name.c_str()].GetArray()) { + defs::ROI r{}; + r.xmin = item["xmin"].GetInt(); + r.xmax = item["xmax"].GetInt(); + r.ymin = item["ymin"].GetInt(); + r.ymax = item["ymax"].GetInt(); + retval.push_back(r); + } +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + std::vector &retval) { + H5::DataSpace dataspace = dataset.getSpace(); + hsize_t dims[1]; + dataspace.getSimpleExtentDims(dims); + H5::CompType cType(sizeof(defs::ROI)); + cType.insertMember("xmin", HOFFSET(defs::ROI, xmin), + H5::PredType::NATIVE_INT); + cType.insertMember("xmax", HOFFSET(defs::ROI, xmax), + H5::PredType::NATIVE_INT); + cType.insertMember("ymin", HOFFSET(defs::ROI, ymin), + H5::PredType::NATIVE_INT); + cType.insertMember("ymax", HOFFSET(defs::ROI, ymax), + H5::PredType::NATIVE_INT); + retval.resize(dims[0]); + dataset.read(retval.data(), cType); +} +#endif + +/** std::array */ +void read_from_json(const Document &doc, const std::string &name, + std::array &retval) { + const auto &json_values = doc[name.c_str()].GetArray(); + if (json_values.Size() != retval.size()) { + throw sls::RuntimeError("JSON array " + name + + " does not have num elements as expected"); + } + int index = 0; + for (const auto &item : json_values) { + retval[index++] = item.GetInt(); + } +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + std::array &retval) { + H5::DataSpace dataspace = dataset.getSpace(); + hsize_t dims[1]; + dataspace.getSimpleExtentDims(dims); + if (dims[0] != retval.size()) { + throw sls::RuntimeError("HDF5 dataset " + name + + " does not have num elements as expected"); + } + dataset.read(retval.data(), H5::PredType::NATIVE_INT); +} +#endif + +/* std::array */ +void read_from_json(const Document &doc, const std::string &name, + std::array &retval) { + const auto &json_values = doc[name.c_str()].GetArray(); + if (json_values.Size() != retval.size()) { + throw sls::RuntimeError("JSON array " + name + + " does not have num elements as expected"); + } + int index = 0; + for (const auto &item : json_values) { + std::string sval = item.GetString(); + retval[index++] = StringTo(sval); + } +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + std::array &retval) { + H5::DataSpace dataspace = dataset.getSpace(); + hsize_t dims[1]; + dataspace.getSimpleExtentDims(dims); + if (dims[0] != retval.size()) { + throw sls::RuntimeError("HDF5 dataset " + name + + " does not have num elements as expected"); + } + std::vector strValues(dims[0]); + dataset.read(strValues.data(), dataset.getStrType()); + for (size_t i = 0; i < dims[0]; ++i) { + retval[i] = StringTo(strValues[i]); + } +} +#endif + +/** defs::xy */ +void read_from_json(const Document &doc, const std::string &name, + defs::xy &retval) { + retval.x = doc[name.c_str()]["x"].GetInt(); + retval.y = doc[name.c_str()]["y"].GetInt(); +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + defs::xy &retval) { + H5::CompType cType(sizeof(defs::xy)); + cType.insertMember("x", HOFFSET(defs::xy, x), H5::PredType::NATIVE_INT); + cType.insertMember("y", HOFFSET(defs::xy, y), H5::PredType::NATIVE_INT); + dataset.read(&retval, cType); +} +#endif + +/** defs::scanParameters */ +void read_from_json(const Document &doc, const std::string &name, + defs::scanParameters &retval) { + const auto &s = doc[name.c_str()].GetObject(); + retval.enable = s["enable"].GetInt(); + retval.dacInd = static_cast(s["dacInd"].GetInt()); + retval.startOffset = s["start offset"].GetInt(); + retval.stopOffset = s["stop offset"].GetInt(); + retval.stepSize = s["step size"].GetInt(); + retval.dacSettleTime_ns = s["dac settle time ns"].GetInt64(); +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + defs::scanParameters &retval) { + H5::CompType cType(sizeof(defs::scanParameters)); + cType.insertMember("enable", HOFFSET(defs::scanParameters, enable), + H5::PredType::NATIVE_INT); + cType.insertMember("dacInd", HOFFSET(defs::scanParameters, dacInd), + H5::PredType::NATIVE_INT); + cType.insertMember("startOffset", + HOFFSET(defs::scanParameters, startOffset), + H5::PredType::NATIVE_INT); + cType.insertMember("stopOffset", HOFFSET(defs::scanParameters, stopOffset), + H5::PredType::NATIVE_INT); + cType.insertMember("stepSize", HOFFSET(defs::scanParameters, stepSize), + H5::PredType::NATIVE_INT); + cType.insertMember("dacSettleTime_ns", + HOFFSET(defs::scanParameters, dacSettleTime_ns), + H5::PredType::STD_I64LE); + dataset.read(&retval, cType); +} +#endif + +/** std::map */ +void read_from_json(const Document &doc, const std::string &name, + std::map &retval) { + for (const auto &m : doc[name.c_str()].GetObject()) { + retval[m.name.GetString()] = m.value.GetString(); + } +} +#ifdef HDF5C +void read_from_h5_dataset(const H5::DataSet &dataset, const std::string &name, + std::map &retval) { + H5::DataSpace dataspace = dataset.getSpace(); + hsize_t dims[1]; + dataspace.getSimpleExtentDims(dims); + if (dims[0] == 0) { + return; // empty dataset + } + auto strType = dataset.getStrType(); + H5::CompType mapType(sizeof(char *) * 2); + mapType.insertMember("key", 0, strType); + mapType.insertMember("value", sizeof(char *), strType); + struct KeyValue { + const char *key; + const char *value; + }; + std::vector kv_vector(dims[0]); + dataset.read(kv_vector.data(), mapType); + for (const auto &kv : kv_vector) { + retval[kv.key] = kv.value; + } +} +#endif + +/** test parameter in file */ +template +void test_json_parameter(const Document &doc, const std::string &name, + const T &expected) { + REQUIRE(doc.HasMember(name.c_str())); + T retval{}; + read_from_json(doc, name, retval); + REQUIRE(retval == expected); +} +#ifdef HDF5C +template +void test_h5_dataset(const std::string &name, const T &expected) { + auto dataset = h5File->openDataSet(HDF5_GROUP + name); + T retval{}; + read_from_h5_dataset(dataset, name, retval); + REQUIRE(retval == expected); +} +#endif + +template +void check_master_file(const std::optional &doc, + const std::string &name, const T &expected) { + if (doc.has_value()) { + const auto &d = *doc; + test_json_parameter(d, name, expected); + } else { +#ifdef HDF5C + if (!h5File.has_value()) { + throw sls::RuntimeError("HDF5 file is not opened for testing " + + name); + } + test_h5_dataset(name, expected); +#else + throw sls::RuntimeError("Document is not available for testing " + + name); +#endif + } +} + +void test_master_file_version(const Detector &det, + const std::optional &doc) { + // different values for json and hdf5 + // hdf5 version in atttribute and not dataset + double retval{}; + std::string name = MasterAttributes::N_VERSION.data(); + if (doc.has_value()) { + const auto &d = *doc; + REQUIRE(d.HasMember(MasterAttributes::N_VERSION.data())); + read_from_json(d, name, retval); + REQUIRE(retval == BINARY_WRITER_VERSION); + } else { +#ifdef HDF5C + if (!h5File.has_value()) { + throw sls::RuntimeError( + "HDF5 file is not opened for testing Version"); + } + auto attr = h5File->openAttribute(MasterAttributes::N_VERSION.data()); + attr.read(attr.getDataType(), &retval); + REQUIRE(retval == HDF5_WRITER_VERSION); +#else + throw sls::RuntimeError( + "Document is not available for testing Version"); +#endif + } +} + +void test_master_file_type(const Detector &det, + const std::optional &doc) { + auto det_type = det.getDetectorType().tsquash("Inconsistent detector type"); + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_DETECTOR_TYPE.data(), ToString(det_type))); +} + +void test_master_file_timing_mode(const Detector &det, + const std::optional &doc) { + auto timing_mode = det.getTimingMode().tsquash("Inconsistent timing mode"); + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_TIMING_MODE.data(), ToString(timing_mode))); +} + +void test_master_file_geometry(const Detector &det, + const std::optional &doc) { + auto modGeometry = det.getModuleGeometry(); + auto portperModGeometry = det.getPortPerModuleGeometry(); + auto geometry = defs::xy{modGeometry.x * portperModGeometry.x, + modGeometry.y * portperModGeometry.y}; + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_GEOMETRY.data(), geometry)); +} + +void test_master_file_image_size(const Detector &det, + const std::optional &doc) { + + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + int bytes_per_pixel = det.getDynamicRange().squash() / 8; + detParameters par(det_type); + + int image_size = 0; + switch (det_type) { + + case defs::EIGER: { + int num_chips = (par.nChipX / 2); + image_size = par.nChanX * par.nChanY * num_chips * bytes_per_pixel; + } break; + + case defs::JUNGFRAU: + case defs::MOENCH: { + auto num_udp_interfaces = det.getNumberofUDPInterfaces().tsquash( + "inconsistent number of udp interfaces"); + image_size = (par.nChanX * par.nChanY * par.nChipX * par.nChipY * + bytes_per_pixel) / + num_udp_interfaces; + } break; + + case defs::MYTHEN3: { + int counter_mask = det.getCounterMask().squash(); + int num_counters = __builtin_popcount(counter_mask); + int num_channels_per_counter = par.nChanX / MAX_NUM_COUNTERS; + image_size = num_channels_per_counter * num_counters * par.nChipX * + bytes_per_pixel; + } break; + + case defs::GOTTHARD2: { + image_size = par.nChanX * par.nChipX * bytes_per_pixel; + } break; + + case defs::CHIPTESTBOARD: + case defs::XILINX_CHIPTESTBOARD: { + testCtbAcquireInfo test_info{}; + image_size = calculate_ctb_image_size( + test_info, (det_type == defs::XILINX_CHIPTESTBOARD)) + .first; + } break; + + default: + throw sls::RuntimeError("Unsupported detector type for this test"); + } + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_IMAGE_SIZE.data(), image_size)); +} + +void test_master_file_det_size(const Detector &det, + const std::optional &doc) { + + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + auto portSize = det.getPortSize()[0]; + + // m3 assumes all counters enabled when getting num channels from client + // TODO: in future, remove assumption + if (det_type == defs::MYTHEN3) { + int nchan = portSize.x / MAX_NUM_COUNTERS; + auto counter_mask = det.getCounterMask().tsquash( + "Inconsistent counter mask for Mythen3 detector"); + int num_counters = __builtin_popcount(counter_mask); + portSize.x = nchan * num_counters; + } else if (det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { + testCtbAcquireInfo test_info{}; + portSize.x = calculate_ctb_image_size( + test_info, det_type == defs::XILINX_CHIPTESTBOARD) + .second; + portSize.y = 1; + } + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_PIXELS.data(), portSize)); +} + +void test_master_file_max_frames_per_file(const Detector &det, + const std::optional &doc) { + auto max_frames_per_file = + det.getFramesPerFile().tsquash("Inconsistent max frames per file"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_MAX_FRAMES_PER_FILE.data(), + max_frames_per_file)); +} + +void test_master_file_frame_discard_policy(const Detector &det, + const std::optional &doc) { + auto policy = det.getRxFrameDiscardPolicy().tsquash( + "Inconsistent frame discard policy"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_FRAME_DISCARD_POLICY.data(), + ToString(policy))); +} + +void test_master_file_frame_padding(const Detector &det, + const std::optional &doc) { + auto padding = static_cast( + det.getPartialFramesPadding().tsquash("Inconsistent frame padding")); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_FRAME_PADDING.data(), padding)); +} + +void test_master_file_scan_parameters(const Detector &det, + const std::optional &doc) { + auto scan_params = det.getScan().tsquash("Inconsistent scan parameters"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_SCAN_PARAMETERS.data(), scan_params)); +} + +void test_master_file_total_frames(const Detector &det, + const std::optional &doc) { + uint64_t repeats = + det.getNumberOfTriggers().tsquash("Inconsistent number of triggers"); + uint64_t numFrames = + det.getNumberOfFrames().tsquash("Inconsistent number of frames"); + int numAdditionalStorageCells = 0; + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types"); + if (det_type == defs::GOTTHARD2) { + auto timing_mode = + det.getTimingMode().tsquash("Inconsistent timing mode"); + auto burst_mode = det.getBurstMode().tsquash("Inconsistent burst mode"); + auto numBursts = + det.getNumberOfBursts().tsquash("Inconsistent number of bursts"); + // auto + if (timing_mode == defs::AUTO_TIMING) { + // burst mode, repeats = #bursts + if (burst_mode == defs::BURST_INTERNAL || + burst_mode == defs::BURST_EXTERNAL) { + repeats = numBursts; + } + // continuous, repeats = 1 (no trigger as well) + else { + repeats = 1; + } + } + // trigger + else { + // continuous, numFrames is limited + if (burst_mode == defs::CONTINUOUS_INTERNAL || + burst_mode == defs::CONTINUOUS_EXTERNAL) { + numFrames = 1; + } + } + } else if (det_type == defs::JUNGFRAU) { + numAdditionalStorageCells = + det.getNumberOfAdditionalStorageCells().tsquash( + "Inconsistent number of additional storage cells"); + } + uint64_t total_frames = + numFrames * repeats * (int64_t)(numAdditionalStorageCells + 1); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_TOTAL_FRAMES.data(), total_frames)); +} + +void test_master_file_rois(const Detector &det, + const std::optional &doc) { + auto rois = det.getRxROI(); + auto detsize = det.getDetectorSize(); + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + // compensate for m3 channel size and counter mask mess + if (det_type == defs::MYTHEN3) { + int nchan = detsize.x / MAX_NUM_COUNTERS; + auto counter_mask = det.getCounterMask().tsquash( + "Inconsistent counter mask for Mythen3 detector"); + int num_counters = __builtin_popcount(counter_mask); + detsize.x = nchan * num_counters; + } + // replace -1 for complete ROI + bool is2D = (detsize.y > 1); + for (auto &roi : rois) { + if (roi.completeRoi()) { + roi.xmin = 0; + roi.xmax = detsize.x - 1; + if (is2D) { + roi.ymin = 0; + roi.ymax = detsize.y - 1; + } + } + } + + REQUIRE_NOTHROW(check_master_file>( + doc, MasterAttributes::N_RECEIVER_ROIS.data(), rois)); +} + +void test_master_file_exptime(const Detector &det, + const std::optional &doc) { + auto exptime = det.getExptime().tsquash("Inconsistent exposure time"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_EXPOSURE_TIME.data(), ToString(exptime))); +} + +void test_master_file_period(const Detector &det, + const std::optional &doc) { + auto period = det.getPeriod().tsquash("Inconsistent period"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_ACQUISITION_PERIOD.data(), ToString(period))); +} + +void test_master_file_num_udp_interfaces(const Detector &det, + const std::optional &doc) { + auto num_udp_interfaces = det.getNumberofUDPInterfaces().tsquash( + "Inconsistent number of UDP interfaces"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_NUM_UDP_INTERFACES.data(), + num_udp_interfaces)); +} + +void test_master_file_read_n_rows(const Detector &det, + const std::optional &doc) { + auto readnrows = det.getReadNRows().tsquash("Inconsistent number of rows"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_NUMBER_OF_ROWS.data(), readnrows)); +} + +void test_master_file_readout_speed(const Detector &det, + const std::optional &doc) { + auto readout_speed = + det.getReadoutSpeed().tsquash("Inconsistent readout speed"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_READOUT_SPEED.data(), + ToString(readout_speed))); +} + +void test_master_file_frames_in_file(const std::optional &doc, + const int frames_in_file) { + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_FRAMES_IN_FILE.data(), frames_in_file)); +} + +void test_master_file_json_header(const Detector &det, + const std::optional &doc) { + auto json_header = + det.getAdditionalJsonHeader().tsquash("Inconsistent JSON header"); + + REQUIRE_NOTHROW(check_master_file>( + doc, MasterAttributes::N_ADDITIONAL_JSON_HEADER.data(), json_header)); +} + +void test_master_file_dynamic_range(const Detector &det, + const std::optional &doc) { + auto dr = det.getDynamicRange().tsquash("Inconsistent dynamic range"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_DYNAMIC_RANGE.data(), dr)); +} + +void test_master_file_ten_giga(const Detector &det, + const std::optional &doc) { + auto ten_giga = + static_cast(det.getTenGiga().tsquash("Inconsistent ten giga")); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_TEN_GIGA.data(), ten_giga)); +} + +void test_master_file_threshold_energy(const Detector &det, + const std::optional &doc) { + auto threshold = + det.getThresholdEnergy().tsquash("Inconsistent threshold energy"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_THRESHOLD_ENERGY.data(), threshold)); +} + +void test_master_file_sub_exptime(const Detector &det, + const std::optional &doc) { + auto sub_exptime = + det.getSubExptime().tsquash("Inconsistent sub exposure time"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_SUB_EXPOSURE_TIME.data(), + ToString(sub_exptime))); +} + +void test_master_file_sub_period(const Detector &det, + const std::optional &doc) { + auto exptime = det.getSubExptime().tsquash("Inconsistent sub exptime"); + auto deadtime = det.getSubDeadTime().tsquash("Inconsistent sub deadtime"); + auto sub_period = exptime + deadtime; + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_SUB_ACQUISITION_PERIOD.data(), + ToString(sub_period))); +} + +void test_master_file_quad(const Detector &det, + const std::optional &doc) { + auto quad = static_cast(det.getQuad().tsquash("Inconsistent quad")); + + REQUIRE_NOTHROW( + check_master_file(doc, MasterAttributes::N_QUAD.data(), quad)); +} + +void test_master_file_rate_corrections(const Detector &det, + const std::optional &doc) { + std::vector dead_times; + for (auto item : det.getRateCorrection()) + dead_times.push_back(item.count()); + + REQUIRE_NOTHROW(check_master_file>( + doc, MasterAttributes::N_RATE_CORRECTIONS.data(), dead_times)); +} + +void test_master_file_counter_mask(const Detector &det, + const std::optional &doc) { + auto counter_mask = static_cast( + det.getCounterMask().tsquash("Inconsistent counter mask")); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_COUNTER_MASK.data(), counter_mask)); +} + +void test_master_file_exptimes(const Detector &det, + const std::optional &doc) { + auto exptimes = + det.getExptimeForAllGates().tsquash("Inconsistent exposure times"); + + REQUIRE_NOTHROW(check_master_file>( + doc, MasterAttributes::N_EXPOSURE_TIMES.data(), exptimes)); +} + +void test_master_file_gate_delays(const Detector &det, + const std::optional &doc) { + auto gate_delays = + det.getGateDelayForAllGates().tsquash("Inconsistent GateDelay"); + + REQUIRE_NOTHROW(check_master_file>( + doc, MasterAttributes::N_GATE_DELAYS.data(), gate_delays)); +} + +void test_master_file_gates(const Detector &det, + const std::optional &doc) { + auto gates = det.getNumberOfGates().tsquash("Inconsistent number of gates"); + + REQUIRE_NOTHROW( + check_master_file(doc, MasterAttributes::N_GATES.data(), gates)); +} + +void test_master_file_threadhold_energies(const Detector &det, + const std::optional &doc) { + auto threshold_energies = + det.getAllThresholdEnergy().tsquash("Inconsistent threshold energies"); + + REQUIRE_NOTHROW(check_master_file>( + doc, MasterAttributes::N_THRESHOLD_ENERGIES.data(), + threshold_energies)); +} + +void test_master_file_burst_mode(const Detector &det, + const std::optional &doc) { + auto burst_mode = det.getBurstMode().tsquash("Inconsistent burst mode"); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_BURST_MODE.data(), ToString(burst_mode))); +} + +void test_master_file_adc_mask(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_ctb_config{}; + auto adc_mask = test_ctb_config.adc_enable_10g; + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::CHIPTESTBOARD) { + auto tengiga = test_ctb_config.ten_giga; + if (!tengiga) + adc_mask = test_ctb_config.adc_enable_1g; + } + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_ADC_MASK.data(), adc_mask)); +} + +void test_master_file_analog_flag(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto romode = test_info.readout_mode; + auto analog = static_cast( + (romode == defs::ANALOG_ONLY || romode == defs::ANALOG_AND_DIGITAL)); + + REQUIRE_NOTHROW( + check_master_file(doc, MasterAttributes::N_ANALOG.data(), analog)); +} + +void test_master_file_analog_samples(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto analog_samples = test_info.num_adc_samples; + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_ANALOG_SAMPLES.data(), analog_samples)); +} + +void test_master_file_digital_flag(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto romode = test_info.readout_mode; + auto digital = static_cast(romode == defs::DIGITAL_ONLY || + romode == defs::ANALOG_AND_DIGITAL || + romode == defs::DIGITAL_AND_TRANSCEIVER); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_DIGITAL.data(), digital)); +} + +void test_master_file_digital_samples(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto digital_samples = test_info.num_dbit_samples; + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_DIGITAL_SAMPLES.data(), digital_samples)); +} + +void test_master_file_dbit_offset(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto dbit_offset = test_info.dbit_offset; + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_DBIT_OFFSET.data(), dbit_offset)); +} + +void test_master_file_dbit_reorder(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto dbit_reorder = test_info.dbit_reorder; + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_DBIT_REORDER.data(), dbit_reorder)); +} + +void test_master_file_dbit_bitset(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + uint64_t dbit_bitset = 0; + for (auto &i : test_info.dbit_list) { + dbit_bitset |= (static_cast(1) << i); + } + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_DBIT_BITSET.data(), dbit_bitset)); +} + +void test_master_file_transceiver_mask(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto trans_mask = test_info.transceiver_mask; + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_TRANSCEIVER_MASK.data(), trans_mask)); +} + +void test_master_file_transceiver_flag(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto romode = test_info.readout_mode; + auto trans = static_cast(romode == defs::DIGITAL_AND_TRANSCEIVER || + romode == defs::TRANSCEIVER_ONLY); + + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_TRANSCEIVER.data(), trans)); +} + +void test_master_file_transceiver_samples(const Detector &det, + const std::optional &doc) { + testCtbAcquireInfo test_info{}; + auto trans_samples = test_info.num_trans_samples; + REQUIRE_NOTHROW(check_master_file( + doc, MasterAttributes::N_TRANSCEIVER_SAMPLES.data(), trans_samples)); +} + +void test_master_file_common_metadata(const Detector &det, + const std::optional &doc) { + test_master_file_version(det, doc); + test_master_file_type(det, doc); + test_master_file_timing_mode(det, doc); + test_master_file_geometry(det, doc); + test_master_file_image_size(det, doc); + test_master_file_det_size(det, doc); + test_master_file_max_frames_per_file(det, doc); + test_master_file_frame_discard_policy(det, doc); + test_master_file_frame_padding(det, doc); + test_master_file_scan_parameters(det, doc); + test_master_file_total_frames(det, doc); + test_master_file_json_header(det, doc); + // TODO: test frame header format? +} + +void test_master_file_jungfrau_metadata(const Detector &det, + const std::optional &doc) { + REQUIRE_NOTHROW(test_master_file_common_metadata(det, doc)); + // Jungfrau specific metadata + REQUIRE_NOTHROW(test_master_file_rois(det, doc)); + REQUIRE_NOTHROW(test_master_file_exptime(det, doc)); + REQUIRE_NOTHROW(test_master_file_period(det, doc)); + REQUIRE_NOTHROW(test_master_file_num_udp_interfaces(det, doc)); + REQUIRE_NOTHROW(test_master_file_read_n_rows(det, doc)); + REQUIRE_NOTHROW(test_master_file_readout_speed(det, doc)); +} + +void test_master_file_eiger_metadata(const Detector &det, + const std::optional &doc) { + REQUIRE_NOTHROW(test_master_file_common_metadata(det, doc)); + // Eiger specific metadata + REQUIRE_NOTHROW(test_master_file_rois(det, doc)); + REQUIRE_NOTHROW(test_master_file_dynamic_range(det, doc)); + REQUIRE_NOTHROW(test_master_file_ten_giga(det, doc)); + REQUIRE_NOTHROW(test_master_file_exptime(det, doc)); + REQUIRE_NOTHROW(test_master_file_period(det, doc)); + REQUIRE_NOTHROW(test_master_file_threshold_energy(det, doc)); + REQUIRE_NOTHROW(test_master_file_sub_exptime(det, doc)); + REQUIRE_NOTHROW(test_master_file_sub_period(det, doc)); + REQUIRE_NOTHROW(test_master_file_quad(det, doc)); + REQUIRE_NOTHROW(test_master_file_read_n_rows(det, doc)); + REQUIRE_NOTHROW(test_master_file_rate_corrections(det, doc)); + REQUIRE_NOTHROW(test_master_file_readout_speed(det, doc)); +} + +void test_master_file_moench_metadata(const Detector &det, + const std::optional &doc) { + REQUIRE_NOTHROW(test_master_file_common_metadata(det, doc)); + // Moench specific metadata + REQUIRE_NOTHROW(test_master_file_rois(det, doc)); + REQUIRE_NOTHROW(test_master_file_exptime(det, doc)); + REQUIRE_NOTHROW(test_master_file_period(det, doc)); + REQUIRE_NOTHROW(test_master_file_num_udp_interfaces(det, doc)); + REQUIRE_NOTHROW(test_master_file_read_n_rows(det, doc)); + REQUIRE_NOTHROW(test_master_file_readout_speed(det, doc)); +} + +void test_master_file_mythen3_metadata(const Detector &det, + const std::optional &doc) { + REQUIRE_NOTHROW(test_master_file_common_metadata(det, doc)); + // Mythen3 specific metadata + REQUIRE_NOTHROW(test_master_file_rois(det, doc)); + REQUIRE_NOTHROW(test_master_file_dynamic_range(det, doc)); + REQUIRE_NOTHROW(test_master_file_ten_giga(det, doc)); + REQUIRE_NOTHROW(test_master_file_period(det, doc)); + REQUIRE_NOTHROW(test_master_file_counter_mask(det, doc)); + REQUIRE_NOTHROW(test_master_file_exptimes(det, doc)); + REQUIRE_NOTHROW(test_master_file_gate_delays(det, doc)); + REQUIRE_NOTHROW(test_master_file_gates(det, doc)); + REQUIRE_NOTHROW(test_master_file_threadhold_energies(det, doc)); + REQUIRE_NOTHROW(test_master_file_readout_speed(det, doc)); +} + +void test_master_file_gotthard2_metadata(const Detector &det, + const std::optional &doc) { + REQUIRE_NOTHROW(test_master_file_common_metadata(det, doc)); + // Gotthard2 specific metadata + REQUIRE_NOTHROW(test_master_file_exptime(det, doc)); + REQUIRE_NOTHROW(test_master_file_period(det, doc)); + REQUIRE_NOTHROW(test_master_file_burst_mode(det, doc)); + REQUIRE_NOTHROW(test_master_file_readout_speed(det, doc)); +} + +void test_master_file_ctb_metadata(const Detector &det, + const std::optional &doc) { + auto det_type = det.getDetectorType().squash(); + REQUIRE_NOTHROW(test_master_file_common_metadata(det, doc)); + // Ctb specific metadata + REQUIRE_NOTHROW(test_master_file_exptime(det, doc)); + REQUIRE_NOTHROW(test_master_file_period(det, doc)); + if (det_type == defs::CHIPTESTBOARD) + REQUIRE_NOTHROW(test_master_file_ten_giga(det, doc)); + REQUIRE_NOTHROW(test_master_file_adc_mask(det, doc)); + REQUIRE_NOTHROW(test_master_file_analog_flag(det, doc)); + REQUIRE_NOTHROW(test_master_file_analog_samples(det, doc)); + REQUIRE_NOTHROW(test_master_file_digital_flag(det, doc)); + REQUIRE_NOTHROW(test_master_file_digital_samples(det, doc)); + REQUIRE_NOTHROW(test_master_file_dbit_offset(det, doc)); + REQUIRE_NOTHROW(test_master_file_dbit_reorder(det, doc)); + REQUIRE_NOTHROW(test_master_file_dbit_bitset(det, doc)); + REQUIRE_NOTHROW(test_master_file_transceiver_mask(det, doc)); + REQUIRE_NOTHROW(test_master_file_transceiver_flag(det, doc)); + REQUIRE_NOTHROW(test_master_file_transceiver_samples(det, doc)); +} + +void test_master_file_metadata(const Detector &det, + const std::optional &doc) { + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types"); + switch (det_type) { + case defs::JUNGFRAU: + test_master_file_jungfrau_metadata(det, doc); + break; + case defs::EIGER: + test_master_file_eiger_metadata(det, doc); + break; + case defs::MOENCH: + test_master_file_moench_metadata(det, doc); + break; + case defs::MYTHEN3: + test_master_file_mythen3_metadata(det, doc); + break; + case defs::GOTTHARD2: + test_master_file_gotthard2_metadata(det, doc); + break; + case defs::CHIPTESTBOARD: + case defs::XILINX_CHIPTESTBOARD: + test_master_file_ctb_metadata(det, doc); + break; + default: + break; + } +} + +Document parse_binary_master_attributes(std::string file_path) { + REQUIRE(std::filesystem::exists(file_path) == true); + std::ifstream file(file_path); + REQUIRE(file.is_open()); + std::stringstream buffer; + buffer << file.rdbuf(); + std::string json_str = buffer.str(); + + Document doc; + ParseResult result = doc.Parse(json_str.c_str()); + if (result == 0) { + std::cout << "JSON parse error: " << GetParseError_En(result.Code()) + << " (at offset " << result.Offset() << ")" << std::endl; + + // Optional: Show problematic snippet + size_t offset = result.Offset(); + std::string context = + json_str.substr(std::max(0, (int)offset - 20), 40); + std::cout << "Context around error: \"" << context << "\"" << std::endl; + } + REQUIRE(result != 0); + return doc; +} + +#ifdef HDF5C +void open_hdf5_file(const std::string &file_path) { + REQUIRE(std::filesystem::exists(file_path) == true); + h5File = std::make_optional(file_path, H5F_ACC_RDONLY); + REQUIRE(H5Lexists(h5File->getId(), HDF5_GROUP.c_str(), H5P_DEFAULT) == + true); +} +#endif + +TEST_CASE("check_master_file_attributes", "[.cmdcall][.cmdacquire][.cmdattr]") { + + Detector det; + Caller caller(&det); + auto det_type = + det.getDetectorType().tsquash("Inconsistent detector types to test"); + + int64_t num_frames = 1; + switch (det_type) { + case defs::EIGER: + case defs::JUNGFRAU: + case defs::MOENCH: + case defs::MYTHEN3: + case defs::GOTTHARD2: + create_files_for_acquire(det, caller, num_frames); + break; + case defs::CHIPTESTBOARD: + case defs::XILINX_CHIPTESTBOARD: { + testCtbAcquireInfo test_ctb_config{}; + create_files_for_acquire(det, caller, num_frames, test_ctb_config); + } break; + default: + throw sls::RuntimeError("Unsupported detector type for this test"); + } + + testFileInfo file_info; + std::string master_file_prefix = file_info.getMasterFileNamePrefix(); + + // binary + std::string fname = + master_file_prefix + ".json"; // /tmp/sls_test_master_0.json + auto doc = std::make_optional(parse_binary_master_attributes(fname)); + test_master_file_metadata(det, doc); + test_master_file_frames_in_file(doc, num_frames); + + // hdf5 +#ifdef HDF5C + fname = master_file_prefix + ".h5"; // /tmp/sls_test_master_0.h5 + try { + open_hdf5_file(fname); + test_master_file_metadata(det, std::nullopt); + test_master_file_frames_in_file(std::nullopt, num_frames); + } catch (H5::Exception &e) { + LOG(logERROR) << "HDF5 error: " << e.getDetailMsg(); + throw; + } +#endif +} + +} // namespace sls diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-moench.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-moench.cpp index 4da61d2b5..56353f44b 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-moench.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-moench.cpp @@ -59,15 +59,6 @@ TEST_CASE("Setting and reading back moench dacs", "[.cmdcall][.dacs]") { REQUIRE_THROWS(caller.call("vcn", {}, -1, GET)); REQUIRE_THROWS(caller.call("vishaper", {}, -1, GET)); REQUIRE_THROWS(caller.call("iodelay", {}, -1, GET)); - // gotthard - REQUIRE_THROWS(caller.call("vref_ds", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcascn_pb", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcascp_pb", {}, -1, GET)); - // REQUIRE_THROWS(caller.call("vout_cm", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vcasc_out", {}, -1, GET)); - // REQUIRE_THROWS(caller.call("vin_cm", {}, -1, GET)); - REQUIRE_THROWS(caller.call("vref_comp", {}, -1, GET)); - REQUIRE_THROWS(caller.call("ib_test_c", {}, -1, GET)); // mythen3 REQUIRE_THROWS(caller.call("vrpreamp", {}, -1, GET)); REQUIRE_THROWS(caller.call("vrshaper", {}, -1, GET)); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-pattern.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-pattern.cpp index 60e1f460e..60dafd4f4 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-pattern.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-pattern.cpp @@ -329,7 +329,7 @@ TEST_CASE("patwaittime", "[.cmdcall]") { if (det_type == defs::MYTHEN3 && iLoop >= 3) { continue; } - auto prev_val = det.getPatternWaitTime(iLoop); + auto prev_val = det.getPatternWaitClocks(iLoop); std::string sLoop = ToString(iLoop); if (iLoop < 3) { std::string deprecatedCmd = "patwaittime" + sLoop; @@ -354,8 +354,24 @@ TEST_CASE("patwaittime", "[.cmdcall]") { caller.call("patwaittime", {sLoop}, -1, GET, oss); REQUIRE(oss.str() == "patwaittime " + sLoop + " 8589936640\n"); } + // time units + { + std::ostringstream oss; + caller.call("patwaittime", {sLoop, "50us"}, -1, PUT, oss); + REQUIRE(oss.str() == "patwaittime " + sLoop + " 50us\n"); + } + { + std::ostringstream oss; + caller.call("patwaittime", {sLoop, "us"}, -1, GET, oss); + REQUIRE(oss.str() == "patwaittime " + sLoop + " 50us\n"); + if (iLoop == 0 && det_type != defs::MYTHEN3) { + std::ostringstream oss; + caller.call("exptime", {"us"}, -1, GET, oss); + REQUIRE(oss.str() == "exptime 50us\n"); + } + } for (int iDet = 0; iDet != det.size(); ++iDet) { - det.setPatternWaitTime(iLoop, prev_val[iDet], {iDet}); + det.setPatternWaitClocks(iLoop, prev_val[iDet], {iDet}); } } } else { @@ -420,7 +436,8 @@ TEST_CASE("patternstart", "[.cmdcall]") { Caller caller(&det); REQUIRE_THROWS(caller.call("patternstart", {}, -1, GET)); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::MYTHEN3) { + if (det_type == defs::MYTHEN3 || det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { REQUIRE_NOTHROW(caller.call("patternstart", {}, -1, PUT)); } else { REQUIRE_THROWS(caller.call("patternstart", {}, -1, PUT)); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-rx-running.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-rx-running.cpp new file mode 100644 index 000000000..844df6419 --- /dev/null +++ b/slsDetectorSoftware/tests/Caller/test-Caller-rx-running.cpp @@ -0,0 +1,239 @@ +// SPDX-License-Identifier: LGPL-3.0-or-other +// Copyright (C) 2025 Contributors to the SLS Detector Package +#include "Caller.h" +#include "catch.hpp" +#include "sls/Detector.h" +#include "tests/globals.h" + +#include + +namespace sls { + +using test::PUT; + +TEST_CASE("Ctb and xilinx - cant put if receiver is not idle", + "[.cmdcall][.rx]") { + + Detector det; + Caller caller(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { + auto prev_romode = det.getReadoutMode(); + auto prev_asamples = det.getNumberOfAnalogSamples(); + auto prev_dsamples = det.getNumberOfDigitalSamples(); + auto prev_tsamples = det.getNumberOfTransceiverSamples(); + auto prev_adcenable10g = det.getTenGigaADCEnableMask(); + auto prev_trasnsceiverenable = det.getTransceiverEnableMask(); + auto prev_rxdbitlist = det.getRxDbitList(); + auto prev_rxdbitoffset = det.getRxDbitOffset(); + auto prev_rxdbitreorder = det.getRxDbitReorder(); + + // start receiver + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + + REQUIRE_THROWS(caller.call("romode", {"digital"}, -1, PUT)); + REQUIRE_THROWS(caller.call("asamples", {"5"}, -1, PUT)); + REQUIRE_THROWS(caller.call("dsamples", {"100"}, -1, PUT)); + REQUIRE_THROWS(caller.call("tsamples", {"2"}, -1, PUT)); + REQUIRE_THROWS(caller.call("adcenable10g", {"0xFF00FFFF"}, -1, PUT)); + REQUIRE_THROWS(caller.call("transceiverenable", {"0x3"}, -1, PUT)); + REQUIRE_THROWS(caller.call("rx_dbitlist", {"{1,2,10}"}, -1, PUT)); + REQUIRE_THROWS(caller.call("rx_dbitoffset", {"5"}, -1, PUT)); + REQUIRE_THROWS(caller.call("rx_dbitreorder", {"0"}, -1, PUT)); + + // stop receiver + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); + + for (int i = 0; i != det.size(); ++i) { + det.setReadoutMode(prev_romode[i], {i}); + det.setNumberOfAnalogSamples(prev_asamples[i], {i}); + det.setNumberOfDigitalSamples(prev_dsamples[i], {i}); + det.setNumberOfTransceiverSamples(prev_tsamples[i], {i}); + det.setTenGigaADCEnableMask(prev_adcenable10g[i], {i}); + det.setTransceiverEnableMask(prev_trasnsceiverenable[i], {i}); + det.setRxDbitList(prev_rxdbitlist[i], {i}); + det.setRxDbitOffset(prev_rxdbitoffset[i], {i}); + det.setRxDbitReorder(prev_rxdbitreorder[i], {i}); + } + } +} + +TEST_CASE("adcenable - cant put if receiver is not idle", "[.cmdcall][.rx]") { + + Detector det; + Caller caller(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::CHIPTESTBOARD) { + auto prev_adcenable = det.getADCEnableMask(); + + // start receiver + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + + REQUIRE_THROWS(caller.call("adcenable", {"0xFFFFFF00"}, -1, PUT)); + + // stop receiver + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); + + for (int i = 0; i != det.size(); ++i) { + det.setADCEnableMask(prev_adcenable[i], {i}); + } + } +} + +TEST_CASE("bursts - cant put if receiver is not idle", "[.cmdcall][.rx]") { + + Detector det; + Caller caller(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::GOTTHARD2) { + auto prev_burst = + det.getNumberOfBursts().tsquash("#bursts should be same to test"); + + // start receiver + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + + REQUIRE_THROWS(caller.call("bursts", {"20"}, -1, PUT)); + + // stop receiver + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); + + det.setNumberOfBursts(prev_burst); + } +} + +TEST_CASE("counters - cant put if receiver is not idle", "[.cmdcall][.rx]") { + + Detector det; + Caller caller(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::MYTHEN3) { + auto prev_counters = det.getCounterMask(); + + // start receiver + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + + REQUIRE_THROWS(caller.call("counters", {"0 1 2"}, -1, PUT)); + + // stop receiver + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); + + for (int i = 0; i != det.size(); ++i) { + det.setCounterMask(prev_counters[i], {i}); + } + } +} + +TEST_CASE("numinterfaces - cant put if receiver is not idle", + "[.cmdcall][.rx]") { + + Detector det; + Caller caller(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH) { + auto prev_numinterfaces = det.getNumberofUDPInterfaces(); + + // start receiver + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + + REQUIRE_THROWS(caller.call("numinterafaces", {"2"}, -1, PUT)); + + // stop receiver + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); + + for (int i = 0; i != det.size(); ++i) { + det.setNumberofUDPInterfaces(prev_numinterfaces[i], {i}); + } + } +} + +TEST_CASE("dr - cant put if receiver is not idle", "[.cmdcall][.rx]") { + + Detector det; + Caller caller(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::EIGER || det_type == defs::MYTHEN3) { + auto prev_dr = + det.getDynamicRange().tsquash("dr should be same to test"); + + // start receiver + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + + REQUIRE_THROWS(caller.call("dr", {"16"}, -1, PUT)); + + // stop receiver + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); + + det.setDynamicRange(prev_dr); + } +} + +TEST_CASE("tengiga - cant put if receiver is not idle", "[.cmdcall][.rx]") { + + Detector det; + Caller caller(&det); + auto det_type = det.getDetectorType().squash(); + + if (det_type == defs::EIGER || det_type == defs::MYTHEN3 || + det_type == defs::CHIPTESTBOARD) { + auto prev_tengiga = det.getTenGiga(); + + // start receiver + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + + REQUIRE_THROWS(caller.call("tengiga", {"1"}, -1, PUT)); + + // stop receiver + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); + + for (int i = 0; i != det.size(); ++i) { + det.setTenGiga(prev_tengiga[i], {i}); + } + } +} + +TEST_CASE("general - cant put if receiver is not idle", "[.cmdcall][.rx]") { + + Detector det; + Caller caller(&det); + + { + auto prev_frames = + det.getNumberOfFrames().tsquash("#frames should be same to test"); + auto prev_triggers = + det.getNumberOfTriggers().tsquash("#triggers must be same to test"); + auto prev_findex = det.getAcquisitionIndex(); + auto prev_fwrite = det.getFileWrite(); + auto prev_fifodepth = det.getRxFifoDepth(); + auto rx_hostname = det.getRxHostname(); + + // start receiver + REQUIRE_NOTHROW(caller.call("rx_start", {}, -1, PUT)); + + REQUIRE_THROWS(caller.call("frames", {"10"}, -1, PUT)); + REQUIRE_THROWS(caller.call("triggers", {"5"}, -1, PUT)); + REQUIRE_THROWS(caller.call("findex", {"2"}, -1, PUT)); + REQUIRE_THROWS(caller.call("fwrite", {"0"}, -1, PUT)); + REQUIRE_THROWS(caller.call("rx_fifodepth", {"1000"}, -1, PUT)); + REQUIRE_THROWS(caller.call("rx_hostname", {rx_hostname[0]}, 0, PUT)); + + // stop receiver + REQUIRE_NOTHROW(caller.call("rx_stop", {}, -1, PUT)); + + det.setNumberOfFrames(prev_frames); + det.setNumberOfTriggers(prev_triggers); + for (int i = 0; i != det.size(); ++i) { + det.setAcquisitionIndex(prev_findex[i], {i}); + det.setFileWrite(prev_fwrite[i], {i}); + det.setRxFifoDepth(prev_fifodepth[i], {i}); + det.setRxHostname(rx_hostname[i], {i}); + } + } +} +} // namespace sls \ No newline at end of file diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp index 38fe14e86..74fa821d8 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-rx.cpp @@ -7,6 +7,7 @@ #include "sls/sls_detector_defs.h" #include "test-Caller-global.h" +#include #include #include "sls/versionAPI.h" @@ -445,26 +446,27 @@ TEST_CASE("rx_arping", "[.cmdcall][.rx]") { Detector det; Caller caller(&det); auto prev_val = det.getRxArping(); - { - std::ostringstream oss; - caller.call("rx_arping", {"1"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_arping 1\n"); - } - { - std::ostringstream oss; - caller.call("rx_arping", {}, -1, GET, oss); - REQUIRE(oss.str() == "rx_arping 1\n"); - } - { - std::ostringstream oss; - caller.call("rx_arping", {"0"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_arping 0\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setRxArping(prev_val[i], {i}); + if (det.getDestinationUDPIP()[0].str() != "127.0.0.1") { + { + std::ostringstream oss; + caller.call("rx_arping", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_arping 1\n"); + } + { + std::ostringstream oss; + caller.call("rx_arping", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_arping 1\n"); + } + { + std::ostringstream oss; + caller.call("rx_arping", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_arping 0\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setRxArping(prev_val[i], {i}); + } } } - TEST_CASE("rx_roi", "[.cmdcall]") { Detector det; Caller caller(&det); @@ -475,35 +477,103 @@ TEST_CASE("rx_roi", "[.cmdcall]") { } else { auto prev_val = det.getRxROI(); defs::xy detsize = det.getDetectorSize(); + auto portSize = det.getPortSize()[0]; + int delta = 50; + int numinterfaces = det.getNumberofUDPInterfaces().tsquash( + "inconsistent number of interfaces"); // 1d - if (det_type == defs::GOTTHARD || det_type == defs::GOTTHARD2 || - det_type == defs::MYTHEN3) { + if (det_type == defs::GOTTHARD2 || det_type == defs::MYTHEN3) { { std::ostringstream oss; caller.call("rx_roi", {"5", "10"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [5, 10]\n"); + REQUIRE(oss.str() == "rx_roi [[5, 10]]\n"); } { std::ostringstream oss; caller.call("rx_roi", {"10", "15"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [10, 15]\n"); + REQUIRE(oss.str() == "rx_roi [[10, 15]]\n"); } + REQUIRE_THROWS(caller.call("rx_roi", {"0", "0"}, -1, PUT)); REQUIRE_THROWS(caller.call("rx_roi", {"-1", "-1"}, -1, PUT)); - REQUIRE_THROWS( - caller.call("rx_roi", {"10", "15", "25", "30"}, -1, PUT)); + // xmin > xmax + REQUIRE_THROWS(caller.call("rx_roi", {"[12, 8, -1, -1]"}, -1, PUT)); + // outside detector bounds + REQUIRE_THROWS(caller.call( + "rx_roi", + {"[95," + std::to_string(detsize.x + 5) + ", -1, -1]"}, -1, + PUT)); + // module level not allowed + REQUIRE_THROWS(caller.call("rx_roi", {"[5, 10, -1, -1]"}, 0, PUT)); + + // vector of rois + // square brackets missing + REQUIRE_THROWS(caller.call( + "rx_roi", {"[5, 20, -1, -1]; 25, 30, -1, -1]"}, -1, PUT)); + REQUIRE_THROWS(caller.call( + "rx_roi", {"[5, 20, -1, -1]; [25, 30, -1, -1"}, -1, PUT)); + // invalid roi, 4 parts expected + REQUIRE_THROWS(caller.call( + "rx_roi", {"[5, 20, -1] [25, 30, -1, -1]"}, -1, PUT)); + // overlapping rois + REQUIRE_THROWS(caller.call( + "rx_roi", {"[0, 10,-1, -1] [5, 15, -1, -1]"}, -1, PUT)); + + if (det.size() == 2) { + auto moduleSize = det.getModuleSize()[0]; + std::string stringMin = std::to_string(moduleSize.x); + std::string stringMax = std::to_string(moduleSize.x + 1); + + // separated by space is allowed + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[5, 10, -1, -1]", + "[" + stringMin + ", " + stringMax + ", -1, -1]"}, + -1, PUT)); + std::ostringstream oss; + // separated by semicolon with quotes is allowed (skips + // cmdParser) + REQUIRE_NOTHROW(caller.call("rx_roi", + {"[5, 10, -1, -1];[" + stringMin + + ", " + stringMax + ", -1, -1]"}, + -1, PUT, oss)); + REQUIRE(oss.str() == "rx_roi [[5, 10], [" + stringMin + ", " + + stringMax + "]]\n"); + + // verify individual roi + { + stringMin = std::to_string(moduleSize.x - 50); + stringMax = std::to_string(moduleSize.x + 50); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call( + "rx_roi", {"[" + stringMin + ", " + stringMax + "]"}, + -1, PUT, oss)); + REQUIRE(oss.str() == "rx_roi [[" + stringMin + ", " + + stringMax + "]]\n"); + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + REQUIRE(oss1.str() == "rx_roi [[" + stringMin + ", " + + std::to_string(moduleSize.x - 1) + + "]]\n"); + } + } + // valid roi before acquiring + else { + std::ostringstream oss; + caller.call("rx_roi", {"10", "15"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_roi [[10, 15]]\n"); + } } - // 2d + // 2d eiger, jungfrau, moench else { { std::ostringstream oss; caller.call("rx_roi", {"10", "15", "1", "5"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [10, 15, 1, 5]\n"); + REQUIRE(oss.str() == "rx_roi [[10, 15, 1, 5]]\n"); } { std::ostringstream oss; caller.call("rx_roi", {"10", "22", "18", "19"}, -1, PUT, oss); - REQUIRE(oss.str() == "rx_roi [10, 22, 18, 19]\n"); + REQUIRE(oss.str() == "rx_roi [[10, 22, 18, 19]]\n"); } { std::ostringstream oss; @@ -511,18 +581,203 @@ TEST_CASE("rx_roi", "[.cmdcall]") { {"1", std::to_string(detsize.x - 5), "1", std::to_string(detsize.y - 5)}, -1, PUT, oss); - REQUIRE(oss.str() == std::string("rx_roi [1, ") + + REQUIRE(oss.str() == std::string("rx_roi [[1, ") + std::to_string(detsize.x - 5) + std::string(", 1, ") + std::to_string(detsize.y - 5) + - std::string("]\n")); + std::string("]]\n")); } + REQUIRE_THROWS( + caller.call("rx_roi", {"0", "0", "0", "0"}, -1, PUT)); REQUIRE_THROWS( caller.call("rx_roi", {"-1", "-1", "-1", "-1"}, -1, PUT)); + // xmin > xmax + REQUIRE_THROWS(caller.call("rx_roi", {"[12, 8, 0, 10]"}, -1, PUT)); + // ymin > ymax + REQUIRE_THROWS(caller.call("rx_roi", {"[0, 10, 20, 5]"}, -1, PUT)); + // outside detector bounds + REQUIRE_THROWS(caller.call( + "rx_roi", {"[95," + std::to_string(detsize.x + 5) + ", 0, 10]"}, + -1, PUT)); + REQUIRE_THROWS(caller.call( + "rx_roi", + {"[95, 100, 0, " + std::to_string(detsize.y + 5) + "]"}, -1, + PUT)); + // module level not allowed + REQUIRE_THROWS(caller.call("rx_roi", {"[5, 10, 20, 30]"}, 0, PUT)); + + // vector of rois + // square brackets missing + REQUIRE_THROWS(caller.call( + "rx_roi", {"[5, 20, 20, 30]; 25, 30, 14, 15]"}, -1, PUT)); + REQUIRE_THROWS(caller.call( + "rx_roi", {"[5, 20, 20, 30]; [25, 30, 14, 15"}, -1, PUT)); + // invalid roi, 4 parts expected + REQUIRE_THROWS(caller.call( + "rx_roi", {"[5, 20, 20] [25, 30, 14, 15]"}, -1, PUT)); + // overlapping rois + REQUIRE_THROWS(caller.call( + "rx_roi", {"[0, 10, 0, 10] [5, 15, 0, 10]"}, -1, PUT)); + REQUIRE_THROWS(caller.call( + "rx_roi", {"[0, 10, 0, 10] [0, 10, 9, 11]"}, -1, PUT)); + + // multiple ports horizontally + if (det_type == defs::EIGER || + (det.size() == 2 && det.getModuleGeometry().x > 1)) { + std::string stringMin = std::to_string(portSize.x); + std::string stringMax = std::to_string(portSize.x + 1); + + // separated by space is allowed + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[5, 10, 20, 30]", + "[" + stringMin + ", " + stringMax + ", 20, 30]"}, + -1, PUT)); + std::ostringstream oss; + // separated by semicolon with quotes is allowed (skips + // cmdParser) + REQUIRE_NOTHROW(caller.call("rx_roi", + {"[5, 10, 20, 30];[" + stringMin + + ", " + stringMax + ", 20, 30]"}, + -1, PUT, oss)); + REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [" + stringMin + + ", " + stringMax + ", 20, 30]]\n"); + + // verify individual roi + { + stringMin = std::to_string(portSize.x - delta); + stringMax = std::to_string(portSize.x + delta); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[" + stringMin + ", " + stringMax + ", 20, 30]"}, -1, + PUT, oss)); + REQUIRE(oss.str() == "rx_roi [[" + stringMin + ", " + + stringMax + ", 20, 30]]\n"); + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + // eiger returns 2 values for 2 ports per module + if (det_type == defs::EIGER) { + REQUIRE(oss1.str() == + "rx_roi [[" + stringMin + ", " + + std::to_string(portSize.x - 1) + + ", 20, 30], [0, " + std::to_string(delta) + + ", 20, 30]]\n"); + } + // others return only 1 roi per module (1 port per module) + else { + REQUIRE(oss1.str() == + "rx_roi [[" + stringMin + ", " + + std::to_string(portSize.x - 1) + + ", 20, 30]]\n"); + } + } + } + // valid roi before acquiring + else { + std::ostringstream oss; + caller.call("rx_roi", + {"1", std::to_string(detsize.x - 5), "1", + std::to_string(detsize.y - 5)}, + -1, PUT, oss); + REQUIRE(oss.str() == std::string("rx_roi [[1, ") + + std::to_string(detsize.x - 5) + + std::string(", 1, ") + + std::to_string(detsize.y - 5) + + std::string("]]\n")); + } + + // multiple ports vertically + if (((det_type == defs::JUNGFRAU || det_type == defs::MOENCH) && + (numinterfaces == 2)) || + (det.size() == 2 && det.getModuleGeometry().y > 1)) { + std::string stringMin = std::to_string(portSize.y); + std::string stringMax = std::to_string(portSize.y + 1); + + // separated by space is allowed + REQUIRE_NOTHROW( + caller.call("rx_roi", + {"[5, 10, 20, 30]", "[25, 28, " + stringMin + + ", " + stringMax + "]"}, + -1, PUT)); + std::ostringstream oss; + // separated by semicolon is allowed with quotes (skips + // cmdParser) + REQUIRE_NOTHROW( + caller.call("rx_roi", + {"[5, 10, 20, 30];[25, 28, " + stringMin + + ", " + stringMax + "]"}, + -1, PUT, oss)); + REQUIRE(oss.str() == "rx_roi [[5, 10, 20, 30], [25, 28, " + + stringMin + ", " + stringMax + "]]\n"); + + // verify individual roi + { + stringMin = std::to_string(portSize.y - delta); + stringMax = std::to_string(portSize.y + delta); + std::ostringstream oss, oss1; + REQUIRE_NOTHROW(caller.call( + "rx_roi", + {"[ 20, 30, " + stringMin + ", " + stringMax + "]"}, -1, + PUT, oss)); + REQUIRE(oss.str() == "rx_roi [[20, 30, " + stringMin + + ", " + stringMax + "]]\n"); + REQUIRE_NOTHROW(caller.call("rx_roi", {}, 0, GET, oss1)); + + // non-eiger with 2 interfaces returns 2 values for 2 ports + // per module + if ((det_type == defs::JUNGFRAU || + det_type == defs::MOENCH) && + (numinterfaces == 2)) { + REQUIRE(oss1.str() == + "rx_roi [[20, 30, " + stringMin + ", " + + std::to_string(portSize.y - 1) + + "], [20, 30, 0, " + std::to_string(delta) + + "]]\n"); + } + // others return only 1 roi per module (1 port per module) + else { + // (eiger 2 ports) + if (det_type == defs::EIGER) { + REQUIRE(oss1.str() == + "rx_roi [[20, 30, " + stringMin + ", " + + std::to_string(portSize.y - 1) + + "], [-1, -1]]\n"); + } else { + REQUIRE(oss1.str() == + "rx_roi [[20, 30, " + stringMin + ", " + + std::to_string(portSize.y - 1) + + "]]\n"); + } + } + } + } + } + + // check master file creation + // TODO: check roi in master file + { + REQUIRE_NOTHROW(create_files_for_acquire(det, caller)); + testFileInfo file_info; + std::string master_file_prefix = + file_info.getMasterFileNamePrefix(); + + std::string fname = master_file_prefix + ".json"; + REQUIRE(std::filesystem::exists(fname) == true); +#ifdef HDF5C + fname = master_file_prefix + ".h5"; + REQUIRE(std::filesystem::exists(fname) == true); + if (det.size() > 1 || numinterfaces > 1) { + fname = file_info.getVirtualFileName(); + REQUIRE(std::filesystem::exists(fname) == true); + } +#endif } for (int i = 0; i != det.size(); ++i) { - det.setRxROI(prev_val); + if (prev_val.size() == 1 && prev_val[0].completeRoi()) { + det.clearRxROI(); + } else + det.setRxROI(prev_val); } } } @@ -542,7 +797,11 @@ TEST_CASE("rx_clearroi", "[.cmdcall]") { REQUIRE(oss.str() == "rx_clearroi successful\n"); } for (int i = 0; i != det.size(); ++i) { - det.setRxROI(prev_val); + if (prev_val.size() == 1 && prev_val[0].completeRoi()) { + det.clearRxROI(); + } else { + det.setRxROI(prev_val); + } } } } @@ -583,6 +842,9 @@ TEST_CASE("fpath", "[.cmdcall]") { REQUIRE(oss.str() == "fpath /tmp\n"); } for (int i = 0; i != det.size(); ++i) { + if (prev_val[i].empty()) { + continue; + } det.setFilePath(prev_val[i], {i}); } } @@ -956,6 +1218,37 @@ TEST_CASE("rx_dbitoffset", "[.cmdcall][.rx]") { } } +TEST_CASE("rx_dbitreorder", "[.cmdcall][.rx]") { + Detector det; + Caller caller(&det); + auto det_type = det.getDetectorType().squash(); + if (det_type == defs::CHIPTESTBOARD || + det_type == defs::XILINX_CHIPTESTBOARD) { + auto prev_val = det.getRxDbitReorder(); + { + std::ostringstream oss; + caller.call("rx_dbitreorder", {"0"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_dbitreorder 0\n"); + } + { + std::ostringstream oss; + caller.call("rx_dbitreorder", {"1"}, -1, PUT, oss); + REQUIRE(oss.str() == "rx_dbitreorder 1\n"); + } + { + std::ostringstream oss; + caller.call("rx_dbitreorder", {}, -1, GET, oss); + REQUIRE(oss.str() == "rx_dbitreorder 1\n"); + } + REQUIRE_THROWS(caller.call("rx_dbitreorder", {"15"}, -1, PUT)); + for (int i = 0; i != det.size(); ++i) { + det.setRxDbitReorder(prev_val[i], {i}); + } + } else { + REQUIRE_THROWS(caller.call("rx_dbitreorder", {}, -1, GET)); + } +} + TEST_CASE("rx_jsonaddheader", "[.cmdcall][.rx]") { Detector det; Caller caller(&det); diff --git a/slsDetectorSoftware/tests/Caller/test-Caller.cpp b/slsDetectorSoftware/tests/Caller/test-Caller.cpp index b9aa56e36..c96f6d4b1 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller.cpp @@ -10,8 +10,10 @@ #include #include #include +#include #include "tests/globals.h" +#include namespace sls { @@ -232,13 +234,6 @@ TEST_CASE("settings", "[.cmdcall]") { sett.push_back("g4_hg"); sett.push_back("g4_lg"); break; - case defs::GOTTHARD: - sett.push_back("highgain"); - sett.push_back("dynamicgain"); - sett.push_back("lowgain"); - sett.push_back("mediumgain"); - sett.push_back("veryhighgain"); - break; case defs::GOTTHARD2: sett.push_back("dynamicgain"); sett.push_back("fixgain1"); @@ -613,8 +608,8 @@ TEST_CASE("master", "[.cmdcall]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::EIGER || det_type == defs::MYTHEN3 || - det_type == defs::GOTTHARD || det_type == defs::GOTTHARD2 || - det_type == defs::JUNGFRAU || det_type == defs::MOENCH) { + det_type == defs::GOTTHARD2 || det_type == defs::JUNGFRAU || + det_type == defs::MOENCH) { REQUIRE_NOTHROW(caller.call("master", {}, -1, GET)); if (det_type == defs::EIGER || det_type == defs::GOTTHARD2 || det_type == defs::JUNGFRAU || det_type == defs::MOENCH) { @@ -825,7 +820,7 @@ TEST_CASE("exptime", "[.cmdcall][.time]") { Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); - std::chrono::nanoseconds prev_val; + ns prev_val; if (det_type != defs::MYTHEN3) { prev_val = det.getExptime().tsquash("inconsistent exptime to test"); } else { @@ -902,9 +897,6 @@ TEST_CASE("delay", "[.cmdcall]") { if (det_type == defs::EIGER) { REQUIRE_THROWS(caller.call("delay", {"1"}, -1, PUT)); REQUIRE_THROWS(caller.call("delay", {}, -1, GET)); - } else if (det_type == defs::GOTTHARD) { - // extra delays for master (can throw when setting) - REQUIRE_NOTHROW(caller.call("delay", {}, -1, GET)); } else { auto prev_val = det.getDelayAfterTrigger(); { @@ -1204,34 +1196,25 @@ TEST_CASE("adcphase", "[.cmdcall]") { Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::GOTTHARD || det_type == defs::JUNGFRAU || - det_type == defs::MOENCH || det_type == defs::CHIPTESTBOARD) { - if (det_type == defs::GOTTHARD) { - std::ostringstream oss1; + if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH || + det_type == defs::CHIPTESTBOARD) { + auto prev_val = det.getADCPhase(); + { + std::ostringstream oss1, oss2; caller.call("adcphase", {"20"}, -1, PUT, oss1); REQUIRE(oss1.str() == "adcphase 20\n"); - // cant get, cant use deg - REQUIRE_THROWS(caller.call("adcphase", {}, -1, GET)); - REQUIRE_THROWS(caller.call("adcphase", {"20", "deg"}, -1, PUT)); - } else { - auto prev_val = det.getADCPhase(); - { - std::ostringstream oss1, oss2; - caller.call("adcphase", {"20"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "adcphase 20\n"); - caller.call("adcphase", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "adcphase 20\n"); - } - { - std::ostringstream oss1, oss2; - caller.call("adcphase", {"20", "deg"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "adcphase 20 deg\n"); - caller.call("adcphase", {"deg"}, -1, GET, oss2); - REQUIRE(oss2.str() == "adcphase 20 deg\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setADCPhase(prev_val[i], {i}); - } + caller.call("adcphase", {}, -1, GET, oss2); + REQUIRE(oss2.str() == "adcphase 20\n"); + } + { + std::ostringstream oss1, oss2; + caller.call("adcphase", {"20", "deg"}, -1, PUT, oss1); + REQUIRE(oss1.str() == "adcphase 20 deg\n"); + caller.call("adcphase", {"deg"}, -1, GET, oss2); + REQUIRE(oss2.str() == "adcphase 20 deg\n"); + } + for (int i = 0; i != det.size(); ++i) { + det.setADCPhase(prev_val[i], {i}); } } else { REQUIRE_THROWS(caller.call("adcphase", {"0"}, -1, PUT)); @@ -1376,6 +1359,22 @@ TEST_CASE("clkdiv", "[.cmdcall]") { REQUIRE_THROWS(caller.call("clkdiv", {"7", "4"}, -1, PUT)); REQUIRE_THROWS(caller.call("clkdiv", {"0", "1"}, -1, PUT)); auto prev_val = det.getClockDivider(0); + auto prev_period = det.getPeriod().tsquash("Inconsistent period"); + auto prev_delay = + det.getDelayAfterTrigger().tsquash("Inconsistent delay"); + std::variant> prev_exptime{}; + std::array prev_gate_delay{}; + ns prev_burst_period{}; + if (det_type == defs::MYTHEN3) { + prev_exptime = + det.getExptimeForAllGates().tsquash("Inconsistent exptime"); + prev_gate_delay = det.getGateDelayForAllGates().tsquash( + "Inconsistent gate delay"); + } else { + prev_exptime = det.getExptime().tsquash("Inconsistent exptime"); + prev_burst_period = + det.getBurstPeriod().tsquash("Inconsistent burst period"); + } { std::ostringstream oss1, oss2; caller.call("clkdiv", {"0", "3"}, -1, PUT, oss1); @@ -1386,6 +1385,19 @@ TEST_CASE("clkdiv", "[.cmdcall]") { for (int i = 0; i != det.size(); ++i) { det.setClockDivider(0, prev_val[i], {i}); } + det.setPeriod(prev_period); + det.setDelayAfterTrigger(prev_delay); + if (det_type == defs::MYTHEN3) { + auto exptimes = std::get>(prev_exptime); + for (int iCounter = 0; iCounter != 3; ++iCounter) { + det.setExptime(iCounter, exptimes[iCounter]); + det.setGateDelay(iCounter, prev_gate_delay[iCounter]); + } + } else { + auto exptime = std::get(prev_exptime); + det.setExptime(exptime); + det.setBurstPeriod(prev_burst_period); + } // other clocks removed for m3 (setting not supported) if (det_type == defs::MYTHEN3) { REQUIRE_THROWS(caller.call("clkdiv", {"1", "2"}, -1, PUT)); @@ -1426,27 +1438,9 @@ TEST_CASE("highvoltage", "[.cmdcall]") { auto det_type = det.getDetectorType().squash(); if (det_type != defs::XILINX_CHIPTESTBOARD) { auto prev_val = det.getHighVoltage(); - // selected values - if (det_type == defs::GOTTHARD) { - REQUIRE_THROWS(caller.call("highvoltage", {"50"}, -1, PUT)); - { - std::ostringstream oss1, oss2; - caller.call("highvoltage", {"90"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "highvoltage 90\n"); - caller.call("highvoltage", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "highvoltage 90\n"); - } - { - std::ostringstream oss1, oss2; - caller.call("highvoltage", {"0"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "highvoltage 0\n"); - caller.call("highvoltage", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "highvoltage 0\n"); - } - } // range 0, 60 - 200 - else if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH || - det_type == defs::CHIPTESTBOARD) { + if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH || + det_type == defs::CHIPTESTBOARD) { REQUIRE_THROWS(caller.call("highvoltage", {"50"}, -1, PUT)); { std::ostringstream oss1, oss2; @@ -1580,27 +1574,8 @@ TEST_CASE("imagetest", "[.cmdcall]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); // cannot test only for virtual eiger/jungfrau - if (det_type == defs::GOTTHARD) { - auto prev_val = det.getImageTestMode(); - { - std::ostringstream oss1, oss2; - caller.call("imagetest", {"1"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "imagetest 1\n"); - caller.call("imagetest", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "imagetest 1\n"); - } - { - std::ostringstream oss1, oss2; - caller.call("imagetest", {"0"}, -1, PUT, oss1); - REQUIRE(oss1.str() == "imagetest 0\n"); - caller.call("imagetest", {}, -1, GET, oss2); - REQUIRE(oss2.str() == "imagetest 0\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setImageTestMode(prev_val[i], {i}); - } - } else if (det_type != defs::JUNGFRAU && det_type != defs::MOENCH && - det_type != defs::EIGER) { + if (det_type != defs::JUNGFRAU && det_type != defs::MOENCH && + det_type != defs::EIGER) { // wont fail for eiger and jungfrau/moench virtual servers REQUIRE_THROWS(caller.call("imagetest", {}, -1, GET)); } @@ -1610,32 +1585,7 @@ TEST_CASE("extsig", "[.cmdcall]") { Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::GOTTHARD) { - auto prev_val = det.getExternalSignalFlags(0); - REQUIRE_THROWS(caller.call("extsig", {}, -1, GET)); - REQUIRE_THROWS(caller.call("extsig", {"1"}, -1, GET)); - REQUIRE_THROWS(caller.call("extsig", {"0", "inversion_on"}, -1, PUT)); - REQUIRE_THROWS(caller.call("extsig", {"0", "inversion_off"}, -1, PUT)); - { - std::ostringstream oss1, oss2; - caller.call("extsig", {"0", "trigger_in_rising_edge"}, -1, PUT, - oss1); - REQUIRE(oss1.str() == "extsig 0 trigger_in_rising_edge\n"); - caller.call("extsig", {"0"}, -1, GET, oss2); - REQUIRE(oss2.str() == "extsig 0 trigger_in_rising_edge\n"); - } - { - std::ostringstream oss1, oss2; - caller.call("extsig", {"0", "trigger_in_falling_edge"}, -1, PUT, - oss1); - REQUIRE(oss1.str() == "extsig 0 trigger_in_falling_edge\n"); - caller.call("extsig", {"0"}, -1, GET, oss2); - REQUIRE(oss2.str() == "extsig 0 trigger_in_falling_edge\n"); - } - for (int i = 0; i != det.size(); ++i) { - det.setExternalSignalFlags(0, prev_val[i], {i}); - } - } else if (det_type == defs::MYTHEN3) { + if (det_type == defs::MYTHEN3) { auto prev_val_0 = det.getExternalSignalFlags(0); auto prev_val_1 = det.getExternalSignalFlags(1); REQUIRE_THROWS(caller.call("extsig", {}, -1, GET)); @@ -2022,8 +1972,7 @@ TEST_CASE("temp_adc", "[.cmdcall]") { Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); - if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH || - det_type == defs::GOTTHARD) { + if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH) { REQUIRE_NOTHROW(caller.call("temp_adc", {}, -1, GET)); std::ostringstream oss; REQUIRE_NOTHROW(caller.call("temp_adc", {}, 0, GET, oss)); @@ -2280,7 +2229,7 @@ TEST_CASE("start", "[.cmdcall]") { // PUT only command REQUIRE_THROWS(caller.call("start", {}, -1, GET)); auto det_type = det.getDetectorType().squash(); - std::chrono::nanoseconds prev_val; + ns prev_val; if (det_type != defs::MYTHEN3) { prev_val = det.getExptime().tsquash("inconsistent exptime to test"); } else { @@ -2319,7 +2268,7 @@ TEST_CASE("stop", "[.cmdcall]") { // PUT only command REQUIRE_THROWS(caller.call("stop", {}, -1, GET)); auto det_type = det.getDetectorType().squash(); - std::chrono::nanoseconds prev_val; + ns prev_val; if (det_type != defs::MYTHEN3) { prev_val = det.getExptime().tsquash("inconsistent exptime to test"); } else { @@ -2362,7 +2311,7 @@ TEST_CASE("status", "[.cmdcall]") { Detector det; Caller caller(&det); auto det_type = det.getDetectorType().squash(); - std::chrono::nanoseconds prev_val; + ns prev_val; if (det_type != defs::MYTHEN3) { prev_val = det.getExptime().tsquash("inconsistent exptime to test"); } else { @@ -2518,7 +2467,7 @@ TEST_CASE("scan", "[.cmdcall]") { break; case defs::EIGER: ind = defs::VCMP_LL; - notImplementedInd = defs::VCASCP_PB; + notImplementedInd = defs::VIN_COM; break; case defs::JUNGFRAU: ind = defs::VB_COMP; @@ -2528,10 +2477,6 @@ TEST_CASE("scan", "[.cmdcall]") { ind = defs::VIN_CM; notImplementedInd = defs::VSVP; break; - case defs::GOTTHARD: - ind = defs::VREF_DS; - notImplementedInd = defs::VSVP; - break; case defs::GOTTHARD2: ind = defs::VB_COMP_FE; notImplementedInd = defs::VSVP; @@ -2650,6 +2595,12 @@ TEST_CASE("numinterfaces", "[.cmdcall]") { if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH) { auto prev_val = det.getNumberofUDPInterfaces().tsquash( "inconsistent numinterfaces to test"); + UdpDestination prev_udp_dest{}; + IpAddr prev_src_ip2{}; + if (prev_val == 2 && det_type != defs::EIGER) { + prev_udp_dest = det.getDestinationUDPList(0)[0]; + prev_src_ip2 = det.getSourceUDPIP2()[0]; + } { std::ostringstream oss; caller.call("numinterfaces", {"2"}, -1, PUT, oss); @@ -2665,6 +2616,10 @@ TEST_CASE("numinterfaces", "[.cmdcall]") { caller.call("numinterfaces", {}, -1, GET, oss); REQUIRE(oss.str() == "numinterfaces 1\n"); } + if (prev_val == 2 && det_type != defs::EIGER) { + det.setDestinationUDPList({prev_udp_dest}, 0); + det.setSourceUDPIP2({prev_src_ip2}, {0}); + } det.setNumberofUDPInterfaces(prev_val); } else if (det_type == defs::EIGER) { REQUIRE_THROWS(caller.call("numinterfaces", {"1"}, -1, PUT)); @@ -3284,8 +3239,7 @@ TEST_CASE("rebootcontroller", "[.cmdcall]") { auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH || det_type == defs::CHIPTESTBOARD || det_type == defs::MYTHEN3 || - det_type == defs::GOTTHARD2 || det_type == defs::GOTTHARD || - det_type == defs::XILINX_CHIPTESTBOARD) { + det_type == defs::GOTTHARD2 || det_type == defs::XILINX_CHIPTESTBOARD) { // TODO: reboot real server? // REQUIRE_NOTHROW(caller.call("rebootcontroller", {}, -1, PUT)); REQUIRE_THROWS(caller.call("rebootcontroller", {}, -1, GET)); @@ -3319,6 +3273,12 @@ TEST_CASE("reg", "[.cmdcall]") { auto det_type = det.getDetectorType().squash(); if (det_type != defs::EIGER) { uint32_t addr = 0x64; + if (det_type == defs::MYTHEN3) { + addr = 0x80; + } + if (det_type == defs::GOTTHARD2) { + addr = 0x298; + } std::string saddr = ToStringHex(addr); auto prev_val = det.readRegister(addr); { @@ -3351,10 +3311,13 @@ TEST_CASE("adcreg", "[.cmdcall]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH || - det_type == defs::CHIPTESTBOARD || det_type == defs::GOTTHARD) { - std::ostringstream oss; - caller.call("adcreg", {"0x8", "0x3"}, -1, PUT, oss); - REQUIRE(oss.str() == "adcreg [0x8, 0x3]\n"); + det_type == defs::CHIPTESTBOARD) { + if (det.isVirtualDetectorServer().tsquash( + "Inconsistent virtual detector server to test adcreg")) { + std::ostringstream oss; + caller.call("adcreg", {"0x8", "0x3"}, -1, PUT, oss); + REQUIRE(oss.str() == "adcreg [0x8, 0x3]\n"); + } // This is a put only command REQUIRE_THROWS(caller.call("adcreg", {}, -1, GET)); } else { @@ -3369,6 +3332,12 @@ TEST_CASE("setbit", "[.cmdcall]") { auto det_type = det.getDetectorType().squash(); if (det_type != defs::EIGER) { uint32_t addr = 0x64; + if (det_type == defs::MYTHEN3) { + addr = 0x80; + } + if (det_type == defs::GOTTHARD2) { + addr = 0x298; + } std::string saddr = ToStringHex(addr); auto prev_val = det.readRegister(addr); { @@ -3393,6 +3362,12 @@ TEST_CASE("clearbit", "[.cmdcall]") { auto det_type = det.getDetectorType().squash(); if (det_type != defs::EIGER) { uint32_t addr = 0x64; + if (det_type == defs::MYTHEN3) { + addr = 0x80; + } + if (det_type == defs::GOTTHARD2) { + addr = 0x298; + } std::string saddr = ToStringHex(addr); auto prev_val = det.readRegister(addr); { @@ -3417,6 +3392,12 @@ TEST_CASE("getbit", "[.cmdcall]") { auto det_type = det.getDetectorType().squash(); if (det_type != defs::EIGER) { uint32_t addr = 0x64; + if (det_type == defs::MYTHEN3) { + addr = 0x80; + } + if (det_type == defs::GOTTHARD2) { + addr = 0x298; + } std::string saddr = ToStringHex(addr); auto prev_val = det.readRegister(addr); { @@ -3440,9 +3421,8 @@ TEST_CASE("firmwaretest", "[.cmdcall]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH || - det_type == defs::CHIPTESTBOARD || det_type == defs::GOTTHARD || - det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2 || - det_type == defs::XILINX_CHIPTESTBOARD) { + det_type == defs::CHIPTESTBOARD || det_type == defs::MYTHEN3 || + det_type == defs::GOTTHARD2 || det_type == defs::XILINX_CHIPTESTBOARD) { std::ostringstream oss; caller.call("firmwaretest", {}, -1, PUT, oss); REQUIRE(oss.str() == "firmwaretest successful\n"); @@ -3458,8 +3438,8 @@ TEST_CASE("bustest", "[.cmdcall]") { Caller caller(&det); auto det_type = det.getDetectorType().squash(); if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH || - det_type == defs::CHIPTESTBOARD || det_type == defs::GOTTHARD || - det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) { + det_type == defs::CHIPTESTBOARD || det_type == defs::MYTHEN3 || + det_type == defs::GOTTHARD2) { std::ostringstream oss; caller.call("bustest", {}, -1, PUT, oss); REQUIRE(oss.str() == "bustest successful\n"); @@ -3655,11 +3635,8 @@ TEST_CASE("frametime", "[.cmdcall]") { TEST_CASE("user", "[.cmdcall]") { Detector det; Caller caller(&det); - caller.call("user", {}, -1, GET); - - // This is a get only command - REQUIRE_THROWS(caller.call("user", {}, -1, PUT)); - REQUIRE_NOTHROW(caller.call("user", {}, -1, GET)); + // caller only has help. cmdApp takes care of put and get + REQUIRE_NOTHROW(caller.call("user", {}, -1, defs::HELP_ACTION)); } TEST_CASE("sleep", "[.cmdcall]") { diff --git a/slsDetectorSoftware/tests/test-CtbConfig.cpp b/slsDetectorSoftware/tests/test-CtbConfig.cpp index a6b83691c..bb69fecdc 100644 --- a/slsDetectorSoftware/tests/test-CtbConfig.cpp +++ b/slsDetectorSoftware/tests/test-CtbConfig.cpp @@ -10,8 +10,9 @@ namespace sls { TEST_CASE("Default construction") { - static_assert(sizeof(CtbConfig) == ((18 + 32 + 64 + 5 + 8) * 20), - "Size of CtbConfig does not match"); + static_assert(sizeof(CtbConfig) == + (2 * sizeof(int) + (18 + 32 + 64 + 5 + 8) * 20), + "Size of CtbConfig does not match "); CtbConfig c; auto dacnames = c.getDacNames(); diff --git a/slsDetectorSoftware/tests/test-Module.cpp b/slsDetectorSoftware/tests/test-Module.cpp index 5e9767c36..39d9ef568 100644 --- a/slsDetectorSoftware/tests/test-Module.cpp +++ b/slsDetectorSoftware/tests/test-Module.cpp @@ -9,6 +9,7 @@ namespace sls { using dt = slsDetectorDefs::detectorType; TEST_CASE("Construction with a defined detector type") { + freeSharedMemory(0, 0); // clean up to start test Module m(dt::EIGER); REQUIRE(m.getDetectorType() == dt::EIGER); freeSharedMemory(0, 0); // clean up diff --git a/slsDetectorSoftware/tests/test-SharedMemory.cpp b/slsDetectorSoftware/tests/test-SharedMemory.cpp index 5ba3c20a2..c81f9643d 100644 --- a/slsDetectorSoftware/tests/test-SharedMemory.cpp +++ b/slsDetectorSoftware/tests/test-SharedMemory.cpp @@ -1,29 +1,113 @@ // SPDX-License-Identifier: LGPL-3.0-or-other // Copyright (C) 2021 Contributors to the SLS Detector Package +#define DISABLE_STATIC_ASSERT // to be able to test obsolete shm without isValid #include "SharedMemory.h" #include "catch.hpp" #include "sls/string_utils.h" - -#include +#include namespace sls { struct Data { + int shmversion{SHM_IS_VALID_CHECK_VERSION}; + int x; + double y; + char mess[50]; + bool isValid{true}; +}; + +struct ObsoleteData { + int shmversion{SHM_IS_VALID_CHECK_VERSION - 10}; int x; double y; char mess[50]; }; +struct ObsoleteCtbData { + int x; + double y; + char mess[50]; +}; + +void freeShm(const int dindex, const int mIndex) { + SharedMemory shm(dindex, mIndex); + if (shm.exists()) { + shm.removeSharedMemory(); + } +} + constexpr int shm_id = 10; -TEST_CASE("Create SharedMemory read and write", "[detector]") { +//macOS does not expose shm in the filesystem +#ifndef __APPLE__ +const std::string file_path = + std::string("/dev/shm/slsDetectorPackage_detector_") + + std::to_string(shm_id); + + + +TEST_CASE("Free obsolete (without isValid)", "[detector][shm]") { + + // ensure its clean to start + freeShm(shm_id, -1); + + { + // create actual shm and free + SharedMemory shm(shm_id, -1); + shm.createSharedMemory(); + REQUIRE(std::filesystem::exists(file_path) == true); + REQUIRE(shm.memoryHasValidFlag() == true); + REQUIRE_NOTHROW(freeShm(shm_id, -1)); + REQUIRE(std::filesystem::exists(file_path) == false); + } + + { + // create obsolete and free + SharedMemory shm(shm_id, -1); + shm.createSharedMemory(); + REQUIRE(std::filesystem::exists(file_path) == true); + shm.unmapSharedMemory(); + } + + { + SharedMemory shm(shm_id, -1); + shm.openSharedMemory(false); + REQUIRE(shm.memoryHasValidFlag() == false); + REQUIRE_NOTHROW(freeShm(shm_id, -1)); + REQUIRE(std::filesystem::exists(file_path) == false); + } + + { + // create obsolete ctb (without shmversion) and free + SharedMemory shm(shm_id, -1); + shm.createSharedMemory(); + REQUIRE(std::filesystem::exists(file_path) == true); + shm.unmapSharedMemory(); + } + { + SharedMemory shm(shm_id, -1); + shm.openSharedMemory(false); + REQUIRE(shm.memoryHasValidFlag() == false); + REQUIRE_NOTHROW(freeShm(shm_id, -1)); + REQUIRE(std::filesystem::exists(file_path) == false); + } +} + +#endif + +TEST_CASE("Create SharedMemory read and write", "[detector][shm]") { SharedMemory shm(shm_id, -1); + if (shm.exists()) { + shm.removeSharedMemory(); + } shm.createSharedMemory(); - CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") + - std::to_string(shm_id)); + const char *env_p = std::getenv(SHM_ENV_NAME); + std::string env_name = env_p ? ("_" + std::string(env_p)) : ""; + CHECK(shm.getName() == std::string(SHM_DETECTOR_PREFIX) + + std::to_string(shm_id) + env_name); shm()->x = 3; shm()->y = 5.7; strcpy_safe(shm()->mess, "Some string"); @@ -32,39 +116,41 @@ TEST_CASE("Create SharedMemory read and write", "[detector]") { CHECK(shm()->y == 5.7); CHECK(std::string(shm()->mess) == "Some string"); - shm.unmapSharedMemory(); shm.removeSharedMemory(); CHECK(shm.exists() == false); } -TEST_CASE("Open existing SharedMemory and read", "[detector]") { - +TEST_CASE("Open existing SharedMemory and read", "[detector][shm]") { { - SharedMemory shm(shm_id, -1); + SharedMemory shm(shm_id, -1); + if (shm.exists()) { + shm.removeSharedMemory(); + } shm.createSharedMemory(); - *shm() = 5.3; + shm()->x = 3; + shm()->y = 5.9; } - SharedMemory shm2(shm_id, -1); + SharedMemory shm2(shm_id, -1); shm2.openSharedMemory(true); - CHECK(*shm2() == 5.3); + CHECK(shm2()->y == 5.9); shm2.removeSharedMemory(); } TEST_CASE("Creating a second shared memory with the same name throws", - "[detector]") { + "[detector][shm]") { - SharedMemory shm0(shm_id, -1); - SharedMemory shm1(shm_id, -1); + SharedMemory shm0(shm_id, -1); + SharedMemory shm1(shm_id, -1); shm0.createSharedMemory(); CHECK_THROWS(shm1.createSharedMemory()); shm0.removeSharedMemory(); } -TEST_CASE("Open two shared memories to the same place", "[detector]") { +TEST_CASE("Open two shared memories to the same place", "[detector][shm]") { // Create the first shared memory SharedMemory shm(shm_id, -1); @@ -89,11 +175,13 @@ TEST_CASE("Open two shared memories to the same place", "[detector]") { CHECK(shm2.exists() == false); } -TEST_CASE("Move SharedMemory", "[detector]") { +TEST_CASE("Move SharedMemory", "[detector][shm]") { + const char *env_p = std::getenv(SHM_ENV_NAME); + std::string env_name = env_p ? ("_" + std::string(env_p)) : ""; SharedMemory shm(shm_id, -1); - CHECK(shm.getName() == std::string("/slsDetectorPackage_detector_") + - std::to_string(shm_id)); + CHECK(shm.getName() == std::string(SHM_DETECTOR_PREFIX) + + std::to_string(shm_id) + env_name); shm.createSharedMemory(); shm()->x = 9; @@ -103,27 +191,30 @@ TEST_CASE("Move SharedMemory", "[detector]") { CHECK(shm2()->x == 9); REQUIRE_THROWS( shm()); // trying to access should throw instead of returning a nullptr - CHECK(shm2.getName() == std::string("/slsDetectorPackage_detector_") + - std::to_string(shm_id)); + CHECK(shm2.getName() == std::string(SHM_DETECTOR_PREFIX) + + std::to_string(shm_id) + env_name); shm2.removeSharedMemory(); } -TEST_CASE("Create several shared memories", "[detector]") { +TEST_CASE("Create several shared memories", "[detector][shm]") { + const char *env_p = std::getenv(SHM_ENV_NAME); + std::string env_name = env_p ? ("_" + std::string(env_p)) : ""; + constexpr int N = 5; - std::vector> v; + std::vector> v; v.reserve(N); for (int i = 0; i != N; ++i) { v.emplace_back(shm_id + i, -1); CHECK(v[i].exists() == false); v[i].createSharedMemory(); - *v[i]() = i; - CHECK(*v[i]() == i); + v[i]()->x = i; + CHECK(v[i]()->x == i); } for (int i = 0; i != N; ++i) { - CHECK(*v[i]() == i); - CHECK(v[i].getName() == std::string("/slsDetectorPackage_detector_") + - std::to_string(i + shm_id)); + CHECK(v[i]()->x == i); + CHECK(v[i].getName() == std::string(SHM_DETECTOR_PREFIX) + + std::to_string(i + shm_id) + env_name); } for (int i = 0; i != N; ++i) { @@ -133,8 +224,12 @@ TEST_CASE("Create several shared memories", "[detector]") { } TEST_CASE("Create create a shared memory with a tag") { - SharedMemory shm(0, -1, "ctbdacs"); - REQUIRE(shm.getName() == "/slsDetectorPackage_detector_0_ctbdacs"); + const char *env_p = std::getenv(SHM_ENV_NAME); + std::string env_name = env_p ? ("_" + std::string(env_p)) : ""; + + SharedMemory shm(0, -1, "ctbdacs"); + REQUIRE(shm.getName() == + std::string(SHM_DETECTOR_PREFIX) + "0" + env_name + "_ctbdacs"); } TEST_CASE("Create create a shared memory with a tag when SLSDETNAME is set") { @@ -147,8 +242,8 @@ TEST_CASE("Create create a shared memory with a tag when SLSDETNAME is set") { unsetenv(SHM_ENV_NAME); setenv(SHM_ENV_NAME, "myprefix", 1); - SharedMemory shm(0, -1, "ctbdacs"); - REQUIRE(shm.getName() == "/slsDetectorPackage_detector_0_myprefix_ctbdacs"); + SharedMemory shm(0, -1, "ctbdacs"); + REQUIRE(shm.getName() == std::string(SHM_DETECTOR_PREFIX) + "0_myprefix_ctbdacs"); // Clean up after us if (old_slsdetname.empty()) @@ -157,15 +252,14 @@ TEST_CASE("Create create a shared memory with a tag when SLSDETNAME is set") { setenv(SHM_ENV_NAME, old_slsdetname.c_str(), 1); } -TEST_CASE("map int64 to int32 throws") { - SharedMemory shm(shm_id, -1); +TEST_CASE("Access to already freed shm object", "[detector][shm]") { + SharedMemory shm(shm_id, -1); shm.createSharedMemory(); - *shm() = 7; + shm()->x = 10; - SharedMemory shm2(shm_id, -1); - REQUIRE_THROWS(shm2.openSharedMemory(true)); - - shm.removeSharedMemory(); + freeShm(shm_id, -1); + CHECK(shm.exists() == false); + REQUIRE_THROWS(shm()); // trying to access should throw } } // namespace sls diff --git a/slsReceiverSoftware/CMakeLists.txt b/slsReceiverSoftware/CMakeLists.txt index 8ff2b1e6b..e0bbf0810 100755 --- a/slsReceiverSoftware/CMakeLists.txt +++ b/slsReceiverSoftware/CMakeLists.txt @@ -13,6 +13,7 @@ set(SOURCES src/Arping.cpp src/MasterAttributes.cpp src/MasterFileUtility.cpp + src/CommandLineOptions.cpp ) set(PUBLICHEADERS @@ -51,6 +52,10 @@ target_link_libraries(slsReceiverObject slsProjectWarnings #don't propagate warnigns ) +target_compile_definitions(slsReceiverObject + PRIVATE $<$:SLS_USE_TESTS> +) + # HDF5 if (SLS_USE_HDF5) if (HDF5_FOUND) @@ -86,6 +91,7 @@ set_target_properties(slsReceiverStatic PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin PUBLIC_HEADER "${PUBLICHEADERS}" ) + list(APPEND RECEIVER_LIBRARY_TARGETS slsReceiverStatic) @@ -138,13 +144,42 @@ if (SLS_USE_RECEIVER_BINARIES) slsProjectWarnings ) - install(TARGETS slsReceiver slsMultiReceiver + add_executable(slsFrameSynchronizer + src/FrameSynchronizerApp.cpp + ) + + set_target_properties(slsFrameSynchronizer PROPERTIES + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin + ) + if((CMAKE_BUILD_TYPE STREQUAL "Release") AND SLS_LTO_AVAILABLE) + set_property(TARGET slsFrameSynchronizer PROPERTY INTERPROCEDURAL_OPTIMIZATION True) + endif() + + target_link_libraries(slsFrameSynchronizer + PUBLIC + slsReceiverStatic + pthread + rt + PRIVATE + slsProjectWarnings + + ) + + #Treat both vendored and system zmq as interface for receiver binaries + if(SLS_USE_SYSTEM_ZMQ) + message(STATUS "slsFrameSynchronizer ZEROMQ_TARGET=${ZEROMQ_TARGET}") + target_link_libraries(slsFrameSynchronizer PRIVATE "${ZEROMQ_TARGET}") + else() + target_link_libraries(slsFrameSynchronizer PRIVATE "$") + endif() + + install(TARGETS slsReceiver slsMultiReceiver slsFrameSynchronizer EXPORT "${TARGETS_EXPORT_NAME}" RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/sls -) + ) endif(SLS_USE_RECEIVER_BINARIES) diff --git a/slsReceiverSoftware/include/sls/Receiver.h b/slsReceiverSoftware/include/sls/Receiver.h index f3389c80e..a9d9060db 100644 --- a/slsReceiverSoftware/include/sls/Receiver.h +++ b/slsReceiverSoftware/include/sls/Receiver.h @@ -13,22 +13,12 @@ class Receiver : private virtual slsDetectorDefs { public: /** * Constructor - * Starts up a Receiver server. Reads configuration file, options, and - * assembles a Receiver using TCP and UDP detector interfaces + * Starts up a Receiver server. + * Assembles a Receiver using TCP and UDP detector interfaces * throws an exception in case of failure - * @param argc from command line - * @param argv from command line + * @param port TCP/IP port number */ - Receiver(int argc, char *argv[]); - - /** - * Constructor - * Starts up a Receiver server. Reads configuration file, options, and - * assembles a Receiver using TCP and UDP detector interfaces - * throws an exception in case of failure - * @param tcpip_port_no TCP/IP port number - */ - Receiver(uint16_t tcpip_port_no = 1954); + explicit Receiver(uint16_t port = 1954); ~Receiver(); @@ -45,9 +35,8 @@ class Receiver : private virtual slsDetectorDefs { * Call back arguments are: * - startCallbackHeader metadata */ - void registerCallBackStartAcquisition(int (*func)(const startCallbackHeader, - void *), - void *arg); + void registerCallBackStartAcquisition( + void (*func)(const startCallbackHeader, void *), void *arg); /** * Call back for acquisition finished diff --git a/slsReceiverSoftware/src/ClientInterface.cpp b/slsReceiverSoftware/src/ClientInterface.cpp index ce8702151..7acf59e2e 100644 --- a/slsReceiverSoftware/src/ClientInterface.cpp +++ b/slsReceiverSoftware/src/ClientInterface.cpp @@ -33,6 +33,8 @@ using Interface = ServerInterface; #define gettid() syscall(SYS_gettid) #endif +std::mutex ClientInterface::callbackMutex; + ClientInterface::~ClientInterface() { killTcpThread = true; LOG(logINFO) << "Shutting down TCP Socket on port " << portNumber; @@ -42,7 +44,7 @@ ClientInterface::~ClientInterface() { } ClientInterface::ClientInterface(uint16_t portNumber) - : detType(GOTTHARD), portNumber(portNumber), server(portNumber) { + : detType(GENERIC), portNumber(portNumber), server(portNumber) { validatePortNumber(portNumber); functionTable(); parentThreadId = gettid(); @@ -54,13 +56,15 @@ std::string ClientInterface::getReceiverVersion() { return APIRECEIVER; } /***callback functions***/ void ClientInterface::registerCallBackStartAcquisition( - int (*func)(const startCallbackHeader, void *), void *arg) { + void (*func)(const startCallbackHeader, void *), void *arg) { + std::lock_guard lock(callbackMutex); startAcquisitionCallBack = func; pStartAcquisition = arg; } void ClientInterface::registerCallBackAcquisitionFinished( void (*func)(const endCallbackHeader, void *), void *arg) { + std::lock_guard lock(callbackMutex); acquisitionFinishedCallBack = func; pAcquisitionFinished = arg; } @@ -69,6 +73,7 @@ void ClientInterface::registerCallBackRawDataReady( void (*func)(sls_receiver_header &, dataCallbackHeader, char *, size_t &, void *), void *arg) { + std::lock_guard lock(callbackMutex); rawDataReadyCallBack = func; pRawDataReady = arg; } @@ -115,7 +120,6 @@ int ClientInterface::functionTable(){ flist[F_GET_LAST_RECEIVER_CLIENT_IP] = &ClientInterface::get_last_client_ip; flist[F_GET_RECEIVER_VERSION] = &ClientInterface::get_version; flist[F_SETUP_RECEIVER] = &ClientInterface::setup_receiver; - flist[F_RECEIVER_SET_DETECTOR_ROI] = &ClientInterface::set_detector_roi; flist[F_RECEIVER_SET_NUM_FRAMES] = &ClientInterface::set_num_frames; flist[F_SET_RECEIVER_NUM_TRIGGERS] = &ClientInterface::set_num_triggers; flist[F_SET_RECEIVER_NUM_BURSTS] = &ClientInterface::set_num_bursts; @@ -214,7 +218,10 @@ int ClientInterface::functionTable(){ flist[F_RECEIVER_SET_TRANSCEIVER_MASK] = &ClientInterface::set_transceiver_mask; flist[F_RECEIVER_SET_ROW] = &ClientInterface::set_row; flist[F_RECEIVER_SET_COLUMN] = &ClientInterface::set_column; - + flist[F_GET_RECEIVER_DBIT_REORDER] = &ClientInterface::get_dbit_reorder; + flist[F_SET_RECEIVER_DBIT_REORDER] = &ClientInterface::set_dbit_reorder; + flist[F_RECEIVER_GET_ROI_METADATA] = &ClientInterface::get_roi_metadata; + flist[F_SET_RECEIVER_READOUT_SPEED] = &ClientInterface::set_readout_speed; for (int i = NUM_DET_FUNCTIONS + 1; i < NUM_REC_FUNCTIONS ; i++) { LOG(logDEBUG1) << "function fnum: " << i << " (" << @@ -404,13 +411,12 @@ int ClientInterface::setup_receiver(Interface &socket) { impl()->setReadoutMode(arg.roMode); impl()->setTenGigaADCEnableMask(arg.adc10gMask); impl()->setTransceiverEnableMask(arg.transceiverMask); + } else { + impl()->setReadoutSpeed(arg.readoutSpeed); } if (detType == CHIPTESTBOARD) { impl()->setADCEnableMask(arg.adcMask); } - if (detType == GOTTHARD) { - impl()->setDetectorROI(arg.roi); - } if (detType == MYTHEN3) { impl()->setCounterMask(arg.countermask); impl()->setAcquisitionTime1( @@ -438,7 +444,6 @@ int ClientInterface::setup_receiver(Interface &socket) { void ClientInterface::setDetectorType(detectorType arg) { switch (arg) { - case GOTTHARD: case EIGER: case CHIPTESTBOARD: case XILINX_CHIPTESTBOARD: @@ -461,35 +466,22 @@ void ClientInterface::setDetectorType(detectorType arg) { std::string(e.what()) + ']'); } // callbacks after (in setdetectortype, the object is reinitialized) - if (startAcquisitionCallBack != nullptr) - impl()->registerCallBackStartAcquisition(startAcquisitionCallBack, - pStartAcquisition); - if (acquisitionFinishedCallBack != nullptr) - impl()->registerCallBackAcquisitionFinished(acquisitionFinishedCallBack, - pAcquisitionFinished); - if (rawDataReadyCallBack != nullptr) - impl()->registerCallBackRawDataReady(rawDataReadyCallBack, - pRawDataReady); + { + std::lock_guard lock(callbackMutex); + if (startAcquisitionCallBack != nullptr) + impl()->registerCallBackStartAcquisition(startAcquisitionCallBack, + pStartAcquisition); + if (acquisitionFinishedCallBack != nullptr) + impl()->registerCallBackAcquisitionFinished( + acquisitionFinishedCallBack, pAcquisitionFinished); + if (rawDataReadyCallBack != nullptr) + impl()->registerCallBackRawDataReady(rawDataReadyCallBack, + pRawDataReady); + } impl()->setThreadIds(parentThreadId, tcpThreadId); } -int ClientInterface::set_detector_roi(Interface &socket) { - auto arg = socket.Receive(); - LOG(logDEBUG1) << "Set Detector ROI: " << ToString(arg); - - if (detType != GOTTHARD) - functionNotImplemented(); - - verifyIdle(socket); - try { - impl()->setDetectorROI(arg); - } catch (const std::exception &e) { - throw RuntimeError("Could not set ROI [" + std::string(e.what()) + ']'); - } - return socket.Send(OK); -} - int ClientInterface::set_num_frames(Interface &socket) { auto value = socket.Receive(); if (value <= 0) { @@ -562,6 +554,7 @@ int ClientInterface::set_num_analog_samples(Interface &socket) { if (detType != CHIPTESTBOARD && detType != XILINX_CHIPTESTBOARD) { functionNotImplemented(); } + verifyIdle(socket); try { impl()->setNumberofAnalogSamples(value); } catch (const std::exception &e) { @@ -578,6 +571,7 @@ int ClientInterface::set_num_digital_samples(Interface &socket) { if (detType != CHIPTESTBOARD && detType != XILINX_CHIPTESTBOARD) { functionNotImplemented(); } + verifyIdle(socket); try { impl()->setNumberofDigitalSamples(value); } catch (const std::exception &e) { @@ -1704,19 +1698,37 @@ int ClientInterface::set_arping(Interface &socket) { } int ClientInterface::get_receiver_roi(Interface &socket) { - auto retval = impl()->getReceiverROI(); - LOG(logDEBUG1) << "Receiver roi retval:" << ToString(retval); - return socket.sendResult(retval); + auto retvals = impl()->getPortROIs(); + LOG(logDEBUG1) << "Receiver roi retval:" << ToString(retvals); + auto size = static_cast(retvals.size()); + if (size != impl()->getNumberofUDPInterfaces()) { + throw RuntimeError("Invalid number of ROIs received: " + + std::to_string(size) + ". Expected: " + + std::to_string(impl()->getNumberofUDPInterfaces())); + } + socket.Send(size); + if (size > 0) + socket.Send(retvals); + return OK; } int ClientInterface::set_receiver_roi(Interface &socket) { - auto arg = socket.Receive(); + auto roiSize = socket.Receive(); + std::vector args(roiSize); + if (roiSize > 0) { + socket.Receive(args); + } + if (roiSize != impl()->getNumberofUDPInterfaces()) { + throw RuntimeError("Invalid number of ROIs received: " + + std::to_string(roiSize) + ". Expected: " + + std::to_string(impl()->getNumberofUDPInterfaces())); + } if (detType == CHIPTESTBOARD || detType == XILINX_CHIPTESTBOARD) functionNotImplemented(); - LOG(logDEBUG1) << "Set Receiver ROI: " << ToString(arg); + LOG(logDEBUG1) << "Set Receiver ROI: " << ToString(args); verifyIdle(socket); try { - impl()->setReceiverROI(arg); + impl()->setPortROIs(args); } catch (const std::exception &e) { throw RuntimeError("Could not set Receiver ROI [" + std::string(e.what()) + ']'); @@ -1726,18 +1738,26 @@ int ClientInterface::set_receiver_roi(Interface &socket) { } int ClientInterface::set_receiver_roi_metadata(Interface &socket) { - auto arg = socket.Receive(); + auto roiSize = socket.Receive(); + LOG(logDEBUG1) << "Number of ReceiverROI metadata: " << roiSize; + if (roiSize < 1) { + throw RuntimeError("Invalid number of ROIs received: " + + std::to_string(roiSize) + ". Min: 1."); + } + std::vector rois(roiSize); + if (roiSize > 0) { + socket.Receive(rois); + } if (detType == CHIPTESTBOARD || detType == XILINX_CHIPTESTBOARD) functionNotImplemented(); - LOG(logDEBUG1) << "Set Receiver ROI Metadata: " << ToString(arg); verifyIdle(socket); + LOG(logINFO) << "Setting ReceiverROI metadata[" << roiSize << ']'; try { - impl()->setReceiverROIMetadata(arg); + impl()->setMultiROIMetadata(rois); } catch (const std::exception &e) { throw RuntimeError("Could not set ReceiverROI metadata [" + std::string(e.what()) + ']'); } - return socket.Send(OK); } @@ -1747,6 +1767,7 @@ int ClientInterface::set_num_transceiver_samples(Interface &socket) { if (detType != CHIPTESTBOARD && detType != XILINX_CHIPTESTBOARD) { functionNotImplemented(); } + verifyIdle(socket); try { impl()->setNumberofTransceiverSamples(value); } catch (const std::exception &e) { @@ -1802,4 +1823,66 @@ int ClientInterface::set_column(Interface &socket) { return socket.Send(OK); } +int ClientInterface::get_dbit_reorder(Interface &socket) { + if (detType != CHIPTESTBOARD && detType != XILINX_CHIPTESTBOARD) + functionNotImplemented(); + int retval = impl()->getDbitReorder(); + LOG(logDEBUG1) << "Dbit reorder retval: " << retval; + return socket.sendResult(retval); +} + +int ClientInterface::set_dbit_reorder(Interface &socket) { + auto arg = socket.Receive(); + if (detType != CHIPTESTBOARD && detType != XILINX_CHIPTESTBOARD) + functionNotImplemented(); + if (arg < 0) { + throw RuntimeError("Invalid dbit reorder: " + std::to_string(arg)); + } + verifyIdle(socket); + LOG(logDEBUG1) << "Setting Dbit reorder: " << arg; + impl()->setDbitReorder(arg); + return socket.Send(OK); +} + +int ClientInterface::get_roi_metadata(Interface &socket) { + if (detType == CHIPTESTBOARD || detType == XILINX_CHIPTESTBOARD) + functionNotImplemented(); + auto retvals = impl()->getMultiROIMetadata(); + LOG(logDEBUG1) << "Receiver ROI metadata retval:" << ToString(retvals); + auto size = static_cast(retvals.size()); + socket.Send(size); + if (size > 0) + socket.Send(retvals); + return OK; +} + +int ClientInterface::set_readout_speed(Interface &socket) { + auto value = socket.Receive(); + verifyIdle(socket); + switch (detType) { + case GOTTHARD2: + if (value != G2_108MHZ && value != G2_144MHZ) + throw RuntimeError("Invalid readout speed for GOTTHARD2: " + + std::to_string(value)); + break; + + case EIGER: + case JUNGFRAU: + case MYTHEN3: + case MOENCH: + if (value < 0 || value > QUARTER_SPEED) { + throw RuntimeError("Invalid readout speed: " + + std::to_string(value)); + } + break; + + default: + functionNotImplemented(); + } + + LOG(logDEBUG1) << "Setting readout speed to " << value; + impl()->setReadoutSpeed(static_cast(value)); + return socket.Send(OK); +} + } // namespace sls diff --git a/slsReceiverSoftware/src/ClientInterface.h b/slsReceiverSoftware/src/ClientInterface.h index 8bde90c64..f2dbaa764 100644 --- a/slsReceiverSoftware/src/ClientInterface.h +++ b/slsReceiverSoftware/src/ClientInterface.h @@ -34,9 +34,8 @@ class ClientInterface : private virtual slsDetectorDefs { //***callback functions*** /** params: file path, file name, file index, image size */ - void registerCallBackStartAcquisition(int (*func)(const startCallbackHeader, - void *), - void *arg); + void registerCallBackStartAcquisition( + void (*func)(const startCallbackHeader, void *), void *arg); /** params: total frames caught */ void registerCallBackAcquisitionFinished( @@ -64,7 +63,6 @@ class ClientInterface : private virtual slsDetectorDefs { int get_version(ServerInterface &socket); int setup_receiver(ServerInterface &socket); void setDetectorType(detectorType arg); - int set_detector_roi(ServerInterface &socket); int set_num_frames(ServerInterface &socket); int set_num_triggers(ServerInterface &socket); int set_num_bursts(ServerInterface &socket); @@ -166,6 +164,10 @@ class ClientInterface : private virtual slsDetectorDefs { int set_transceiver_mask(ServerInterface &socket); int set_row(ServerInterface &socket); int set_column(ServerInterface &socket); + int get_dbit_reorder(ServerInterface &socket); + int set_dbit_reorder(ServerInterface &socket); + int get_roi_metadata(ServerInterface &socket); + int set_readout_speed(ServerInterface &socket); Implementation *impl() { if (receiver != nullptr) { @@ -180,8 +182,8 @@ class ClientInterface : private virtual slsDetectorDefs { //***callback parameters*** - int (*startAcquisitionCallBack)(const startCallbackHeader, - void *) = nullptr; + void (*startAcquisitionCallBack)(const startCallbackHeader, + void *) = nullptr; void *pStartAcquisition{nullptr}; void (*acquisitionFinishedCallBack)(const endCallbackHeader, void *) = nullptr; @@ -194,6 +196,8 @@ class ClientInterface : private virtual slsDetectorDefs { pid_t tcpThreadId{0}; std::vector udpips = std::vector(MAX_NUMBER_OF_LISTENING_THREADS); + // necessary if Receiver objects using threads with callbacks + static std::mutex callbackMutex; }; } // namespace sls diff --git a/slsReceiverSoftware/src/CommandLineOptions.cpp b/slsReceiverSoftware/src/CommandLineOptions.cpp new file mode 100644 index 000000000..dbc0c72ae --- /dev/null +++ b/slsReceiverSoftware/src/CommandLineOptions.cpp @@ -0,0 +1,352 @@ +// SPDX-License-Identifier: LGPL-3.0-or-other +// Copyright (C) 2021 Contributors to the SLS Detector Package + +#include "CommandLineOptions.h" +#include "sls/ToString.h" +#include "sls/logger.h" +#include "sls/sls_detector_defs.h" +#include "sls/versionAPI.h" + +#include +#include + +CommandLineOptions::CommandLineOptions(AppType app) + : appType_(app), optString_(buildOptString()), + longOptions_(buildOptionList()) {} + +/** for testing */ +ParsedOptions CommandLineOptions::parse(const std::vector &args) { + std::vector argv; + argv.reserve(args.size()); + for (const auto &arg : args) { + argv.push_back(const_cast(arg.c_str())); + } + int argc = static_cast(argv.size()); + return parse(argc, argv.data()); +} + +ParsedOptions CommandLineOptions::parse(int argc, char *argv[]) { + CommonOptions base; + MultiReceiverOptions multi; + FrameSyncOptions frame; + base.port = DEFAULT_TCP_RX_PORTNO; + + optind = 0; // reset getopt + int opt, option_index = 0; + + bool help_or_version_requested = false; + + while ((opt = getopt_long(argc, argv, optString_.c_str(), + longOptions_.data(), &option_index)) != -1) { + switch (opt) { + case 'v': + case 'h': + handleCommonOption(opt, optarg, base); + help_or_version_requested = true; + break; + case 'p': + case 'u': + handleCommonOption(opt, optarg, base); + break; + case 'c': + case 'n': + case 't': + handleAppSpecificOption(opt, optarg, base, multi, frame); + break; + default: + throw sls::RuntimeError("Invalid arguments." + getHelpMessage()); + } + } + + // remaining arguments + if (!help_or_version_requested && optind < argc) { + + // deprecated and current options => invalid + if (base.port != DEFAULT_TCP_RX_PORTNO || multi.numReceivers != 1 || + frame.numReceivers != 1 || multi.callbackEnabled != false || + frame.printHeaders != false) { + LOG(sls::logWARNING) << "Cannot use both deprecated options and " + "the valid options simultaneously. Please " + "move away from the deprecated options.\n"; + } + + // unsupported deprecated arguments + if (appType_ == AppType::SingleReceiver) { + throw sls::RuntimeError("Invalid arguments." + getHelpMessage()); + } + + // parse deprecated arguments + std::vector args(argv, argv + argc); + auto [p, n, o] = ParseDeprecated(args); + // set options + base.port = p; + if (appType_ == AppType::MultiReceiver) { + multi.numReceivers = n; + multi.callbackEnabled = o; + } else if (appType_ == AppType::FrameSynchronizer) { + frame.numReceivers = n; + frame.printHeaders = o; + } + } + + // Logging + if (!help_or_version_requested) { + LOG(sls::logINFO) << "TCP Port: " << base.port; + if (appType_ == AppType::MultiReceiver) { + LOG(sls::logINFO) << "Number of receivers: " << multi.numReceivers; + LOG(sls::logINFO) << "Callback enabled: " << multi.callbackEnabled; + } else if (appType_ == AppType::FrameSynchronizer) { + LOG(sls::logINFO) << "Number of receivers: " << frame.numReceivers; + LOG(sls::logINFO) << "Print headers: " << frame.printHeaders; + } + } + + switch (appType_) { + case AppType::SingleReceiver: + return base; + case AppType::MultiReceiver: + static_cast(multi) = base; + return multi; + case AppType::FrameSynchronizer: + static_cast(frame) = base; + return frame; + default: + throw sls::RuntimeError("Unknown AppType in CommandLineOptions::parse"); + } +} + +std::vector

("Eiger") == dt::EIGER); - REQUIRE(StringTo
("Gotthard") == dt::GOTTHARD); REQUIRE(StringTo
("Jungfrau") == dt::JUNGFRAU); REQUIRE(StringTo
("ChipTestBoard") == dt::CHIPTESTBOARD); REQUIRE(StringTo
("Moench") == dt::MOENCH); diff --git a/slsSupportLib/tests/test-UdpRxSocket.cpp b/slsSupportLib/tests/test-UdpRxSocket.cpp index 2fc152b5d..645fed8c1 100644 --- a/slsSupportLib/tests/test-UdpRxSocket.cpp +++ b/slsSupportLib/tests/test-UdpRxSocket.cpp @@ -72,6 +72,10 @@ TEST_CASE("Receive data from a vector") { CHECK(data_to_send == data_received); } +// TODO! Test blocking on apple, investigate when implementing +// receiver support in macOS +#ifndef __APPLE__ + TEST_CASE("Shutdown socket without hanging when waiting for data") { constexpr int port = 50001; constexpr ssize_t packet_size = 8000; @@ -81,13 +85,14 @@ TEST_CASE("Shutdown socket without hanging when waiting for data") { // Start a thread and wait for package // if the socket is left open we would block std::future ret = - std::async(&UdpRxSocket::ReceivePacket, &s, (char *)&buff); + std::async(std::launch::async, &UdpRxSocket::ReceivePacket, &s, (char *)&buff); s.Shutdown(); auto r = ret.get(); CHECK(r == false); // since we didn't get the packet } +#endif TEST_CASE("Too small packet") { constexpr int port = 50001; diff --git a/slsSupportLib/tests/test-Version.cpp b/slsSupportLib/tests/test-Version.cpp new file mode 100644 index 000000000..9c1f1d3f8 --- /dev/null +++ b/slsSupportLib/tests/test-Version.cpp @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: LGPL-3.0-or-other +// Copyright (C) 2021 Contributors to the SLS Detector Package +#include "catch.hpp" +#include "sls/Version.h" + +namespace sls { + +TEST_CASE("check if version is semantic", "[.version]") { + + auto [version_string, has_semantic_version] = + GENERATE(std::make_tuple("developer 0x250512", false), + std::make_tuple("0.0.0 0x250512", false)); + + Version version(version_string); + + CHECK(version.hasSemanticVersioning() == has_semantic_version); +} + +} // namespace sls diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f222cc599..5537cc230 100755 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -25,7 +25,6 @@ target_link_libraries(tests slsProjectOptions slsSupportStatic pthread - rt PRIVATE slsProjectWarnings ) @@ -60,3 +59,7 @@ include(Catch) catch_discover_tests(tests) configure_file(scripts/test_simulators.py ${CMAKE_BINARY_DIR}/bin/test_simulators.py COPYONLY) +configure_file(scripts/test_frame_synchronizer.py ${CMAKE_BINARY_DIR}/bin/test_frame_synchronizer.py COPYONLY) +configure_file(scripts/utils_for_test.py ${CMAKE_BINARY_DIR}/bin/utils_for_test.py COPYONLY) +configure_file(scripts/test_roi.py ${CMAKE_BINARY_DIR}/bin/test_roi.py COPYONLY) +configure_file(scripts/test_free.py ${CMAKE_BINARY_DIR}/bin/test_free.py COPYONLY) diff --git a/tests/scripts/test_frame_synchronizer.py b/tests/scripts/test_frame_synchronizer.py new file mode 100644 index 000000000..ba9bd7e67 --- /dev/null +++ b/tests/scripts/test_frame_synchronizer.py @@ -0,0 +1,143 @@ +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2021 Contributors to the SLS Detector Package +''' +This file is used to start up simulators, frame synchronizer, pull sockets, acquire, test and kill them finally. +''' + +import sys, time +import traceback, json + +from slsdet import Detector +from slsdet.defines import DEFAULT_TCP_RX_PORTNO + +from utils_for_test import ( + Log, + LogLevel, + RuntimeException, + checkIfProcessRunning, + killProcess, + cleanup, + cleanSharedmemory, + startProcessInBackground, + startProcessInBackgroundWithLogFile, + checkLogForErrors, + startDetectorVirtualServer, + loadConfig, + loadBasicSettings, + ParseArguments +) + +LOG_PREFIX_FNAME = '/tmp/slsFrameSynchronizer_test' +MAIN_LOG_FNAME = LOG_PREFIX_FNAME + '_log.txt' +PULL_SOCKET_PREFIX_FNAME = LOG_PREFIX_FNAME + '_pull_socket_' + + +def startFrameSynchronizerPullSocket(name, fp): + fname = PULL_SOCKET_PREFIX_FNAME + name + '.txt' + cmd = ['python', '-u', 'frameSynchronizerPullSocket.py'] + startProcessInBackgroundWithLogFile(cmd, fp, fname) + time.sleep(1) + checkLogForErrors(fp, fname) + + + +def startFrameSynchronizer(num_mods, fp): + cmd = ['slsFrameSynchronizer', str(DEFAULT_TCP_RX_PORTNO), str(num_mods)] + # in 10.0.0 + #cmd = ['slsFrameSynchronizer', '-p', str(DEFAULT_TCP_RX_PORTNO), '-n', str(num_mods)] + startProcessInBackground(cmd, fp) + time.sleep(1) + + +def acquire(fp, det): + Log(LogLevel.INFO, 'Acquiring') + Log(LogLevel.INFO, 'Acquiring', fp) + det.acquire() + + +def testFramesCaught(name, det, num_frames): + fnum = det.rx_framescaught[0] + if fnum != num_frames: + raise RuntimeException(f"{name} caught only {fnum}. Expected {num_frames}") + + Log(LogLevel.INFOGREEN, f'Frames caught test passed for {name}') + Log(LogLevel.INFOGREEN, f'Frames caught test passed for {name}', fp) + + +def testZmqHeadetTypeCount(name, det, num_mods, num_frames, fp): + + Log(LogLevel.INFO, f"Testing Zmq Header type count for {name}") + Log(LogLevel.INFO, f"Testing Zmq Header type count for {name}", fp) + htype_counts = { + "header": 0, + "series_end": 0, + "module": 0 + } + + try: + # get a count of each htype from file + pull_socket_fname = PULL_SOCKET_PREFIX_FNAME + name + '.txt' + with open(pull_socket_fname, 'r') as log_fp: + for line in log_fp: + line = line.strip() + if not line or not line.startswith('{'): + continue + try: + data = json.loads(line) + htype = data.get("htype") + if htype in htype_counts: + htype_counts[htype] += 1 + except json.JSONDecodeError: + continue + + # test if file contents matches expected counts + num_ports_per_module = 1 if name == "gotthard2" else det.numinterfaces + total_num_frame_parts = num_ports_per_module * num_mods * num_frames + for htype, expected_count in [("header", num_mods), ("series_end", num_mods), ("module", total_num_frame_parts)]: + if htype_counts[htype] != expected_count: + msg = f"Expected {expected_count} '{htype}' entries, found {htype_counts[htype]}" + raise RuntimeException(msg) + except Exception as e: + raise RuntimeException(f'Failed to get zmq header count type. Error:{str(e)}') from e + + Log(LogLevel.INFOGREEN, f"Zmq Header type count test passed for {name}") + Log(LogLevel.INFOGREEN, f"Zmq Header type count test passed for {name}", fp) + + +def startTestsForAll(args, fp): + for server in args.servers: + try: + Log(LogLevel.INFOBLUE, f'Synchronizer Tests for {server}') + Log(LogLevel.INFOBLUE, f'Synchronizer Tests for {server}', fp) + cleanup(fp) + startDetectorVirtualServer(server, args.num_mods, fp) + startFrameSynchronizerPullSocket(server, fp) + startFrameSynchronizer(args.num_mods, fp) + d = loadConfig(name=server, rx_hostname=args.rx_hostname, settingsdir=args.settingspath, fp=fp, num_mods=args.num_mods, num_frames=args.num_frames) + loadBasicSettings(name=server, d=d, fp=fp) + acquire(fp, d) + testFramesCaught(server, d, args.num_frames) + testZmqHeadetTypeCount(server, d, args.num_mods, args.num_frames, fp) + Log(LogLevel.INFO, '\n') + except Exception as e: + raise RuntimeException(f'Synchronizer Tests failed') from e + + Log(LogLevel.INFOGREEN, 'Passed all synchronizer tests for all detectors \n' + str(args.servers)) + + +if __name__ == '__main__': + args = ParseArguments(description='Automated tests to test frame synchronizer', default_num_mods=2) + + Log(LogLevel.INFOBLUE, '\nLog File: ' + MAIN_LOG_FNAME + '\n') + + with open(MAIN_LOG_FNAME, 'w') as fp: + try: + startTestsForAll(args, fp) + cleanup(fp) + except Exception as e: + with open(MAIN_LOG_FNAME, 'a') as fp_error: + traceback.print_exc(file=fp_error) + cleanup(fp) + Log(LogLevel.ERROR, f'Tests Failed.') + + diff --git a/tests/scripts/test_free.py b/tests/scripts/test_free.py new file mode 100644 index 000000000..a464871c6 --- /dev/null +++ b/tests/scripts/test_free.py @@ -0,0 +1,164 @@ +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2021 Contributors to the SLS Detector Package +''' +This file is used to start up simulators and test for freeing shm and accessing it from python. +Run this using: pytest -s test_free.py +''' + +import pytest, sys + +from slsdet import Detector, Ctb, freeSharedMemory +from utils_for_test import ( + Log, + LogLevel, + cleanup, + startDetectorVirtualServer, + connectToVirtualServers, + SERVER_START_PORTNO +) + +''' +scope = module =>Once per test file/module +to share expensive setup like startDetectorVirtualServer +''' +@pytest.fixture(scope="module") +def det_config(): + return { + "name": "ctb", + "num_mods": 1 + } + +@pytest.fixture(scope="module", autouse=True) +def setup_simulator(det_config): + """Fixture to start the detector server once and clean up at the end.""" + fp = sys.stdout + + cleanup(fp) + startDetectorVirtualServer(det_config["name"], det_config["num_mods"], fp) + + Log(LogLevel.INFOBLUE, f'Waiting for server to start up and connect') + connectToVirtualServers(det_config["name"], det_config["num_mods"]) + Log(LogLevel.INFOBLUE, f'Freeing shm before tests') + freeSharedMemory() + + yield # tests run here + + cleanup(fp) + + + +def test_exptime_after_free_should_raise(setup_simulator): + Log(LogLevel.INFOBLUE, f'\nRunning test_exptime_after_free_should_raise') + + + d = Ctb() # creates multi shm (assuming no shm exists) + d.hostname = f"localhost:{SERVER_START_PORTNO}" # hostname command creates mod shm, d maps to it + + d.free() # frees the shm, d should not map to it anymore + + # accessing invalid shm should throw + with pytest.raises(Exception) as exc_info: + _ = d.exptime + + Log(LogLevel.INFOGREEN, f"✅ Test passed, exception was: {exc_info.value}") + assert str(exc_info.value) == "Shared memory is invalid or freed. Close resources before access." + + + + + +def free_and_create_shm(): + k = Ctb() # opens existing shm if it exists + k.hostname = f"localhost:{SERVER_START_PORTNO}" # free and recreate shm, maps to local shm struct + + +def test_exptime_after_not_passing_var_should_raise(setup_simulator): + Log(LogLevel.INFOBLUE, f'\nRunning test_exptime_after_not_passing_var_should_raise') + + + d = Ctb() # creates multi shm (assuming no shm exists) + d.hostname = f"localhost:{SERVER_START_PORTNO}" # hostname command creates mod shm, d maps to it + + free_and_create_shm() # ctb() opens multi shm, hostname command frees and recreates mod shm but shm struct is local. d still maps to old shm struct + + # accessing invalid shm should throw + with pytest.raises(Exception) as exc_info: + _ = d.exptime + + Log(LogLevel.INFOGREEN, f"✅ Test passed, exception was: {exc_info.value}") + assert str(exc_info.value) == "Shared memory is invalid or freed. Close resources before access." + + + + +def free_and_create_shm_passing_ctb_var(k): + k = Ctb() # opens existing shm if it exists (disregards k as its new Ctb only local to this function) + k.hostname = f"localhost:{SERVER_START_PORTNO}" # free and recreate shm, maps to local shm struct + + +def test_exptime_after_passing_ctb_var_should_raise(setup_simulator): + Log(LogLevel.INFOBLUE, f'\nRunning test_exptime_after_passing_ctb_var_should_raise') + + d = Ctb() # creates multi shm (assuming no shm exists) + d.hostname = f"localhost:{SERVER_START_PORTNO}" # hostname command creates mod shm, d maps to it + + free_and_create_shm_passing_ctb_var(d) # ctb() opens multi shm, hostname command frees and recreates mod shm but shm struct is local. d still maps to old shm struct + + # accessing invalid shm should throw + with pytest.raises(Exception) as exc_info: + _ = d.exptime + + Log(LogLevel.INFOGREEN, f"✅ Test passed, exception was: {exc_info.value}") + assert str(exc_info.value) == "Shared memory is invalid or freed. Close resources before access." + + + +def free_and_create_shm_returning_ctb(): + k = Ctb() # opens existing shm if it exists (disregards k as its new Ctb only local to this function) + k.hostname = f"localhost:{SERVER_START_PORTNO}" # free and recreate shm, maps to local shm struct + return k + + +def test_exptime_after_returning_ctb_should_raise(setup_simulator): + Log(LogLevel.INFOBLUE, f'\nRunning test_exptime_after_returning_ctb_should_raise') + + d = Ctb() # creates multi shm (assuming no shm exists) + + d = free_and_create_shm_returning_ctb() # ctb() opens multi shm, hostname command frees and recreates mod shm but shm struct is local but returned. d now maps to the new sturct + + # this should not throw + exptime_val = d.exptime + + Log(LogLevel.INFOGREEN, f"✅ Test passed, exptime was: {exptime_val}") + assert isinstance(exptime_val, float) + + free_and_create_shm_returning_ctb() # this time d is not updated, it maps to the old shm struct + + # accessing invalid shm should throw + with pytest.raises(Exception) as exc_info: + _ = d.exptime + + Log(LogLevel.INFOGREEN, f"✅ Test passed, exception was: {exc_info.value}") + assert str(exc_info.value) == "Shared memory is invalid or freed. Close resources before access." + + + + + + +def test_hostname_twice_acess_old_should_raise(setup_simulator): + Log(LogLevel.INFOBLUE, f'\nRunning test_hostname_twice_acess_old_should_raise') + + d = Ctb() # creates multi shm (assuming no shm exists) + d.hostname = f"localhost:{SERVER_START_PORTNO}" # hostname command creates mod shm, d maps to it + d.hostname = f"localhost:{SERVER_START_PORTNO}" # Freeing and recreating shm while mapping d to it (old shm is out of scope) + + # this should not throw + exptime_val = d.exptime + + Log(LogLevel.INFOGREEN, f"✅ Test passed, exptime was: {exptime_val}") + assert isinstance(exptime_val, float) + + + + diff --git a/tests/scripts/test_roi.py b/tests/scripts/test_roi.py new file mode 100644 index 000000000..ffb0ef686 --- /dev/null +++ b/tests/scripts/test_roi.py @@ -0,0 +1,119 @@ +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2021 Contributors to the SLS Detector Package +''' +This file is used to start up simulators, receivers and test roi for every detector in many configurations. +''' + +import sys, time +import traceback + +from slsdet import Detector, burstMode +from slsdet.defines import DEFAULT_TCP_RX_PORTNO, DEFAULT_UDP_DST_PORTNO +from datetime import timedelta + + +from utils_for_test import ( + Log, + LogLevel, + RuntimeException, + cleanup, + startProcessInBackground, + startDetectorVirtualServer, + connectToVirtualServers, + loadBasicSettings, + runProcessWithLogFile +) + +LOG_PREFIX_FNAME = '/tmp/slsDetectorPackage_virtual_roi_test' +MAIN_LOG_FNAME = LOG_PREFIX_FNAME + '_log.txt' +ROI_TEST_FNAME = LOG_PREFIX_FNAME + '_results_' + +def startReceiver(num_mods, fp): + if num_mods == 1: + cmd = ['slsReceiver'] + else: + cmd = ['slsMultiReceiver', str(DEFAULT_TCP_RX_PORTNO), str(num_mods)] + # in 10.0.0 + #cmd = ['slsMultiReceiver', '-p', str(DEFAULT_TCP_RX_PORTNO), '-n', str(num_mods)] + startProcessInBackground(cmd, fp) + time.sleep(1) + + +def loadConfigForRoi(name, fp, num_mods = 1, num_interfaces = 1): + Log(LogLevel.INFO, 'Loading config') + Log(LogLevel.INFO, 'Loading config', fp) + try: + d = connectToVirtualServers(name, num_mods) + + if name == 'jungfrau' or name == 'moench': + d.numinterfaces = num_interfaces + + d.udp_dstport = DEFAULT_UDP_DST_PORTNO + if name == 'eiger' or name == 'jungfrau' or name == 'moench': + d.udp_dstport2 = DEFAULT_UDP_DST_PORTNO + 1 + + d.rx_hostname = 'localhost' + d.udp_dstip = 'auto' + if name != "eiger": + d.udp_srcip = 'auto' + if name == 'jungfrau' or name == 'moench': + d.udp_dstip2 = 'auto' + d.powerchip = 1 + + d.frames = 5 + + except Exception as e: + raise RuntimeException(f'Could not load config for {name}. Error: {str(e)}') from e + + return d + +def startTestsForAll(fp): + servers = [ + 'eiger', + 'jungfrau', + 'mythen3', + 'gotthard2', + 'moench', + ] + nmods = 2 + for server in servers: + for ninterfaces in range(1, 2): + if ninterfaces == 2 and server != 'jungfrau' and server != 'moench': + continue + try: + msg = f'Starting Roi Tests for {server}' + if server == 'jungfrau' or server == 'moench': + msg += f' with {ninterfaces} interfaces' + Log(LogLevel.INFOBLUE, msg) + Log(LogLevel.INFOBLUE, msg, fp) + cleanup(fp) + startDetectorVirtualServer(server, nmods, fp) + startReceiver(nmods, fp) + d = loadConfigForRoi(name=server, fp=fp, num_mods=nmods, num_interfaces=ninterfaces) + loadBasicSettings(name=server, d=d, fp=fp) + + fname = ROI_TEST_FNAME + server + '.txt' + cmd = ['tests', 'rx_roi', '--abort', '-s'] + runProcessWithLogFile('Roi Tests for ' + server, cmd, fp, fname) + Log(LogLevel.INFO, '\n') + except Exception as e: + raise RuntimeException(f'Roi Tests failed') from e + + Log(LogLevel.INFOGREEN, 'Passed all Roi tests for all detectors \n' + str(servers)) + + +if __name__ == '__main__': + Log(LogLevel.INFOBLUE, '\nLog File: ' + MAIN_LOG_FNAME + '\n') + + with open(MAIN_LOG_FNAME, 'w') as fp: + try: + startTestsForAll(fp) + #TODO: check master file as well for both json and hdf5 as well + cleanup(fp) + except Exception as e: + with open(MAIN_LOG_FNAME, 'a') as fp_error: + traceback.print_exc(file=fp_error) + cleanup(fp) + Log(LogLevel.ERROR, f'Tests Failed.') + + diff --git a/tests/scripts/test_simulators.py b/tests/scripts/test_simulators.py index 34f7ca9ba..9b535c29d 100644 --- a/tests/scripts/test_simulators.py +++ b/tests/scripts/test_simulators.py @@ -4,250 +4,89 @@ This file is used to start up simulators, receivers and run all the tests on them and finally kill the simulators and receivers. ''' import argparse -import os, sys, subprocess, time, colorama, signal +import sys, subprocess, time, traceback -from colorama import Fore -from slsdet import Detector, detectorType, detectorSettings -from slsdet.defines import DEFAULT_TCP_CNTRL_PORTNO, DEFAULT_TCP_RX_PORTNO, DEFAULT_UDP_DST_PORTNO -HALFMOD2_TCP_CNTRL_PORTNO=1955 -HALFMOD2_TCP_RX_PORTNO=1957 +from slsdet import Detector +from slsdet.defines import DEFAULT_TCP_RX_PORTNO -colorama.init(autoreset=True) - -class RuntimeException (Exception): - def __init__ (self, message): - super().__init__(Fore.RED + message) - -def Log(color, message): - print('\n' + color + message, flush=True) +from utils_for_test import ( + Log, + LogLevel, + RuntimeException, + checkIfProcessRunning, + killProcess, + cleanup, + cleanSharedmemory, + startProcessInBackground, + runProcessWithLogFile, + startDetectorVirtualServer, + loadConfig, + loadBasicSettings, + ParseArguments +) -def checkIfProcessRunning(processName): - cmd = "ps -ef | grep " + processName - print(cmd) - res=subprocess.getoutput(cmd) - print(res) - # eg. of output - #l_user 250506 243295 0 14:38 pts/5 00:00:00 /bin/sh -c ps -ef | grep slsReceiver - #l_user 250508 250506 0 14:38 pts/5 00:00:00 grep slsReceiver - - print('how many') - cmd = "ps -ef | grep " + processName + " | wc -l" - print(cmd) - res=subprocess.getoutput(cmd) - print(res) - - if res == '2': - return False - return True +LOG_PREFIX_FNAME = '/tmp/slsDetectorPackage_virtual_test' +MAIN_LOG_FNAME = LOG_PREFIX_FNAME + '_log.txt' +GENERAL_TESTS_LOG_FNAME = LOG_PREFIX_FNAME + '_results_general.txt' +CMD_TEST_LOG_PREFIX_FNAME = LOG_PREFIX_FNAME + '_results_cmd_' -def killProcess(name): - if checkIfProcessRunning(name): - Log(Fore.GREEN, 'killing ' + name) - p = subprocess.run(['killall', name]) - if p.returncode != 0: - raise RuntimeException('killall failed for ' + name) +def startReceiver(num_mods, fp): + if num_mods == 1: + cmd = ['slsReceiver'] else: - print('process not running : ' + name) + cmd = ['slsMultiReceiver', str(DEFAULT_TCP_RX_PORTNO), str(num_mods)] + # in 10.0.0 + #cmd = ['slsMultiReceiver', '-p', str(DEFAULT_TCP_RX_PORTNO), '-n', str(num_mods)] + startProcessInBackground(cmd, fp) + time.sleep(1) - -def killAllStaleProcesses(): - killProcess('eigerDetectorServer_virtual') - killProcess('jungfrauDetectorServer_virtual') - killProcess('mythen3DetectorServer_virtual') - killProcess('gotthard2DetectorServer_virtual') - killProcess('gotthardDetectorServer_virtual') - killProcess('ctbDetectorServer_virtual') - killProcess('moenchDetectorServer_virtual') - killProcess('xilinx_ctbDetectorServer_virtual') - killProcess('slsReceiver') - killProcess('slsMultiReceiver') - cleanSharedmemory() - -def cleanup(name): - ''' - kill both servers, receivers and clean shared memory - ''' - Log(Fore.GREEN, 'Cleaning up...') - killProcess(name + 'DetectorServer_virtual') - killProcess('slsReceiver') - killProcess('slsMultiReceiver') - cleanSharedmemory() - -def cleanSharedmemory(): - Log(Fore.GREEN, 'Cleaning up shared memory...') +def startGeneralTests(fp): + fname = GENERAL_TESTS_LOG_FNAME + cmd = ['tests', '--abort', '-s'] try: - p = subprocess.run(['sls_detector_get', 'free'], stdout=fp, stderr=fp) - except: - Log(Fore.RED, 'Could not free shared memory') - raise - -def startProcessInBackground(name): - try: - # in background and dont print output - p = subprocess.Popen(name.split(), stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, restore_signals=False) - Log(Fore.GREEN, 'Starting up ' + name + ' ...') - except: - Log(Fore.RED, 'Could not start ' + name) - raise - -def startServer(name): - - startProcessInBackground(name + 'DetectorServer_virtual') - # second half - if name == 'eiger': - startProcessInBackground(name + 'DetectorServer_virtual -p' + str(HALFMOD2_TCP_CNTRL_PORTNO)) - tStartup = 6 - Log(Fore.WHITE, 'Takes ' + str(tStartup) + ' seconds... Please be patient') - time.sleep(tStartup) - -def startReceiver(name): - startProcessInBackground('slsReceiver') - # second half - if name == 'eiger': - startProcessInBackground('slsReceiver -t' + str(HALFMOD2_TCP_RX_PORTNO)) - time.sleep(2) - -def loadConfig(name, rx_hostname, settingsdir): - Log(Fore.GREEN, 'Loading config') - try: - d = Detector() - if name == 'eiger': - d.hostname = 'localhost:' + str(DEFAULT_TCP_CNTRL_PORTNO) + '+localhost:' + str(HALFMOD2_TCP_CNTRL_PORTNO) - #d.udp_dstport = {2: 50003} - # will set up for every module - d.udp_dstport = DEFAULT_UDP_DST_PORTNO - d.udp_dstport2 = DEFAULT_UDP_DST_PORTNO + 1 - d.rx_hostname = rx_hostname + ':' + str(DEFAULT_TCP_RX_PORTNO) + '+' + rx_hostname + ':' + str(HALFMOD2_TCP_RX_PORTNO) - d.udp_dstip = 'auto' - d.trimen = [4500, 5400, 6400] - d.settingspath = settingsdir + '/eiger/' - d.setThresholdEnergy(4500, detectorSettings.STANDARD) - else: - d.hostname = 'localhost' - d.rx_hostname = rx_hostname - d.udp_dstip = 'auto' - if d.type == detectorType.GOTTHARD: - d.udp_srcip = d.udp_dstip - else: - d.udp_srcip = 'auto' - if d.type == detectorType.JUNGFRAU or d.type == detectorType.MOENCH or d.type == detectorType.XILINX_CHIPTESTBOARD: - d.powerchip = 1 - if d.type == detectorType.XILINX_CHIPTESTBOARD: - d.configureTransceiver() - except: - Log(Fore.RED, 'Could not load config for ' + name) - raise - -def startCmdTests(name, fp, fname): - Log(Fore.GREEN, 'Cmd Tests for ' + name) - cmd = 'tests --abort [.cmdcall] -s -o ' + fname - p = subprocess.run(cmd.split(), stdout=fp, stderr=fp, check=True, text=True) - p.check_returncode() - - with open (fname, 'r') as f: - for line in f: - if "FAILED" in line: - msg = 'Cmd tests failed for ' + name + '!!!' - Log(Fore.RED, msg) - raise Exception(msg) - - Log(Fore.GREEN, 'Cmd Tests successful for ' + name) - -def startGeneralTests(fp, fname): - Log(Fore.GREEN, 'General Tests') - cmd = 'tests --abort -s -o ' + fname - p = subprocess.run(cmd.split(), stdout=fp, stderr=fp, check=True, text=True) - p.check_returncode() - - with open (fname, 'r') as f: - for line in f: - if "FAILED" in line: - msg = 'General tests failed !!!' - Log(Fore.RED, msg) - raise Exception(msg) - - Log(Fore.GREEN, 'General Tests successful') + cleanup(fp) + runProcessWithLogFile('General Tests', cmd, fp, fname) + except Exception as e: + raise RuntimeException(f'General tests failed.') from e - -# parse cmd line for rx_hostname and settingspath using the argparse library -parser = argparse.ArgumentParser(description = 'automated tests with the virtual detector servers') -parser.add_argument('rx_hostname', help = 'hostname/ip of the current machine') -parser.add_argument('settingspath', help = 'Relative or absolut path to the settingspath') -parser.add_argument('-s', '--servers', help='Detector servers to run', nargs='*') -args = parser.parse_args() -if args.rx_hostname == 'localhost': - raise RuntimeException('Cannot use localhost for rx_hostname for the tests (fails for rx_arping for eg.)') - -if args.servers is None: - servers = [ - 'eiger', - 'jungfrau', - 'mythen3', - 'gotthard2', - 'gotthard', - 'ctb', - 'moench', - 'xilinx_ctb' - ] -else: - servers = args.servers - - -Log(Fore.WHITE, 'Arguments:\nrx_hostname: ' + args.rx_hostname + '\nsettingspath: \'' + args.settingspath + '\'') - - -# redirect to file -prefix_fname = '/tmp/slsDetectorPackage_virtual_test' -original_stdout = sys.stdout -original_stderr = sys.stderr -fname = prefix_fname + '_log.txt' -Log(Fore.BLUE, '\nLog File: ' + fname) - -with open(fname, 'w') as fp: - - # general tests - file_results = prefix_fname + '_results_general.txt' - Log(Fore.BLUE, 'General tests (results: ' + file_results + ')') - sys.stdout = fp - sys.stderr = fp - Log(Fore.BLUE, 'General tests (results: ' + file_results + ')') - startGeneralTests(fp, file_results) - - killAllStaleProcesses() - - for server in servers: +def startCmdTestsForAll(args, fp): + for server in args.servers: try: - # print to terminal for progress - sys.stdout = original_stdout - sys.stderr = original_stderr - file_results = prefix_fname + '_results_cmd_' + server + '.txt' - Log(Fore.BLUE, 'Cmd tests for ' + server + ' (results: ' + file_results + ')') - sys.stdout = fp - sys.stderr = fp - Log(Fore.BLUE, 'Cmd tests for ' + server + ' (results: ' + file_results + ')') - - # cmd tests for det - cleanup(server) - startServer(server) - startReceiver(server) - loadConfig(server, args.rx_hostname, args.settingspath) - startCmdTests(server, fp, file_results) - cleanup(server) - except: - Log(Fore.RED, 'Exception caught. Cleaning up.') - cleanup(server) - sys.stdout = original_stdout - sys.stderr = original_stderr - Log(Fore.RED, 'Cmd tests failed for ' + server + '!!!') - raise + num_mods = 2 if server == 'eiger' else 1 + fname = CMD_TEST_LOG_PREFIX_FNAME + server + '.txt' + cmd = ['tests', '--abort', args.markers, '-s'] + + Log(LogLevel.INFOBLUE, f'Starting Cmd Tests for {server}') + cleanup(fp) + startDetectorVirtualServer(name=server, num_mods=num_mods, fp=fp) + startReceiver(num_mods, fp) + d = loadConfig(name=server, rx_hostname=args.rx_hostname, settingsdir=args.settingspath, fp=fp, num_mods=num_mods) + loadBasicSettings(name=server, d=d, fp=fp) + runProcessWithLogFile('Cmd Tests (' + args.markers + ') for ' + server, cmd, fp, fname) + except Exception as e: + raise RuntimeException(f'Cmd Tests failed for {server}.') from e + + Log(LogLevel.INFOGREEN, 'Passed all tests for all detectors \n' + str(args.servers)) - Log(Fore.GREEN, 'Passed all tests for virtual detectors \n' + str(servers)) +if __name__ == '__main__': + args = ParseArguments(description='Automated tests with the virtual detector servers', default_num_mods=1, markers=True, general_tests_option=True) + if args.num_mods > 1: + raise RuntimeException(f'Cannot support multiple modules at the moment (except Eiger).') -# redirect to terminal -sys.stdout = original_stdout -sys.stderr = original_stderr -Log(Fore.GREEN, 'Passed all tests for virtual detectors \n' + str(servers) + '\nYayyyy! :) ') \ No newline at end of file + Log(LogLevel.INFOBLUE, '\nLog File: ' + MAIN_LOG_FNAME + '\n') + + with open(MAIN_LOG_FNAME, 'w') as fp: + try: + if args.general_tests: + startGeneralTests(fp) + startCmdTestsForAll(args, fp) + cleanup(fp) + except Exception as e: + with open(MAIN_LOG_FNAME, 'a') as fp_error: + traceback.print_exc(file=fp_error) + cleanup(fp) + Log(LogLevel.ERROR, f'Tests Failed.') diff --git a/tests/scripts/utils_for_test.py b/tests/scripts/utils_for_test.py new file mode 100644 index 000000000..71a7ddde7 --- /dev/null +++ b/tests/scripts/utils_for_test.py @@ -0,0 +1,313 @@ +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2021 Contributors to the SLS Detector Package +''' +This file is used for common utils used for integration tests between simulators and receivers. +''' + +from pathlib import Path +import sys, subprocess, time, argparse +from enum import Enum +from colorama import Fore, Style, init +from datetime import timedelta + +from slsdet import Detector, Ctb, detectorSettings, burstMode +from slsdet.defines import DEFAULT_TCP_RX_PORTNO, DEFAULT_UDP_DST_PORTNO +SERVER_START_PORTNO=1900 + +init(autoreset=True) + + +class LogLevel(Enum): + INFO = 0 + INFORED = 1 + INFOGREEN = 2 + INFOBLUE = 3 + WARNING = 4 + ERROR = 5 + DEBUG = 6 + + +LOG_LABELS = { + LogLevel.WARNING: "WARNING: ", + LogLevel.ERROR: "ERROR: ", + LogLevel.DEBUG: "DEBUG: " +} + + +LOG_COLORS = { + LogLevel.INFO: Fore.WHITE, + LogLevel.INFORED: Fore.RED, + LogLevel.INFOGREEN: Fore.GREEN, + LogLevel.INFOBLUE: Fore.BLUE, + LogLevel.WARNING: Fore.YELLOW, + LogLevel.ERROR: Fore.RED, + LogLevel.DEBUG: Fore.CYAN +} + + +def Log(level: LogLevel, message: str, stream=sys.stdout): + color = LOG_COLORS.get(level, Fore.WHITE) + label = LOG_LABELS.get(level, "") + print(f"{color}{label}{message}{Style.RESET_ALL}", file=stream, flush=True) + + +class RuntimeException (Exception): + def __init__ (self, message): + Log(LogLevel.ERROR, message) + super().__init__(message) + + +def checkIfProcessRunning(processName): + cmd = f"pgrep -f {processName}" + res = subprocess.getoutput(cmd) + return res.strip().splitlines() + + +def killProcess(name, fp): + pids = checkIfProcessRunning(name) + if pids: + Log(LogLevel.INFO, f"Killing '{name}' processes with PIDs: {', '.join(pids)}", fp) + for pid in pids: + try: + p = subprocess.run(['kill', pid]) + if p.returncode != 0 and bool(checkIfProcessRunning(name)): + raise RuntimeException(f"Could not kill {name} with pid {pid}") + except Exception as e: + raise RuntimeException(f"Failed to kill process {name} pid:{pid}. Error: {str(e)}") from e + #else: + # Log(LogLevel.INFO, 'process not running : ' + name) + + +def cleanSharedmemory(fp): + Log(LogLevel.INFO, 'Cleaning up shared memory', fp) + try: + p = subprocess.run(['sls_detector_get', 'free'], stdout=fp, stderr=fp) + except: + raise RuntimeException('Could not free shared memory') + + +def cleanup(fp): + Log(LogLevel.INFO, 'Cleaning up') + Log(LogLevel.INFO, 'Cleaning up', fp) + killProcess('DetectorServer_virtual', fp) + killProcess('slsReceiver', fp) + killProcess('slsMultiReceiver', fp) + killProcess('slsFrameSynchronizer', fp) + killProcess('frameSynchronizerPullSocket', fp) + cleanSharedmemory(fp) + + +def startProcessInBackground(cmd, fp): + Log(LogLevel.INFO, 'Starting up ' + ' '.join(cmd)) + Log(LogLevel.INFO, 'Starting up ' + ' '.join(cmd), fp) + try: + p = subprocess.Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, restore_signals=False) + except Exception as e: + raise RuntimeException(f'Failed to start {cmd}:{str(e)}') from e + + +def startProcessInBackgroundWithLogFile(cmd, fp, log_file_name: str): + Log(LogLevel.INFOBLUE, 'Starting up ' + ' '.join(cmd) + '. Log: ' + log_file_name) + Log(LogLevel.INFOBLUE, 'Starting up ' + ' '.join(cmd) + '. Log: ' + log_file_name, fp) + try: + with open(log_file_name, 'w') as log_fp: + subprocess.Popen(cmd, stdout=log_fp, stderr=log_fp, text=True) + except Exception as e: + raise RuntimeException(f'Failed to start {cmd}:{str(e)}') from e + + +def checkLogForErrors(fp, log_file_path: str): + try: + with open(log_file_path, 'r') as log_file: + for line in log_file: + if 'Error' in line: + Log(LogLevel.ERROR, f"Error found in log: {line.strip()}") + Log(LogLevel.ERROR, f"Error found in log: {line.strip()}", fp) + raise RuntimeException("Error found in log file") + except FileNotFoundError: + print(f"Log file not found: {log_file_path}") + raise + except Exception as e: + print(f"Exception while reading log: {e}") + raise + + +def runProcessWithLogFile(name, cmd, fp, log_file_name): + Log(LogLevel.INFOBLUE, 'Running ' + name + '. Log: ' + log_file_name) + Log(LogLevel.INFOBLUE, 'Running ' + name + '. Log: ' + log_file_name, fp) + Log(LogLevel.INFOBLUE, 'Cmd: ' + ' '.join(cmd), fp) + try: + with open(log_file_name, 'w') as log_fp: + subprocess.run(cmd, stdout=log_fp, stderr=log_fp, check=True, text=True) + except subprocess.CalledProcessError as e: + pass + except Exception as e: + Log(LogLevel.ERROR, f'Failed to run {name}:{str(e)}', fp) + raise RuntimeException(f'Failed to run {name}:{str(e)}') + + with open (log_file_name, 'r') as f: + for line in f: + if "FAILED" in line: + raise RuntimeException(f'{line}') + + Log(LogLevel.INFOGREEN, name + ' successful!\n') + Log(LogLevel.INFOGREEN, name + ' successful!\n', fp) + + +def startDetectorVirtualServer(name :str, num_mods, fp): + for i in range(num_mods): + port_no = SERVER_START_PORTNO + (i * 2) + cmd = [name + 'DetectorServer_virtual', '-p', str(port_no)] + startProcessInBackgroundWithLogFile(cmd, fp, "/tmp/virtual_det_" + name + "_" + str(i) + ".txt") + match name: + case 'jungfrau': + time.sleep(7) + case 'gotthard2': + time.sleep(5) + case _: + time.sleep(3) + + +def connectToVirtualServers(name, num_mods, ctb_object=False): + try: + if ctb_object: + d = Ctb() + else: + d = Detector() + except Exception as e: + raise RuntimeException(f'Could not create Detector object for {name}. Error: {str(e)}') from e + + counts_sec = 5 + while (counts_sec != 0): + try: + d.virtual = [num_mods, SERVER_START_PORTNO] + break + except Exception as e: + # stop server still not up, wait a bit longer + if "Cannot connect to" in str(e): + Log(LogLevel.WARNING, f'Still waiting for {name} virtual server to be up...{counts_sec}s left') + time.sleep(1) + counts_sec -= 1 + else: + raise + + return d + + +def loadConfig(name, rx_hostname, settingsdir, fp, num_mods = 1, num_frames = 1): + Log(LogLevel.INFO, 'Loading config') + Log(LogLevel.INFO, 'Loading config', fp) + try: + d = connectToVirtualServers(name, num_mods) + d.udp_dstport = DEFAULT_UDP_DST_PORTNO + if name == 'eiger': + d.udp_dstport2 = DEFAULT_UDP_DST_PORTNO + 1 + + d.rx_hostname = rx_hostname + d.udp_dstip = 'auto' + if name != "eiger": + d.udp_srcip = 'auto' + + if name == "jungfrau" or name == "moench" or name == "xilinx_ctb": + d.powerchip = 1 + + if name == "xilinx_ctb": + d.configureTransceiver() + + if name == "eiger": + d.trimen = [4500, 5400, 6400] + d.settingspath = settingsdir + '/eiger/' + d.setThresholdEnergy(4500, detectorSettings.STANDARD) + + d.frames = num_frames + + except Exception as e: + raise RuntimeException(f'Could not load config for {name}. Error: {str(e)}') from e + + return d + +# for easy acquire +def loadBasicSettings(name, d, fp): + Log(LogLevel.INFO, 'Loading basic settings for ' + name) + Log(LogLevel.INFO, 'Loading basic settings for ' + name, fp) + try: + # basic settings for easy acquire + if name == "jungfrau": + d.exptime = timedelta(microseconds = 200) + d.readnrows = 512 + elif name == "moench": + d.exptime = timedelta(microseconds = 200) + d.readnrows = 400 + elif name == "eiger": + d.exptime = timedelta(microseconds = 200) + d.readnrows = 256 + d.dr = 16 + elif name == "mythen3": + d.setExptime(-1, timedelta(microseconds = 200)) + d.dr = 16 + d.counters = [0, 1, 2] + elif name == "gotthard2": + d.exptime = timedelta(microseconds = 200) + d.burstmode = burstMode.CONTINUOUS_EXTERNAL + d.bursts = 1 + d.burstperiod = 0 + d.period = timedelta(milliseconds = 2) + + except Exception as e: + raise RuntimeException(f'Could not load config for {name}. Error: {str(e)}') from e + +def ParseArguments(description, default_num_mods=1, markers=False, general_tests_option=False): + parser = argparse.ArgumentParser(description) + + default_settings_path = Path(__file__).resolve().parents[2] / "settingsdir" + + parser.add_argument('rx_hostname', nargs='?', default='localhost', + help='Hostname/IP of the current machine') + parser.add_argument('settingspath', nargs='?', default=str(default_settings_path), + help='Relative or absolute path to the settings directory') + parser.add_argument('-n', '--num-mods', nargs='?', default=default_num_mods, type=int, + help='Number of modules to test with') + parser.add_argument('-f', '--num-frames', nargs='?', default=1, type=int, + help='Number of frames to test with') + parser.add_argument('-s', '--servers', nargs='*', + help='Detector servers to run') + if markers: + parser.add_argument('-m', '--markers', nargs='?', default ='[.cmdcall]', + help = 'Markers to use for cmd tests, default: [.cmdcall]') + + if general_tests_option: + parser.add_argument('-g', '--general_tests', action='store_true', + help = 'Enable general tests (no value needed)') + + args = parser.parse_args() + + # Set default server list if not provided + if args.servers is None: + args.servers = [ + 'eiger', + 'jungfrau', + 'mythen3', + 'gotthard2', + 'ctb', + 'moench', + 'xilinx_ctb' + ] + + msg = ( + 'Arguments:\n' + f'rx_hostname: {args.rx_hostname}\n' + f"settingspath: '{args.settingspath}'\n" + f"servers: '{' '.join(args.servers)}'\n" + f"num_mods: '{args.num_mods}'\n" + f"num_frames: '{args.num_frames}'" + ) + if markers: + msg += f"\nmarkers: '{args.markers}'" + + if general_tests_option: + msg += f"\ngeneral_tests: '{args.general_tests}'" + + Log(LogLevel.INFO, msg) + + + return args diff --git a/updateAPIVersion.py b/updateAPIVersion.py new file mode 100644 index 000000000..4d0cf7ccf --- /dev/null +++ b/updateAPIVersion.py @@ -0,0 +1,81 @@ +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2025 Contributors to the SLS Detector Package +""" +Script to update API VERSION file based on the version in VERSION file. +""" + +import argparse +import sys +import os +import re +import time +from datetime import datetime + + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) + +API_FILE = SCRIPT_DIR + "/slsSupportLib/include/sls/versionAPI.h" + +VERSION_FILE = SCRIPT_DIR + "/VERSION" + +parser = argparse.ArgumentParser(description = 'updates API version') +parser.add_argument('api_module_name', choices=["APILIB", "APIRECEIVER", "APICTB", "APIGOTTHARD2", "APIMOENCH", "APIEIGER", "APIXILINXCTB", "APIJUNGFRAU", "APIMYTHEN3"], help = 'module name to change api version options are: ["APILIB", "APIRECEIVER", "APICTB", "APIGOTTHARD2", "APIMOENCH", "APIEIGER", "APIXILINXCTB", "APIJUNGFRAU", "APIMYTHEN3"]') +parser.add_argument('api_dir', help = 'Relative or absolute path to the module code') + +def update_api_file(new_api : str, api_module_name : str, api_file_name : str): + + regex_pattern = re.compile(rf'#define\s+{api_module_name}\s+') + with open(api_file_name, "r") as api_file: + lines = api_file.readlines() + + with open(api_file_name, "w") as api_file: + for line in lines: + if regex_pattern.match(line): + api_file.write(f'#define {api_module_name} "{new_api}"\n') + else: + api_file.write(line) + +def get_latest_modification_date(directory : str): + latest_time = 0 + latest_date = None + + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith(".o"): + continue + full_path = os.path.join(root, file) + try: + mtime = os.path.getmtime(full_path) + if mtime > latest_time: + latest_time = mtime + except FileNotFoundError: + continue + + latest_date = datetime.fromtimestamp(latest_time).strftime("%y%m%d") + + return latest_date + + +def update_api_version(api_module_name : str, api_dir : str): + api_date = get_latest_modification_date(api_dir) + api_date = "0x"+str(api_date) + + with open(VERSION_FILE, "r") as version_file: + api_version = version_file.read().strip() + + api_version = api_version + " " + api_date #not sure if we should give an argument option version_branch + + update_api_file(api_version, api_module_name, API_FILE) + + print(f"updated {api_module_name} api version to: {api_version}") + +if __name__ == "__main__": + + args = parser.parse_args() + + api_dir = SCRIPT_DIR + "/" + args.api_dir + + + update_api_version(args.api_module_name, api_dir) + + diff --git a/updateAPIVersion.sh b/updateAPIVersion.sh deleted file mode 100755 index 8c45e0c48..000000000 --- a/updateAPIVersion.sh +++ /dev/null @@ -1,65 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package -usage="\nUsage: updateAPIVersion.sh [API_NAME] [API_DIR] [API_BRANCH(opt)]." - -if [ $# -lt 2 ]; then - echo -e "Requires atleast 2 arguments. $usage" - return [-1] -fi - -API_NAME=$1 -PACKAGE_DIR=$PWD -API_DIR=$PACKAGE_DIR/$2 -API_FILE=$PACKAGE_DIR/slsSupportLib/include/sls/versionAPI.h -CURR_DIR=$PWD - -if [ ! -d "$API_DIR" ]; then - echo "[API_DIR] does not exist. $usage" - return [-1] -fi - -#go to directory -cd $API_DIR - -#deleting line from file -NUM=$(sed -n '/'$API_NAME' /=' $API_FILE) -#echo $NUM - - -if [ "$NUM" -gt 0 ]; then - sed -i ${NUM}d $API_FILE -fi - -#find new API date -API_DATE="find . -printf \"%T@ %CY-%Cm-%Cd\n\"| sort -nr | cut -d' ' -f2- | egrep -v '(\.)o' | head -n 1" - -API_DATE=`eval $API_DATE` - -API_DATE=$(sed "s/-//g" <<< $API_DATE | awk '{print $1;}' ) - -#extracting only date -API_DATE=${API_DATE:2:6} - -#prefix of 0x -API_DATE=${API_DATE/#/0x} -echo "date="$API_DATE - - -# API_VAL concatenates branch and date -API_VAL="" -# API branch is defined (3rd argument) -if [ $# -eq 3 ]; then - API_BRANCH=$3 - echo "branch="$API_BRANCH - API_VAL+="\"$API_BRANCH $API_DATE\"" -else - # API branch not defined (default is developer) - echo "branch=developer" - API_VAL+="\"developer $API_DATE\"" -fi - -#copy it to versionAPI.h -echo "#define "$API_NAME $API_VAL >> $API_FILE - -#go back to original directory -cd $CURR_DIR diff --git a/updateClientAPIVersion.py b/updateClientAPIVersion.py new file mode 100644 index 000000000..d7764cff9 --- /dev/null +++ b/updateClientAPIVersion.py @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2025 Contributors to the SLS Detector Package +""" +Script to update API VERSION for slsReceiverSoftware or slsDetectorSoftware +""" + +import argparse +import os + +from updateAPIVersion import update_api_version + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) + +parser = argparse.ArgumentParser(description = 'updates API version') +parser.add_argument('module_name', nargs="?", choices=["slsDetectorSoftware", "slsReceiverSoftware", "all"], default="all", help = 'module name to change api version options are: ["slsDetectorSoftware", "slsReceiverSoftware, "all"]') + +if __name__ == "__main__": + args = parser.parse_args() + + if args.module_name == "all": + client_names = ["APILIB", "APIRECEIVER"] + client_directories = [SCRIPT_DIR+"/slsDetectorSoftware", SCRIPT_DIR+"/slsReceiverSoftware"] + elif args.module_name == "slsDetectorSoftware": + client_names = ["APILIB"] + client_directories = [SCRIPT_DIR+"/slsDetectorSoftware"] + else: + client_names = ["APIRECEIVER"] + client_directories = [SCRIPT_DIR+"/slsReceiverSoftware"] + + for client_name, client_directory in zip(client_names, client_directories): + update_api_version(client_name, client_directory) + + + diff --git a/updateClientAPIVersion.sh b/updateClientAPIVersion.sh deleted file mode 100755 index bed281622..000000000 --- a/updateClientAPIVersion.sh +++ /dev/null @@ -1,59 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package -branch="" -client_list=("slsDetectorSoftware" "slsReceiverSoftware") -usage="\nUsage: updateClientAPI.sh [all|slsDetectorSoftware|slsReceiverSoftware] [branch]. \n\tNo arguments means all with 'developer' branch. \n\tNo 'branch' input means 'developer branch'" - -# arguments -if [ $# -eq 0 ]; then - declare -a client=${client_list[@]} - echo "API Versioning all" -elif [ $# -eq 1 ] || [ $# -eq 2 ]; then - # 'all' client - if [[ $1 == "all" ]]; then - declare -a client=${client_list[@]} - echo "API Versioning all" - else - # only one server - if [[ $client_list != *$1* ]]; then - echo -e "Invalid argument 1: $1. $usage" - return -1 - fi - declare -a client=("${1}") - #echo "Versioning only $1" - fi - if [ $# -eq 2 ]; then - if [[ $client_list == *$2* ]]; then - echo -e "Invalid argument 2: $2. $usage" - return -1 - fi - branch+=$2 - #echo "with branch $branch" - fi -else - echo -e "Too many arguments.$usage" - return -1 -fi - -#echo "list is: ${client[@]}" - -# versioning each client -for i in ${client[@]} -do - dir=$i - case $dir in - slsDetectorSoftware) - declare -a name=APILIB - ;; - slsReceiverSoftware) - declare -a name=APIRECEIVER - ;; - *) - echo -n "unknown client argument $i" - return -1 - ;; - esac - echo -e "Versioning $dir [$name]" - ./updateAPIVersion.sh $name $dir $branch -done - diff --git a/updateReleaseVersion.sh b/updateReleaseVersion.sh deleted file mode 100644 index 8f38ae191..000000000 --- a/updateReleaseVersion.sh +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: LGPL-3.0-or-other -# Copyright (C) 2021 Contributors to the SLS Detector Package - -API_FILE=$PWD/slsSupportLib/include/sls/versionAPI.h -CURR_BRANCH=$(cat $API_FILE | grep RELEASE | awk '{print $3}' ) - -# default branch is developer -if [ $# -eq 0 ]; then - declare -a NEW_BRANCH="developer" -else - declare -a NEW_BRANCH=${1} -fi - -# update branch -sed -i s/$CURR_BRANCH/\"$NEW_BRANCH\"/g $API_FILE diff --git a/update_version.py b/update_version.py new file mode 100644 index 000000000..6b3e1ebad --- /dev/null +++ b/update_version.py @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: LGPL-3.0-or-other +# Copyright (C) 2021 Contributors to the SLS Detector Package +""" +Script to update VERSION file with semantic versioning if provided as an argument, or with 0.0.0 if no argument is provided. +""" + +import sys +import os + +from packaging.version import Version, InvalidVersion + + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) + +def get_version(): + + # Check at least one argument is passed + if len(sys.argv) < 2: + return "0.0.0" + + version = sys.argv[1] + + try: + v = Version(version) # normalizcheck if version follows PEP 440 specification + #replace - + return version.replace("-", ".") + except InvalidVersion as e: + print(f"Invalid version {version}. Version format must follow semantic versioning format of python PEP 440 version identification specification.") + sys.exit(1) + + +def write_version_to_file(version): + version_file_path = os.path.join(SCRIPT_DIR, "VERSION") + with open(version_file_path, "w") as version_file: + version_file.write(version) + print(f"Version {version} written to VERSION file.") + +# Main script +if __name__ == "__main__": + + version = get_version() + write_version_to_file(version)