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