<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/126563>126563</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Implement Root Signature Lexer for Descriptor Tables
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          inbelic
      </td>
    </tr>
</table>

<pre>
    This issue handles the lexing of a root signature string into a token representation of the data. Specifically, it handles and defines all the tokens required for a Descriptor Table and its clauses.

For the sake of scope, we will let the lexing of floating literals be deferred until needed for Static Samplers. Other than that this pr should allow us to simply define new enumerations/keywords in `RootSignatureTokenKinds.def` for when they are used in the parser. We could have define all of these keywords here, but for the sake of correctness in review we will let them be split up.

AC:
- [ ] Define `RootSignatureLexer` and provide a public `LexToken` method for external use
- [ ] Implement the internal methods required to parse the different types of tokens (integers, flag enums, puncuators...)
- [ ] Add test harness for unit testing and the respective unit tests for lexing the tokens
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxcVM1u4zgMfhrnQtRwlDodH3zoTBHsYgsssCmwZ9miY20VyUtSSfP2AyqZdtpL7Fgivx9-kmX2h4jYV-33qn1a2Sxzot7HAYMfV0Nyl_5l9gyeOSPMNrqADDIjBHzz8QBpAguUkoB2spIJgYV0yUdJYEHSK0YgXAgZo1jxKWqZNnFWbA37BUc_-dGGcKnMD_DyjmSjA4eTj_oeQikqDRkI_8-e0MGUCCw8IY_kF0kEL3YIWEq9MIzBZkauq-axah53iUoTtq-oLHhMCyroGeHsQ4CA8kXfFJIVfQ9ekGxgGFBJISl6juIDRER3o7JXiSPs7XEJSFzD3zKjgtqoP9rdMywEPKccnMpKZ8gMkoD9cQmXm2KIeAaM-YhUTOPK7F7xck7kGHyEatv8k5Lsf_n-or785aPj2uFUbZtC5zyj4uIFLCFkRqe1qnCxxEg1_IswFiazPeEvbDX7OiRGeEedkYpZQ5bS_Hcnx0SEo0Tkwo7w5PH81dajesdL8AJ5uY3k8Ue10ecdVO13qNoneLpy-CrwGd-QVJeOdqF08g7BwpKH4Efd_YxvxQTdc0SZ03Ui-CZI0QZV_wnnTx3REeN14j7etl1Lf0uYpKtZ18z6aUIqRZcFubh0TWRlvmmPAxKrSVOwhzK_8m_JccxWEnFd15XpPhF5dA4EWXNPxUClnaOX8lWzp5IVnZAXHMWf8GP9uv0W2I8TsnL9xnWbzq6wXz9sOrNeN83Dau63ZpzabpyaYT25zrbbhwZd106T29ih65qV701j2sasm_U3rakfbGM7sx7ut5v23rXr6r7Bo_WhDuF0rBMdVuWC6Ndm2243q2AHDFwuFWM0xWW1MkbvGOq16G7IB67um-BZ-KONeAnlNvrjef_8eUQaBXjPApQwFOFfTz6vMoV-FllYg2V2ldkdvMx5qMd0rMxO0W6Pu4XSfzhKZXaFo56xm4hTb34GAAD___aNxRs">