1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright © 2010 Intel Corporation 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * copy of this software and associated documentation files (the "Software"), 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * to deal in the Software without restriction, including without limitation 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * and/or sell copies of the Software, and to permit persons to whom the 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Software is furnished to do so, subject to the following conditions: 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice (including the next 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * paragraph) shall be included in all copies or substantial portions of the 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Software. 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * DEALINGS IN THE SOFTWARE. 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef GLCPP_H 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define GLCPP_H 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include <stdint.h> 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include <stdbool.h> 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "../ralloc.h" 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "program/hash_table.h" 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define yyscan_t void* 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* Some data types used for parser values. */ 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct string_node { 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const char *str; 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct string_node *next; 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} string_node_t; 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct string_list { 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org string_node_t *head; 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org string_node_t *tail; 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} string_list_t; 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct token token_t; 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct token_list token_list_t; 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef union YYSTYPE 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org intmax_t ival; 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org char *str; 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org string_list_t *string_list; 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_t *token; 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_list_t *token_list; 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} YYSTYPE; 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# define YYSTYPE_IS_TRIVIAL 1 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# define YYSTYPE_IS_DECLARED 1 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct YYLTYPE { 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int first_line; 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int first_column; 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int last_line; 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int last_column; 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned source; 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} YYLTYPE; 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# define YYLTYPE_IS_DECLARED 1 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# define YYLTYPE_IS_TRIVIAL 1 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org# define YYLLOC_DEFAULT(Current, Rhs, N) \ 74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgdo { \ 75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org if (N) \ 76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { \ 77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (Current).first_line = YYRHSLOC(Rhs, 1).first_line; \ 78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (Current).first_column = YYRHSLOC(Rhs, 1).first_column; \ 79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (Current).last_line = YYRHSLOC(Rhs, N).last_line; \ 80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (Current).last_column = YYRHSLOC(Rhs, N).last_column; \ 81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } \ 82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org else \ 83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org { \ 84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (Current).first_line = (Current).last_line = \ 85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org YYRHSLOC(Rhs, 0).last_line; \ 86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (Current).first_column = (Current).last_column = \ 87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org YYRHSLOC(Rhs, 0).last_column; \ 88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } \ 89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org (Current).source = 0; \ 90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} while (0) 91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct token { 93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int type; 94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org YYSTYPE value; 95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org YYLTYPE location; 96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct token_node { 99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_t *token; 100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct token_node *next; 101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} token_node_t; 102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct token_list { 104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_node_t *head; 105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_node_t *tail; 106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_node_t *non_space_tail; 107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct argument_node { 110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_list_t *argument; 111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct argument_node *next; 112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} argument_node_t; 113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct argument_list { 115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org argument_node_t *head; 116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org argument_node_t *tail; 117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} argument_list_t; 118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct glcpp_parser glcpp_parser_t; 120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef enum { 122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org TOKEN_CLASS_IDENTIFIER, 123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org TOKEN_CLASS_IDENTIFIER_FINALIZED, 124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org TOKEN_CLASS_FUNC_MACRO, 125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org TOKEN_CLASS_OBJ_MACRO 126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} token_class_t; 127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtoken_class_t 129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_parser_classify_token (glcpp_parser_t *parser, 130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const char *identifier, 131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int *parameter_index); 132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct { 134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int is_function; 135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org string_list_t *parameters; 136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const char *identifier; 137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_list_t *replacements; 138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} macro_t; 139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct expansion_node { 141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org macro_t *macro; 142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_node_t *replacements; 143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct expansion_node *next; 144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} expansion_node_t; 145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef enum skip_type { 147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SKIP_NO_SKIP, 148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SKIP_TO_ELSE, 149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org SKIP_TO_ENDIF 150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} skip_type_t; 151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct skip_node { 153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org skip_type_t type; 154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org YYLTYPE loc; /* location of the initial #if/#elif/... */ 155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct skip_node *next; 156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} skip_node_t; 157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct active_list { 159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const char *identifier; 160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_node_t *marker; 161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct active_list *next; 162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} active_list_t; 163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct glcpp_parser { 165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org yyscan_t scanner; 166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct hash_table *defines; 167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org active_list_t *active; 168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int lexing_if; 169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int space_tokens; 170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int newline_as_space; 171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int in_control_line; 172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int paren_count; 173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org skip_node_t *skip_stack; 174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_list_t *lex_from_list; 175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org token_node_t *lex_from_node; 176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org char *output; 177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org char *info_log; 178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org size_t output_length; 179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org size_t info_log_length; 180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int error; 181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org bool has_new_line_number; 182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int new_line_number; 183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org bool has_new_source_number; 184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int new_source_number; 185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct gl_extensions; 188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_parser_t * 190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_parser_create (const struct gl_extensions *extensions, int api); 191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint 193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_parser_parse (glcpp_parser_t *parser); 194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_parser_destroy (glcpp_parser_t *parser); 197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint 199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_preprocess(void *ralloc_ctx, const char **shader, char **info_log, 200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const struct gl_extensions *extensions, int api); 201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* Functions for writing to the info log */ 203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_error (YYLTYPE *locp, glcpp_parser_t *parser, const char *fmt, ...); 206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_warning (YYLTYPE *locp, glcpp_parser_t *parser, const char *fmt, ...); 209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* Generated by glcpp-lex.l to glcpp-lex.c */ 211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint 213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_lex_init_extra (glcpp_parser_t *parser, yyscan_t* scanner); 214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid 216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_lex_set_source_string(glcpp_parser_t *parser, const char *shader); 217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint 219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_lex (YYSTYPE *lvalp, YYLTYPE *llocp, yyscan_t scanner); 220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint 222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgglcpp_lex_destroy (yyscan_t scanner); 223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* Generated by glcpp-parse.y to glcpp-parse.c */ 225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint 227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgyyparse (glcpp_parser_t *parser); 228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif 230