Rodin Keyboard

From Event-B
Revision as of 16:59, 27 January 2014 by imported>Nicolas
Jump to navigationJump to search

The Rodin Keyboard is an extensible keyboard for inputing mathematical formula (in Unicode). The Rodin keyboard provides the following facilities:

  • A ModifyListener (RodinModifyListener) that can be attached to a SWT widget. When the content of the widget is modified, the keyboard reacts and translate the content accordingly. Currently, RODIN Keyboard supports Text and StyledText widget.
  • An utility class Text2MathTranslator with a static method translate(String) for manually translating any string (or sub-part of a string) into mathematical formula.
  • An Eclipse View called Rodin Keyboard View which provides an text input area which will translate the input text into mathematical formula. This View can be found under category RODIN.

The Rodin Keyboard however does not contain any pre-defined translation rules for any mathematical symbols. Instead, this task is left for the developers who want to declare different "keyboards" corresponding to the mathematical language that they want to use. Moreover, different combinations can be used to enter the same mathematical symbols.

Currently, there are two keyboards available:

  • Standard keyboard for Event-B.
  • LaTeX-style keyboard for Event-B.

Specification

Definitions

  • Translator: mechanism that transforms a source chain into a target chain according to a set of transformation rules
  • Token: isolated character sequence in a chain
  • Transformation Rule: specification of the modification of a token sequence into another token sequence
  • Combination: particular case of transformation rule that transforms a single token into another single token

Requirements

  1. The translator must support contributed combinations
  2. The translator must be able to deal both with static translation of a whole chain and on the fly translation of a user input chain.


Transformation Rules