1bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas/*
2bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas * Copyright 2017 Google Inc.
3bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas *
4bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas * Use of this source code is governed by a BSD-style license that can be
5bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas * found in the LICENSE file.
6bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas */
7bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
8bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas/*
9bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
10bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas    This file is IGNORED during the build process!
11bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
12bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas    As this file is updated so infrequently and flex is not universally present on build machines,
13bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas    the lex.layout.c file must be manually regenerated if you make any changes to this file. Just
14bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas    run:
15bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
16bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas        flex layout.flex
17bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
18bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas    You will have to manually add a copyright notice to the top of lex.layout.c.
19bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
20bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas*/
21bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
22bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%option prefix="layout"
23bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%option reentrant
24bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%option yylineno
25bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%option never-interactive
26bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%option nounistd
27bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
28bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%{
29bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas#include "SkSLToken.h"
30bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%}
31bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
32bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%%
33bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
34bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"location"                    { return SkSL::Token::LOCATION; }
35bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"offset"                      { return SkSL::Token::OFFSET; }
36bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"binding"                     { return SkSL::Token::BINDING; }
37bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"index"                       { return SkSL::Token::INDEX; }
38bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"set"                         { return SkSL::Token::SET; }
39bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"builtin"                     { return SkSL::Token::BUILTIN; }
40bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"input_attachment_index"      { return SkSL::Token::INPUT_ATTACHMENT_INDEX; }
41bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"origin_upper_left"           { return SkSL::Token::ORIGIN_UPPER_LEFT; }
42bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"override_coverage"           { return SkSL::Token::OVERRIDE_COVERAGE; }
43bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"blend_support_all_equations" { return SkSL::Token::BLEND_SUPPORT_ALL_EQUATIONS; }
44bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"push_constant"               { return SkSL::Token::PUSH_CONSTANT; }
45bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"points"                      { return SkSL::Token::POINTS; }
46bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"lines"                       { return SkSL::Token::LINES; }
47bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"line_strip"                  { return SkSL::Token::LINE_STRIP; }
48bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"lines_adjacency"             { return SkSL::Token::LINES_ADJACENCY; }
49bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"triangles"                   { return SkSL::Token::TRIANGLES; }
50bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"triangle_strip"              { return SkSL::Token::TRIANGLE_STRIP; }
51bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"triangles_adjacency"         { return SkSL::Token::TRIANGLES_ADJACENCY; }
52bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"max_vertices"                { return SkSL::Token::MAX_VERTICES; }
53bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas"invocations"                 { return SkSL::Token::INVOCATIONS; }
54bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
55bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas. { return SkSL::Token::INVALID_TOKEN; }
56bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
57bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas%%
58bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas
59bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholasint layoutwrap(yyscan_t scanner) {
60bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas    return 1; // terminate
61bfe15f61a277a50b05703307f56e184cc00b1aa7Ethan Nicholas}
62