//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2010, 2026 Contributors to the Eclipse Foundation
//
// See the NOTICE file(s) distributed with this work for additional
// information regarding copyright ownership.
//
// This program and the accompanying materials are made available
// under the terms of the MIT License which is available at
// https://opensource.org/licenses/MIT
//
// SPDX-License-Identifier: MIT
//////////////////////////////////////////////////////////////////////////////

// Including common attributes to set for all documents within this directory.
include::_root_attributes.asciidoc[]

// Enable inclusion of custom content from '*-docinfo*.html' files.
:docinfo: private

// Enable custom stylesheet.
:stylesheet: assets/asciidoctor-escet-tooldef.css

// Use this for asciidoc documents containing a title.
:doctype: book

= ToolDef documentation
:author: Copyright (c) 2010, 2026 Contributors to the Eclipse Foundation
:favicon: favicon.png

ToolDef is a cross-platform and machine-independent scripting language.
It supports command line execution, but is also available as plug-in for the link:https://eclipse.org[Eclipse] IDE, providing an integrated development experience.

ToolDef is one of the tools of the Eclipse ESCET(TM) project.
Visit the link:https://eclipse.dev/escet/{escet-deploy-folder-name}[project website] for downloads, installation instructions, source code, general tool usage information, information on how to contribute, and more.

ifdef::website-output[]
TIP: You can link:eclipse-escet-tooldef-manual.pdf[download this manual] as a PDF as well.
endif::website-output[]

The documentation consists of:

* <<user-man-chapter-index,ToolDef user manual>>
* <<lang-ref-chapter-index,ToolDef language reference manual>>
* <<interpreter-chapter-index,ToolDef interpreter>>
* <<release-notes-chapter-index,ToolDef release notes>>
* <<legal-chapter-index,Legal information>>

Some screenshots of ToolDef editing and execution:

image::{imgsdir}/screenshot_ide.png[]

image::{imgsdir}/screenshot_cmdline.png[]

// Introduction

include::introduction.asciidoc[leveloffset=+2]

// User manual.

include::user-manual/index.asciidoc[leveloffset=+2]

include::user-manual/import-tooldef.asciidoc[leveloffset=+3]

include::user-manual/import-java-method.asciidoc[leveloffset=+3]

// Language reference manual

include::language-reference/index.asciidoc[leveloffset=+2]

[[virtual-toc-entry--lang-ref-syntax]]
=== Syntax

include::language-reference/syntax/lexical.asciidoc[leveloffset=+4]

include::language-reference/syntax/grammar.asciidoc[leveloffset=+4]

[[virtual-toc-entry--lang-ref-builtins]]
=== Built-in tools and operators

include::language-reference/builtins/operators.asciidoc[leveloffset=+4]

include::language-reference/builtins/data.asciidoc[leveloffset=+4]

include::language-reference/builtins/io.asciidoc[leveloffset=+4]

include::language-reference/builtins/generic.asciidoc[leveloffset=+4]

include::language-reference/builtins/path.asciidoc[leveloffset=+4]

include::language-reference/builtins/file.asciidoc[leveloffset=+4]

// ToolDef interpreter

include::interpreter.asciidoc[leveloffset=+2]

// Release notes

include::release-notes.asciidoc[leveloffset=+2]

// Legal

include::documentation-legal.asciidoc[leveloffset=+2]

ifdef::pdf-output[]
[index]
== Index
endif::pdf-output[]
