LCOV - code coverage report
Current view: top level - metalib_isl - extract_key.c (source / functions) Hit Total Coverage
Test: 2018-10-31_point_maint_greina16.lcov Lines: 0 23 0.0 %
Date: 2018-11-01 11:27:00 Functions: 0 2 0.0 %

          Line data    Source code
       1             : /*
       2             :  * Copyright 2013      Ecole Normale Superieure
       3             :  *
       4             :  * Use of this software is governed by the MIT license
       5             :  *
       6             :  * Written by Sven Verdoolaege,
       7             :  * Ecole Normale Superieure, 45 rue d'Ulm, 75230 Paris, France
       8             :  */
       9             : 
      10             : #include <string.h>
      11             : 
      12             : /* Extract a mapping key from the token "tok".
      13             :  * Return KEY_ERROR on error, i.e., if "tok" does not
      14             :  * correspond to any known key.
      15             :  */
      16           0 : static KEY extract_key(__isl_keep isl_stream *s, struct isl_token *tok)
      17             : {
      18             :         int type;
      19             :         char *name;
      20             :         KEY key;
      21             :         isl_ctx *ctx;
      22             : 
      23           0 :         if (!tok)
      24           0 :                 return KEY_ERROR;
      25           0 :         type = isl_token_get_type(tok);
      26           0 :         if (type != ISL_TOKEN_IDENT && type != ISL_TOKEN_STRING) {
      27           0 :                 isl_stream_error(s, tok, "expecting key");
      28           0 :                 return KEY_ERROR;
      29             :         }
      30             : 
      31           0 :         ctx = isl_stream_get_ctx(s);
      32           0 :         name = isl_token_get_str(ctx, tok);
      33           0 :         if (!name)
      34           0 :                 return KEY_ERROR;
      35             : 
      36           0 :         for (key = 0; key < KEY_END; ++key) {
      37           0 :                 if (!strcmp(name, key_str[key]))
      38           0 :                         break;
      39             :         }
      40           0 :         free(name);
      41             : 
      42           0 :         if (key >= KEY_END)
      43           0 :                 isl_die(ctx, isl_error_invalid, "unknown key",
      44             :                         return KEY_ERROR);
      45           0 :         return key;
      46             : }
      47             : 
      48             : /* Read a key from "s" and return the corresponding enum.
      49             :  * Return KEY_ERROR on error, i.e., if the first token
      50             :  * on the stream does not correspond to any known key.
      51             :  */
      52           0 : static KEY get_key(__isl_keep isl_stream *s)
      53             : {
      54             :         struct isl_token *tok;
      55             :         KEY key;
      56             : 
      57           0 :         tok = isl_stream_next_token(s);
      58           0 :         key = extract_key(s, tok);
      59           0 :         isl_token_free(tok);
      60             : 
      61           0 :         return key;
      62             : }

Generated by: LCOV version 1.12