QL language handbook
####################

Welcome to the QL language handbook! 

This document describes the main features of the QL language. The explanations and examples
help you understand how the language works, and how to write more advanced QL code.

Each section describes an important concept or syntactic construct of QL. For an overview, see
the table of contents below.

If you are just getting started with QL, see `Learning CodeQL <https://help.semmle.com/QL/learn-ql/>`_
for a list of the available resources.

.. index:: specification

For a formal specification of the QL language, see the `QL language specification
<https://help.semmle.com/QL/ql-spec/language.html>`_.

Table of contents
*****************

.. toctree::
   :numbered: 3
   :maxdepth: 3

   predicates
   queries
   types
   modules
   aliases
   variables
   expressions
   formulas
   annotations
   recursion
   lexical-syntax
   name-resolution
   evaluation

Index and search
****************

* :ref:`genindex`
* :ref:`search`
