1bc36eafdSMike Gerdts %{ 2bc36eafdSMike Gerdts /****************************************************************************** 3bc36eafdSMike Gerdts * 4bc36eafdSMike Gerdts * Module Name: dtparser.l - Flex input file for table compiler lexer 5bc36eafdSMike Gerdts * 6bc36eafdSMike Gerdts *****************************************************************************/ 7bc36eafdSMike Gerdts 8*35786f68SRobert Mustacchi /****************************************************************************** 9*35786f68SRobert Mustacchi * 10*35786f68SRobert Mustacchi * 1. Copyright Notice 11*35786f68SRobert Mustacchi * 12*35786f68SRobert Mustacchi * Some or all of this work - Copyright (c) 1999 - 2018, Intel Corp. 13bc36eafdSMike Gerdts * All rights reserved. 14bc36eafdSMike Gerdts * 15*35786f68SRobert Mustacchi * 2. License 16*35786f68SRobert Mustacchi * 17*35786f68SRobert Mustacchi * 2.1. This is your license from Intel Corp. under its intellectual property 18*35786f68SRobert Mustacchi * rights. You may have additional license terms from the party that provided 19*35786f68SRobert Mustacchi * you this software, covering your right to use that party's intellectual 20*35786f68SRobert Mustacchi * property rights. 21*35786f68SRobert Mustacchi * 22*35786f68SRobert Mustacchi * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 23*35786f68SRobert Mustacchi * copy of the source code appearing in this file ("Covered Code") an 24*35786f68SRobert Mustacchi * irrevocable, perpetual, worldwide license under Intel's copyrights in the 25*35786f68SRobert Mustacchi * base code distributed originally by Intel ("Original Intel Code") to copy, 26*35786f68SRobert Mustacchi * make derivatives, distribute, use and display any portion of the Covered 27*35786f68SRobert Mustacchi * Code in any form, with the right to sublicense such rights; and 28*35786f68SRobert Mustacchi * 29*35786f68SRobert Mustacchi * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 30*35786f68SRobert Mustacchi * license (with the right to sublicense), under only those claims of Intel 31*35786f68SRobert Mustacchi * patents that are infringed by the Original Intel Code, to make, use, sell, 32*35786f68SRobert Mustacchi * offer to sell, and import the Covered Code and derivative works thereof 33*35786f68SRobert Mustacchi * solely to the minimum extent necessary to exercise the above copyright 34*35786f68SRobert Mustacchi * license, and in no event shall the patent license extend to any additions 35*35786f68SRobert Mustacchi * to or modifications of the Original Intel Code. No other license or right 36*35786f68SRobert Mustacchi * is granted directly or by implication, estoppel or otherwise; 37*35786f68SRobert Mustacchi * 38*35786f68SRobert Mustacchi * The above copyright and patent license is granted only if the following 39*35786f68SRobert Mustacchi * conditions are met: 40*35786f68SRobert Mustacchi * 41*35786f68SRobert Mustacchi * 3. Conditions 42*35786f68SRobert Mustacchi * 43*35786f68SRobert Mustacchi * 3.1. Redistribution of Source with Rights to Further Distribute Source. 44*35786f68SRobert Mustacchi * Redistribution of source code of any substantial portion of the Covered 45*35786f68SRobert Mustacchi * Code or modification with rights to further distribute source must include 46*35786f68SRobert Mustacchi * the above Copyright Notice, the above License, this list of Conditions, 47*35786f68SRobert Mustacchi * and the following Disclaimer and Export Compliance provision. In addition, 48*35786f68SRobert Mustacchi * Licensee must cause all Covered Code to which Licensee contributes to 49*35786f68SRobert Mustacchi * contain a file documenting the changes Licensee made to create that Covered 50*35786f68SRobert Mustacchi * Code and the date of any change. Licensee must include in that file the 51*35786f68SRobert Mustacchi * documentation of any changes made by any predecessor Licensee. Licensee 52*35786f68SRobert Mustacchi * must include a prominent statement that the modification is derived, 53*35786f68SRobert Mustacchi * directly or indirectly, from Original Intel Code. 54*35786f68SRobert Mustacchi * 55*35786f68SRobert Mustacchi * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 56*35786f68SRobert Mustacchi * Redistribution of source code of any substantial portion of the Covered 57*35786f68SRobert Mustacchi * Code or modification without rights to further distribute source must 58*35786f68SRobert Mustacchi * include the following Disclaimer and Export Compliance provision in the 59*35786f68SRobert Mustacchi * documentation and/or other materials provided with distribution. In 60*35786f68SRobert Mustacchi * addition, Licensee may not authorize further sublicense of source of any 61*35786f68SRobert Mustacchi * portion of the Covered Code, and must include terms to the effect that the 62*35786f68SRobert Mustacchi * license from Licensee to its licensee is limited to the intellectual 63*35786f68SRobert Mustacchi * property embodied in the software Licensee provides to its licensee, and 64*35786f68SRobert Mustacchi * not to intellectual property embodied in modifications its licensee may 65*35786f68SRobert Mustacchi * make. 66*35786f68SRobert Mustacchi * 67*35786f68SRobert Mustacchi * 3.3. Redistribution of Executable. Redistribution in executable form of any 68*35786f68SRobert Mustacchi * substantial portion of the Covered Code or modification must reproduce the 69*35786f68SRobert Mustacchi * above Copyright Notice, and the following Disclaimer and Export Compliance 70*35786f68SRobert Mustacchi * provision in the documentation and/or other materials provided with the 71*35786f68SRobert Mustacchi * distribution. 72*35786f68SRobert Mustacchi * 73*35786f68SRobert Mustacchi * 3.4. Intel retains all right, title, and interest in and to the Original 74*35786f68SRobert Mustacchi * Intel Code. 75*35786f68SRobert Mustacchi * 76*35786f68SRobert Mustacchi * 3.5. Neither the name Intel nor any other trademark owned or controlled by 77*35786f68SRobert Mustacchi * Intel shall be used in advertising or otherwise to promote the sale, use or 78*35786f68SRobert Mustacchi * other dealings in products derived from or relating to the Covered Code 79*35786f68SRobert Mustacchi * without prior written authorization from Intel. 80*35786f68SRobert Mustacchi * 81*35786f68SRobert Mustacchi * 4. Disclaimer and Export Compliance 82*35786f68SRobert Mustacchi * 83*35786f68SRobert Mustacchi * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 84*35786f68SRobert Mustacchi * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 85*35786f68SRobert Mustacchi * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 86*35786f68SRobert Mustacchi * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 87*35786f68SRobert Mustacchi * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 88*35786f68SRobert Mustacchi * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 89*35786f68SRobert Mustacchi * PARTICULAR PURPOSE. 90*35786f68SRobert Mustacchi * 91*35786f68SRobert Mustacchi * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 92*35786f68SRobert Mustacchi * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 93*35786f68SRobert Mustacchi * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 94*35786f68SRobert Mustacchi * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 95*35786f68SRobert Mustacchi * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 96*35786f68SRobert Mustacchi * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 97*35786f68SRobert Mustacchi * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 98*35786f68SRobert Mustacchi * LIMITED REMEDY. 99*35786f68SRobert Mustacchi * 100*35786f68SRobert Mustacchi * 4.3. Licensee shall not export, either directly or indirectly, any of this 101*35786f68SRobert Mustacchi * software or system incorporating such software without first obtaining any 102*35786f68SRobert Mustacchi * required license or other approval from the U. S. Department of Commerce or 103*35786f68SRobert Mustacchi * any other agency or department of the United States Government. In the 104*35786f68SRobert Mustacchi * event Licensee exports any such software from the United States or 105*35786f68SRobert Mustacchi * re-exports any such software from a foreign destination, Licensee shall 106*35786f68SRobert Mustacchi * ensure that the distribution and export/re-export of the software is in 107*35786f68SRobert Mustacchi * compliance with all laws, regulations, orders, or other restrictions of the 108*35786f68SRobert Mustacchi * U.S. Export Administration Regulations. Licensee agrees that neither it nor 109*35786f68SRobert Mustacchi * any of its subsidiaries will export/re-export any technical data, process, 110*35786f68SRobert Mustacchi * software, or service, directly or indirectly, to any country for which the 111*35786f68SRobert Mustacchi * United States government or any agency thereof requires an export license, 112*35786f68SRobert Mustacchi * other governmental approval, or letter of assurance, without first obtaining 113*35786f68SRobert Mustacchi * such license, approval or letter. 114*35786f68SRobert Mustacchi * 115*35786f68SRobert Mustacchi ***************************************************************************** 116*35786f68SRobert Mustacchi * 117*35786f68SRobert Mustacchi * Alternatively, you may choose to be licensed under the terms of the 118*35786f68SRobert Mustacchi * following license: 119*35786f68SRobert Mustacchi * 120bc36eafdSMike Gerdts * Redistribution and use in source and binary forms, with or without 121bc36eafdSMike Gerdts * modification, are permitted provided that the following conditions 122bc36eafdSMike Gerdts * are met: 123bc36eafdSMike Gerdts * 1. Redistributions of source code must retain the above copyright 124bc36eafdSMike Gerdts * notice, this list of conditions, and the following disclaimer, 125bc36eafdSMike Gerdts * without modification. 126bc36eafdSMike Gerdts * 2. Redistributions in binary form must reproduce at minimum a disclaimer 127bc36eafdSMike Gerdts * substantially similar to the "NO WARRANTY" disclaimer below 128bc36eafdSMike Gerdts * ("Disclaimer") and any redistribution must be conditioned upon 129bc36eafdSMike Gerdts * including a substantially similar Disclaimer requirement for further 130bc36eafdSMike Gerdts * binary redistribution. 131bc36eafdSMike Gerdts * 3. Neither the names of the above-listed copyright holders nor the names 132bc36eafdSMike Gerdts * of any contributors may be used to endorse or promote products derived 133bc36eafdSMike Gerdts * from this software without specific prior written permission. 134bc36eafdSMike Gerdts * 135*35786f68SRobert Mustacchi * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 136*35786f68SRobert Mustacchi * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 137*35786f68SRobert Mustacchi * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 138*35786f68SRobert Mustacchi * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 139*35786f68SRobert Mustacchi * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 140*35786f68SRobert Mustacchi * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 141*35786f68SRobert Mustacchi * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 142*35786f68SRobert Mustacchi * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 143*35786f68SRobert Mustacchi * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 144*35786f68SRobert Mustacchi * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 145*35786f68SRobert Mustacchi * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 146*35786f68SRobert Mustacchi * 147*35786f68SRobert Mustacchi * Alternatively, you may choose to be licensed under the terms of the 148bc36eafdSMike Gerdts * GNU General Public License ("GPL") version 2 as published by the Free 149bc36eafdSMike Gerdts * Software Foundation. 150bc36eafdSMike Gerdts * 151*35786f68SRobert Mustacchi *****************************************************************************/ 152bc36eafdSMike Gerdts 153bc36eafdSMike Gerdts #include "aslcompiler.h" 154bc36eafdSMike Gerdts #include "dtparser.y.h" 155bc36eafdSMike Gerdts 156bc36eafdSMike Gerdts #define YY_NO_INPUT /* No file input, we use strings only */ 157bc36eafdSMike Gerdts 158bc36eafdSMike Gerdts #define _COMPONENT ACPI_COMPILER 159bc36eafdSMike Gerdts ACPI_MODULE_NAME ("dtscanner") 160bc36eafdSMike Gerdts %} 161bc36eafdSMike Gerdts 162bc36eafdSMike Gerdts %option noyywrap 163bc36eafdSMike Gerdts %option nounput 164bc36eafdSMike Gerdts 165bc36eafdSMike Gerdts Number [0-9a-fA-F]+ 166bc36eafdSMike Gerdts HexNumber 0[xX][0-9a-fA-F]+ 167bc36eafdSMike Gerdts DecimalNumber 0[dD][0-9]+ 168bc36eafdSMike Gerdts LabelRef $[a-zA-Z][0-9a-zA-Z]* 169bc36eafdSMike Gerdts WhiteSpace [ \t\v\r]+ 170bc36eafdSMike Gerdts NewLine [\n] 171bc36eafdSMike Gerdts 172bc36eafdSMike Gerdts %% 173bc36eafdSMike Gerdts 174*35786f68SRobert Mustacchi \( return (OP_EXP_PAREN_OPEN); 175*35786f68SRobert Mustacchi \) return (OP_EXP_PAREN_CLOSE); 176*35786f68SRobert Mustacchi \~ return (OP_EXP_ONES_COMPLIMENT); 177*35786f68SRobert Mustacchi \! return (OP_EXP_LOGICAL_NOT); 178*35786f68SRobert Mustacchi \* return (OP_EXP_MULTIPLY); 179*35786f68SRobert Mustacchi \/ return (OP_EXP_DIVIDE); 180*35786f68SRobert Mustacchi \% return (OP_EXP_MODULO); 181*35786f68SRobert Mustacchi \+ return (OP_EXP_ADD); 182*35786f68SRobert Mustacchi \- return (OP_EXP_SUBTRACT); 183*35786f68SRobert Mustacchi ">>" return (OP_EXP_SHIFT_RIGHT); 184*35786f68SRobert Mustacchi "<<" return (OP_EXP_SHIFT_LEFT); 185*35786f68SRobert Mustacchi \< return (OP_EXP_LESS); 186*35786f68SRobert Mustacchi \> return (OP_EXP_GREATER); 187*35786f68SRobert Mustacchi "<=" return (OP_EXP_LESS_EQUAL); 188*35786f68SRobert Mustacchi ">=" return (OP_EXP_GREATER_EQUAL); 189*35786f68SRobert Mustacchi "==" return (OP_EXP_EQUAL); 190*35786f68SRobert Mustacchi "!=" return (OP_EXP_NOT_EQUAL); 191*35786f68SRobert Mustacchi \& return (OP_EXP_AND); 192*35786f68SRobert Mustacchi \^ return (OP_EXP_XOR); 193*35786f68SRobert Mustacchi \| return (OP_EXP_OR); 194*35786f68SRobert Mustacchi "&&" return (OP_EXP_LOGICAL_AND); 195*35786f68SRobert Mustacchi "||" return (OP_EXP_LOGICAL_OR); 196*35786f68SRobert Mustacchi <<EOF>> return (OP_EXP_EOF); /* null end-of-string */ 197bc36eafdSMike Gerdts 198*35786f68SRobert Mustacchi {LabelRef} return (OP_EXP_LABEL); 199*35786f68SRobert Mustacchi {Number} return (OP_EXP_NUMBER); 200*35786f68SRobert Mustacchi {HexNumber} return (OP_EXP_HEX_NUMBER); 201*35786f68SRobert Mustacchi {NewLine} return (OP_EXP_NEW_LINE); 202bc36eafdSMike Gerdts {WhiteSpace} /* Ignore */ 203bc36eafdSMike Gerdts 204*35786f68SRobert Mustacchi . return (OP_EXP_EOF); 205bc36eafdSMike Gerdts 206bc36eafdSMike Gerdts %% 207bc36eafdSMike Gerdts 208bc36eafdSMike Gerdts /* 209bc36eafdSMike Gerdts * Local support functions 210bc36eafdSMike Gerdts */ 211bc36eafdSMike Gerdts YY_BUFFER_STATE LexBuffer; 212bc36eafdSMike Gerdts 213bc36eafdSMike Gerdts /****************************************************************************** 214bc36eafdSMike Gerdts * 215bc36eafdSMike Gerdts * FUNCTION: DtInitLexer, DtTerminateLexer 216bc36eafdSMike Gerdts * 217bc36eafdSMike Gerdts * PARAMETERS: String - Input string to be parsed 218bc36eafdSMike Gerdts * 219bc36eafdSMike Gerdts * RETURN: None 220bc36eafdSMike Gerdts * 221bc36eafdSMike Gerdts * DESCRIPTION: Initialization and termination routines for lexer. Lexer needs 222bc36eafdSMike Gerdts * a buffer to handle strings instead of a file. 223bc36eafdSMike Gerdts * 224bc36eafdSMike Gerdts *****************************************************************************/ 225bc36eafdSMike Gerdts 226bc36eafdSMike Gerdts int 227bc36eafdSMike Gerdts DtInitLexer ( 228bc36eafdSMike Gerdts char *String) 229bc36eafdSMike Gerdts { 230bc36eafdSMike Gerdts 231bc36eafdSMike Gerdts LexBuffer = yy_scan_string (String); 232bc36eafdSMike Gerdts return (LexBuffer == NULL); 233bc36eafdSMike Gerdts } 234bc36eafdSMike Gerdts 235bc36eafdSMike Gerdts void 236bc36eafdSMike Gerdts DtTerminateLexer ( 237bc36eafdSMike Gerdts void) 238bc36eafdSMike Gerdts { 239bc36eafdSMike Gerdts 240bc36eafdSMike Gerdts yy_delete_buffer (LexBuffer); 241bc36eafdSMike Gerdts } 242