LCOV - code coverage report
Current view: top level - src/parsing - token.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 2 2 100.0 %
Date: 2019-01-20 Functions: 2 2 100.0 %

          Line data    Source code
       1             : // Copyright 2006-2008 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #include <stdint.h>
       6             : 
       7             : #include "src/parsing/token.h"
       8             : 
       9             : namespace v8 {
      10             : namespace internal {
      11             : 
      12             : #define T(name, string, precedence) #name,
      13             : const char* const Token::name_[NUM_TOKENS] = {TOKEN_LIST(T, T)};
      14             : #undef T
      15             : 
      16             : 
      17             : #define T(name, string, precedence) string,
      18             : const char* const Token::string_[NUM_TOKENS] = {TOKEN_LIST(T, T)};
      19             : #undef T
      20             : 
      21             : constexpr uint8_t length(const char* str) {
      22             :   return str ? static_cast<uint8_t>(strlen(str)) : 0;
      23             : }
      24             : #define T(name, string, precedence) length(string),
      25             : const uint8_t Token::string_length_[NUM_TOKENS] = {TOKEN_LIST(T, T)};
      26             : #undef T
      27             : 
      28             : #define T1(name, string, precedence) \
      29             :   ((Token::name == Token::IN) ? 0 : precedence),
      30             : #define T2(name, string, precedence) precedence,
      31             : // precedence_[0] for accept_IN == false, precedence_[1] for accept_IN = true.
      32             : const int8_t Token::precedence_[2][NUM_TOKENS] = {{TOKEN_LIST(T1, T1)},
      33             :                                                   {TOKEN_LIST(T2, T2)}};
      34             : #undef T2
      35             : #undef T1
      36             : 
      37             : #define KT(a, b, c) \
      38             :   IsPropertyNameBits::encode(Token::IsAnyIdentifier(a) || a == ESCAPED_KEYWORD),
      39             : #define KK(a, b, c) \
      40             :   IsKeywordBits::encode(true) | IsPropertyNameBits::encode(true),
      41       61289 : const uint8_t Token::token_flags[] = {TOKEN_LIST(KT, KK)};
      42             : #undef KT
      43             : #undef KK
      44             : 
      45             : }  // namespace internal
      46      183867 : }  // namespace v8

Generated by: LCOV version 1.10