Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/IDE/Menu/Debug.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ permalink: /tB/IDE/Project/Menu/Debug

## Debugger Options

![Debugger Options | Debug Menu](Images/Menu_Debug_DebuggerOptions.png "Debugger Options | Debug Menu")
![Debugger Options - Debug Menu](Images/Menu_Debug_DebuggerOptions.png "Debugger Options - Debug Menu")

- Break On All Errors
- ✔ Allow Breakpoints (Debuggable)

![Debugger Options | Debug Menu](Images/Menu_Debug_DebuggerOptions_2.png "Debugger Options | Debug Menu")
![Debugger Options - Debug Menu](Images/Menu_Debug_DebuggerOptions_2.png "Debugger Options - Debug Menu")
2 changes: 1 addition & 1 deletion docs/IDE/Menu/Help.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ permalink: /tB/IDE/Project/Menu/Help

## About twinBASIC...

![About | Help Menu](Images/Menu_Help_About.png "About | Help Menu")
![About - Help Menu](Images/Menu_Help_About.png "About - Help Menu")

## Licence Agreement...

Expand Down
6 changes: 3 additions & 3 deletions docs/IDE/Menu/Window.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ permalink: /tB/IDE/Project/Menu/Window
![Window Panel Layouts Default Menu](Images/Menu_Window_PanelLayouts_ManagePanelLayouts_Default.png "Window Panel Layouts Default Menu")

<details>
<summary>&lt;DEFAULT&gt; (built-in)</summary>
<summary markdown=span>&lt;DEFAULT&gt; (built-in)</summary>

```json
{
Expand Down Expand Up @@ -149,7 +149,7 @@ permalink: /tB/IDE/Project/Menu/Window
![Window Panel Layouts Fullscreen Menu](Images/Menu_Window_PanelLayouts_ManagePanelLayouts_Fullscreen.png "Window Panel Layouts Fullscreen Menu")

<details>
<summary>&lt;FULLSCREEN&gt; (built-in)</summary>
<summary markdown=span>&lt;FULLSCREEN&gt; (built-in)</summary>

```json
{
Expand Down Expand Up @@ -226,7 +226,7 @@ permalink: /tB/IDE/Project/Menu/Window
![Window Keyboard Shortcuts - Manage Keyboard Shortcuts Menu](Images/Menu_Window_KeyboardShortcuts_ManageKeyboardShortcuts_1.png "Window Keyboard Shortcuts - Manage Keyboard Shortcuts Menu")

<details>
<summary>Options</summary>
<summary markdown=span>Options</summary>

```json
{
Expand Down
146 changes: 59 additions & 87 deletions docs/Miscellaneous/FAQs.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/Reference/Core/Option.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ When a module contains **Option Private Module**, the public parts, for example,
> [!NOTE]
> **Option Private** is a more verbose way of making modules or classes private to the package. An equivalent effect in a less verbose fashion is obtained with [**Private**](Private) statement as follows:
>
> ``` vb
> ```tb
> Private Module MyModule
> ' ...
> End Module
Expand Down
2 changes: 1 addition & 1 deletion docs/Reference/Glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -588,7 +588,7 @@ A file in a twinBASIC project that can contain bitmaps, text strings, or other d

## RGB

A color value system used to describe colors as a mixture of red (R), green (G), and blue (B). The color is defined as a set of three integers (R, G, B) where each integer ranges from 0&ndash;255. A value of 0 indicates a total absence of a color component; a value of 255 indicates the highest intensity of a color component. See [**RGB**](Modules/Information/RGB) and [**RGBA**](Modules/Information/RGBA).
A color value system used to describe colors as a mixture of red \(R\), green (G), and blue (B). The color is defined as a set of three integers (R, G, B) where each integer ranges from 0&ndash;255. A value of 0 indicates a total absence of a color component; a value of 255 indicates the highest intensity of a color component. See [**RGB**](Modules/Information/RGB) and [**RGBA**](Modules/Information/RGBA).

## run time

Expand Down
29 changes: 28 additions & 1 deletion docs/_plugins/twinbasic.rb
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,18 @@ def self.builtins
end

state :dotted do
mixin :whitespace
# The :dotted state handles `obj.member` (member access). It
# should NOT span newlines: in twinBASIC a statement ends at
# the newline unless explicitly continued with `_`, so an
# identifier on the NEXT line is not a member-access
# continuation and should be lexed by the normal root rules
# (which would, for instance, recognise `Exit Sub` as one
# Keyword instead of `Name + Keyword`). The original mixin
# `:whitespace` rule pushed `:bol` on `\n`, leaving `:dotted`
# on the stack and mis-classifying the next line's first
# identifier.
rule %r/_[ \t]*\n[ \t]*/, Punctuation::LineContinuation
rule %r/[^\S\n]+/, Text
rule %r/#{id}[%&@!#$]?/, Name, :pop!
rule(//) { pop! }
end
Expand All @@ -177,6 +188,18 @@ def self.builtins
end

state :attrargs do
# Multi-line attribute argument lists use the standard `&` /
# `+` concat-and-line-continuation idiom inside the parens:
#
# [Description("first part " & _
# "second part")]
#
# The original state lacked rules for `&` (concat operator)
# and the `_[ \t]*\n` line continuation, so they fell through
# to the empty-match `(//) { pop! }` -- which popped out of
# `:attrargs` prematurely, leaving the closing `)]` to be
# tokenised in the wrong state (the `]` ended up as Error).
rule %r/_[ \t]*\n[ \t]*/, Punctuation::LineContinuation
rule %r/[^\S\n]+/, Text
rule %r/\)/, Punctuation, :pop!
rule %r/,/, Punctuation
Expand All @@ -186,6 +209,10 @@ def self.builtins
rule %r/&O[0-7]+(_[0-7]+)*[%&!#@]?/i, Num::Integer
rule %r/&B[01]+(_[01]+)*[%&!#@]?/i, Num::Integer
rule %r/\d+[%&!#@]?/, Num::Integer
rule(
%r(&=|[*]=|/=|\\=|\^=|\+=|-=|<<=|>>=|<<|>>|:=|<=|>=|<>|[-&*/\\^+=<>]),
Operator
)
rule id do |m|
key = m[0].downcase
if (kc = self.class.keyword_constants[key])
Expand Down
Loading