RE: Need to write a language

2006-10-26 Thread Billy Patton
Thanks, eveything soundes goo so far.
I'll just have to determine if I can create the language for more of the
difficult rules 

 -Original Message-
 From: Peter Hodge [mailto:[EMAIL PROTECTED] 
 Sent: Wednesday, October 25, 2006 6:04 PM
 To: Billy Patton; vim@vim.org
 Subject: Re: Need to write a language
 
 --- Billy Patton [EMAIL PROTECTED] wrote:
 
  I'm in the semiconductor industry.  My job is to create data and to 
  run regression tests on that data for the validation of 
 physical layout rules.
  
  Skip to bottom for questions, if you don't want to read my 
 ramblings. 
  
  
  The current problem is tha the rules are not in a computer 
 readable form.
  Many paople have a hand in writing different sections of 
 the rules, so 
  you can imagine that the wording is widely varied.  There is no 
  standard to wording or even the dialog used.
  
  One of the things I have been ask to do is to try and get a 
 handle on 
  how the rules may be written that that they are computer readable.
  I've been working with perl hash's and excel spread sheets.
  The main problem I was having was that I was trying to decreace the 
  relationship words and increase the number of variables.  This was 
  quickly resulting in a spread sheet that was growing (number of 
  columns) very rapidly.  I assume excel has a limit to the 
 number of columns.
  
  The idea that I have come up with is to create a language 
 with limited 
  descriptive words.  Here is an example of a rule that might 
 be written 
  in a human readable form but also parsable by puter.
  
  MET1 spacing to MET1 is 45 if MET1 width is = 245 and = 100
  
  By looking at this
  MET1 is a layer
  Spacing width = = are relationships
  If is a constraint
  #'s are #'s
  
  I want to have them write correct by construction.
  
  Is it possible, in vim/gvim to open a special version of 
 vim so that 
  the user can begin to type, spac , and it would complete the word?
  Would it also be possible to not allow a word to be type'd if that 
  word was not in a list.
  
  Vim would have to open in edit mode and remain there for 
 most users, 
  until save/exit.  Most of the users of this would be hard core pc 
  users who think the only editor is word.  But there are a 
 few unix users.
  
  My questions.
  1. Can vim be configured to automatically start in edit mode?
  2. Can vim monitor each word that is being typed?
  3. Can vim do word completion?
  4. Can vim offer all possible spellings for partial word completion?
  If the answer to most of qeustion above is yes 5. Can I do the 
  programming?  I do perl, c, c++, csh and sh programming.
 
 
 Hello,
 
 As well as completing words, it would be very helpful if you 
 wrote a syntax file for your language. If your users see 
 things in color, they can be sure they have typed the 
 commands correctly, but if the text is *not* colored, then 
 they will know they've got something wrong.
 
 Something else you may want to consider - Map F5 to call a 
 perl script which examines the line under the cursor and 
 prints a message explaining what needs to be typed next.
 
 regards,
 Peter
 
 
 
   
 
 On Yahoo!7
 Win VIP tickets to meet R'n'B stars superstars Ne-Yo and 
 Rihanna 
 http://advision.webevents.yahoo.com/aunz/music/jay_z_promotion
 /index.htm 
 
 



Re: Need to write a language

2006-10-26 Thread A.J.Mechelynck

Peter Hodge wrote:
[...]

Hello,

As well as completing words, it would be very helpful if you wrote a syntax
file for your language. If your users see things in color, they can be sure
they have typed the commands correctly, but if the text is *not* colored, then


...or if it is highlighted as Error (by default, white on red)...


they will know they've got something wrong.

Something else you may want to consider - Map F5 to call a perl script which
examines the line under the cursor and prints a message explaining what needs
to be typed next.

regards,
Peter


Vim can interface with perl, python, ruby, tcl and/or mzscheme but only if the 
corresponding interface is compiled-in and if the necessary libraries are 
present (and can be found) at both compile-time and runtime. Plain vimscript 
is usually enough to program anything that Vim can do.



Best regards,
Tony.


Need to write a language

2006-10-25 Thread Billy Patton
I'm in the semiconductor industry.  My job is to create data and to run
regression tests on that data for the validation of physical layout rules.

Skip to bottom for questions, if you don't want to read my ramblings. 


The current problem is tha the rules are not in a computer readable form.
Many paople have a hand in writing different sections of the rules, so you
can imagine that the wording is widely varied.  There is no standard to
wording or even the dialog used.

One of the things I have been ask to do is to try and get a handle on how
the rules may be written that that they are computer readable.
I've been working with perl hash's and excel spread sheets.
The main problem I was having was that I was trying to decreace the
relationship words and increase the number of variables.  This was quickly
resulting in a spread sheet that was growing (number of columns) very
rapidly.  I assume excel has a limit to the number of columns.

The idea that I have come up with is to create a language with limited
descriptive words.  Here is an example of a rule that might be written in a
human readable form but also parsable by puter.

MET1 spacing to MET1 is 45 if MET1 width is = 245 and = 100

By looking at this
MET1 is a layer
Spacing width = = are relationships
If is a constraint
#'s are #'s

I want to have them write correct by construction.

Is it possible, in vim/gvim to open a special version of vim so that the
user can begin to type, spac , and it would complete the word?
Would it also be possible to not allow a word to be type'd if that word was
not in a list.

Vim would have to open in edit mode and remain there for most users, until
save/exit.  Most of the users of this would be hard core pc users who think
the only editor is word.  But there are a few unix users.

My questions.
1. Can vim be configured to automatically start in edit mode?
2. Can vim monitor each word that is being typed?
3. Can vim do word completion?
4. Can vim offer all possible spellings for partial word completion?
If the answer to most of qeustion above is yes
5. Can I do the programming?  I do perl, c, c++, csh and sh programming.



Re: Need to write a language

2006-10-25 Thread Karl Guertin

On 10/25/06, Billy Patton [EMAIL PROTECTED] wrote:

 I assume excel has a limit to the number of columns.


I believe the max is 65000 but that may be increased by now.


Is it possible, in vim/gvim to open a special version of vim so that the
user can begin to type, spac , and it would complete the word?


Yes.


Would it also be possible to not allow a word to be type'd if that word was
not in a list.


Harder, but probably.


My questions.
1. Can vim be configured to automatically start in edit mode?


Yes, but I forget what the setting is, you can just push it into
insert mode when you enter a buffer if nothing else.


2. Can vim monitor each word that is being typed?


You can remap the spacebar to trigger a function without difficulty or
you can monitor every keystroke if you want something fancier.

:help map.txt
:help map-arguments
:help autocmd
:help autocmd-events


3. Can vim do word completion?


Many types. :help completion


4. Can vim offer all possible spellings for partial word completion?


It does by default and you can view them as a menu if you're using Vim
7. If you want to provide a list of possible words to be completed, it
can be done by creating a ctags file.

:help completeopt


If the answer to most of qeustion above is yes
5. Can I do the programming?  I do perl, c, c++, csh and sh programming.


Most vim scripting is done in vimscript, which I consider to be fairly
close to bash/sh. You can also do scripting in Python. I'm not sure
about the perl interface.


Re: Need to write a language

2006-10-25 Thread Peter Hodge
--- Billy Patton [EMAIL PROTECTED] wrote:

 I'm in the semiconductor industry.  My job is to create data and to run
 regression tests on that data for the validation of physical layout rules.
 
 Skip to bottom for questions, if you don't want to read my ramblings. 
 
 
 The current problem is tha the rules are not in a computer readable form.
 Many paople have a hand in writing different sections of the rules, so you
 can imagine that the wording is widely varied.  There is no standard to
 wording or even the dialog used.
 
 One of the things I have been ask to do is to try and get a handle on how
 the rules may be written that that they are computer readable.
 I've been working with perl hash's and excel spread sheets.
 The main problem I was having was that I was trying to decreace the
 relationship words and increase the number of variables.  This was quickly
 resulting in a spread sheet that was growing (number of columns) very
 rapidly.  I assume excel has a limit to the number of columns.
 
 The idea that I have come up with is to create a language with limited
 descriptive words.  Here is an example of a rule that might be written in a
 human readable form but also parsable by puter.
 
 MET1 spacing to MET1 is 45 if MET1 width is = 245 and = 100
 
 By looking at this
 MET1 is a layer
 Spacing width = = are relationships
 If is a constraint
 #'s are #'s
 
 I want to have them write correct by construction.
 
 Is it possible, in vim/gvim to open a special version of vim so that the
 user can begin to type, spac , and it would complete the word?
 Would it also be possible to not allow a word to be type'd if that word was
 not in a list.
 
 Vim would have to open in edit mode and remain there for most users, until
 save/exit.  Most of the users of this would be hard core pc users who think
 the only editor is word.  But there are a few unix users.
 
 My questions.
 1. Can vim be configured to automatically start in edit mode?
 2. Can vim monitor each word that is being typed?
 3. Can vim do word completion?
 4. Can vim offer all possible spellings for partial word completion?
 If the answer to most of qeustion above is yes
 5. Can I do the programming?  I do perl, c, c++, csh and sh programming.


Hello,

As well as completing words, it would be very helpful if you wrote a syntax
file for your language. If your users see things in color, they can be sure
they have typed the commands correctly, but if the text is *not* colored, then
they will know they've got something wrong.

Something else you may want to consider - Map F5 to call a perl script which
examines the line under the cursor and prints a message explaining what needs
to be typed next.

regards,
Peter




 
On Yahoo!7 
Win VIP tickets to meet R'n'B stars superstars Ne-Yo and Rihanna 
http://advision.webevents.yahoo.com/aunz/music/jay_z_promotion/index.htm 



Re: Need to write a language

2006-10-25 Thread Benji Fisher
On Wed, Oct 25, 2006 at 06:42:15PM -0400, Karl Guertin wrote:
 On 10/25/06, Billy Patton [EMAIL PROTECTED] wrote:
 
 My questions.
 1. Can vim be configured to automatically start in edit mode?
 
 Yes, but I forget what the setting is, you can just push it into
 insert mode when you enter a buffer if nothing else.

Add

:set insertmode
:help 'insertmode'

 3. Can vim do word completion?
 
 Many types. :help completion

 Especially read

:help 'complete'
:help 'dictionary'

You may also find something worth borrowing in my word-completion plugin:
http://vim.sourceforge.net/scripts/script.php?script_id=73

 4. Can vim offer all possible spellings for partial word completion?
 
 It does by default and you can view them as a menu if you're using Vim
 7. If you want to provide a list of possible words to be completed, it
 can be done by creating a ctags file.
 
 :help completeopt

 I am not sure why you suggest a tags file, unless you intend

:set complete=t

I was thinking of 

:set complete=k/path/to/babylanguage.txt

 If the answer to most of qeustion above is yes
 5. Can I do the programming?  I do perl, c, c++, csh and sh programming.
 
 Most vim scripting is done in vimscript, which I consider to be fairly
 close to bash/sh. You can also do scripting in Python. I'm not sure
 about the perl interface.

 I suggest looking at some of the files in $VIMRUNTIME/plugin/ to
get an idea of what you can do with a vim script.  Then it helps to look
at the list of built-in functions,

:help functions

HTH --Benji Fisher