CodeQL documentation

QL language referenceΒΆ

Learn all about QL, the powerful query language that underlies the code scanning tool CodeQL.

  • About the QL language: QL is the powerful query language that underlies CodeQL, which is used to analyze code.

  • Predicates: Predicates are used to describe the logical relations that make up a QL program.

  • Queries: Queries are the output of a QL program. They evaluate to sets of results.

  • Types: QL is a statically typed language, so each variable must have a declared type.

  • Modules: Modules provide a way of organizing QL code by grouping together related types, predicates, and other modules.

  • Signatures: Signatures provide a typing mechanism to parameters of parameterized modules.

  • Aliases: An alias is an alternative name for an existing QL entity.

  • Variables: Variables in QL are used in a similar way to variables in algebra or logic. They represent sets of values, and those values are usually restricted by a formula.

  • Expressions: An expression evaluates to a set of values and has a type.

  • Formulas: Formulas define logical relations between the free variables used in expressions.

  • Annotations: An annotation is a string that you can place directly before the declaration of a QL entity or name.

  • Recursion: QL provides strong support for recursion. A predicate in QL is said to be recursive if it depends, directly or indirectly, on itself.

  • Lexical syntax: The QL syntax includes different kinds of keywords, identifiers, and comments.

  • Name resolution: The QL compiler resolves names to program elements.

  • Evaluation of QL programs: A QL program is evaluated in a number of different steps.

  • QL language specification: A formal specification for the QL language. It provides a comprehensive reference for terminology, syntax, and other technical details about QL.

  • © GitHub, Inc.
  • Terms
  • Privacy
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy