Btag, future programIndexHomeMaker
BTAG 1.01
BTag becomes a tool for creating text files and can be used for filtering text from files.
Beta release 1.01 is available
btag will be implemented in mcopy for manipulating text

For more info or programs give me an email with:
-your complete name
-your usage for the software
-your Operating System

Below is a description:
I will reply and send you the beta copy of version 1.01
Beta 1.01 is only the text generator and an example is available
If not available I also reply (OS)

A brief description of the main language
BTAG is used for producing text and is Object Oriented.
The TAG stands for Tag.
There are several kind of tags:
a) The text tag
b) The lines tag
c) The code tag
d) The concat tag
e) The concatcode tag
f) The split tag also named Class

Normal usage of a tag is:
([name] [text|lines|code|concat|concatcode|split


a) The text tag
    A definition of text. When printed lines will be
    put after eachother seperated by character space.
    The beginning whitespace characters will be removed.
b) The lines tag
    Lines will be put after eachother
c) The code tag
    Lines will be put as is
d) The concat tag
    Lines will be put after eachother with no seperation
e) The concatcode tag
    Lines will be put after eachother with no seperation
    The beginning whitespace characters will not be removed.
f) The split tag also named Class
    Exists of many commands and will be further explained.

All tags except the Split Tag will start in rpublic

The Split tag:

([name] split



Class [name]


There are several commands for split:
a) use                  For calling another command
b) line                 Produces output
c) text                 Produces output
d) uselist              For calling other commands
e) inherit              For inheriting
f) filenew              Opens a new file
g) fileappend           Opens a file to append to it
h) usearound            Calling other commands
i) code                 Produces output
j) fileclose            Closes a file
k) filenewreopen        Reopens a file (deleting the previous)
l) fileappendreopen     Reopens a file for appending
m) concat               Produces output
n) concatcode           Produces output
o) usefile              Indicate to us a file
p) system               Call a system procedure
q) procedure            A definition of a procedure
r) function             A definition of a function
s) private              To set the next commands private
t) protected            To set the next commands protected 
u) public               To set the next commands public
v) rpublic              To set the next commands rpublic

a) use             
    Syntax: use [name] [command]
    command can be:
    1) an inherited command: .name
        will look to upper level (public and rpublic)
        and then this (all) and then lower
        using the inherit block (protected and public and rpublic)
    2) a command in himself:
        will look only in himself (all)
    3) a command somewhere else:
        will look somewhere else (public and rpublic)
    4) a Class name: Classname
        will run the rpublic commands
b) line
    Syntax: line [name] 
c) text
    text [name]
d) uselist         
    uselist [name]
e) inherit         
f) filenew         
    Syntax: filenew [name] [filename inside "..."]
g) fileappend
    Syntax: fileappend [name] [filename inside "..."]
h) usearound       
        usearound [name] [what to use]
    will use the "begin" and "end" names of what to use to
    put this around the commands.
i) code            
        code [name]
j) fileclose
    Syntax: fileclose [name]
k) filenewreopen   
    Syntax: filenewreopen [name]
l) fileappendreopen
    Syntax: fileappendreopen [name]
m) concat          
        concat [name]
n) concatcode      
        concatcode [name]
o) usefile         
    Syntax: usefile [name] [name to use]
p) system          
    Syntax: system [name] ["System command"]
q) procedure       
        procedure [name]()
r) function (later)
        function [name]() : [type to return]

s) private
    Syntax: private
    This is an pre-compiler statement
t) protected       
    Syntax: protected
    This is an pre-compiler statement

u) public          
    Syntax: public
    This is an pre-compiler statement

v) rpublic         
    Syntax: rpublic
    This is an pre-compiler statement

The first syntax I've use for commands is that
all commands begins with a dot. It also works.

Explanation of the encapsulation

public: All classes can access these commands
protected: Only himself and inherited classes have access
private: Only himself has access
rpublic: Commands for execution

Explanation of inheritance

Inheritance is declarated by the command inherit
The engine will search downwards in this list 
to find a commmand that can be used.
By default this command is protected.
All other commands are privated by default.

The beginning for a program

Programs always start with the Class called main.
There has to be a rpublic commands defined to have
something to execute.

Included software