May 26, 2008

Hello World orientado a objetos

Em C++
$ gvim helloWorld.cpp
 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4
 5 class HelloWorld{
 6
 7 public:
 8         // construtor!
 9         HelloWorld(string mensagem) {
10                 this->_mensagem = mensagem;
11         }
12
13         // metodo show
14         void show() const {
15                 cout << "mensagem: "
16                      << this->_mensagem
17                      << endl;
18         }
19
20 private:
21         string _mensagem;
22 };
23
24 int main()
25 {
26         HelloWorld obj ("ola mundo");
27         obj.show();
28
29         return 0;
30 }


Compilando:
$ make helloWorld


Em Vim Script
 1 " metodos
 2 """""""""
 3
 4 function helloWorld#Show() dict
 5       echo s:message
 6 endfunction
 7
 8 function helloWorld#Get() dict
 9         call self.Show()
10 endfunction
11
12 function helloWorld#Set(message) dict
13         let s:message = a:message
14 endfunction
15
16
17 " Costrutor
18 """""""""""
19
20 function helloWorld#New(message)
21
22         let s:message = a:message
23
24         let Retval = {
25                         \ 'message': s:message,
26                         \ 'Set'         : function ('helloWorld#Set'),
27                         \ 'Get'         : function ('helloWorld#Get'),
28                         \ 'Show'   : function ('helloWorld#Show')
29         \}
30
31         return Retval
32
33 endfunction helloWorld#New


Usando:
$ cat usaHelloWorld.vim
let obj = helloWorld#New("Hello World")

echo "mensagem:" obj.message
echo "obj.Get:" | call obj.Get()
call obj.Set ("Ola Mundo!")
echo "obj.Get:" | call obj.Get()

Rename files with the command interpreter sh

sh is the standard command interpreter for the system.

ifi - input + filter + interpreter

Step 1:
$ ls Run*
Run this to install syntax and clip files for jEdit.ahk
Run this to install syntax and clip files for PSPad.ahk
Run this to install syntax and clip library files for TextPad.ahk
Run this to install syntax and cliptext files for EditPlus.ahk
Run this to install syntax file for MED.ahk
Run this to install syntax file for Notepad++.ahk
Run this to install syntax highlighting for ConTEXT.ahk
Run this to install syntax highlighting for UltraEdit.ahk


Step 2:
$ ls Run*| sed -r 's/.* (.*.ahk)/& => \1/'
Run this to install syntax and clip files for jEdit.ahk => jEdit.ahk
Run this to install syntax and clip files for PSPad.ahk => PSPad.ahk
Run this to install syntax and clip library files for TextPad.ahk => TextPad.ahk
Run this to install syntax and cliptext files for EditPlus.ahk => EditPlus.ahk
Run this to install syntax file for MED.ahk => MED.ahk
Run this to install syntax file for Notepad++.ahk => Notepad++.ahk
Run this to install syntax highlighting for ConTEXT.ahk => ConTEXT.ahk
Run this to install syntax highlighting for UltraEdit.ahk => UltraEdit.ahk


Step 3:
$ ls Run*| sed -r 's/.* (.*.ahk)/mv & \1/'
mv Run this to install syntax and clip files for jEdit.ahk jEdit.ahk
mv Run this to install syntax and clip files for PSPad.ahk PSPad.ahk
mv Run this to install syntax and clip library files for TextPad.ahk TextPad.ahk
mv Run this to install syntax and cliptext files for EditPlus.ahk EditPlus.ahk
mv Run this to install syntax file for MED.ahk MED.ahk
mv Run this to install syntax file for Notepad++.ahk Notepad++.ahk
mv Run this to install syntax highlighting for ConTEXT.ahk ConTEXT.ahk
mv Run this to install syntax highlighting for UltraEdit.ahk UltraEdit.ahk


Step 4:
$ ls Run*| sed -r 's/.* (.*.ahk)/mv "&" \1/'
mv "Run this to install syntax and clip files for jEdit.ahk" jEdit.ahk
mv "Run this to install syntax and clip files for PSPad.ahk" PSPad.ahk
mv "Run this to install syntax and clip library files for TextPad.ahk" TextPad.ahk
mv "Run this to install syntax and cliptext files for EditPlus.ahk" EditPlus.ahk
mv "Run this to install syntax file for MED.ahk" MED.ahk
mv "Run this to install syntax file for Notepad++.ahk" Notepad++.ahk
mv "Run this to install syntax highlighting for ConTEXT.ahk" ConTEXT.ahk
mv "Run this to install syntax highlighting for UltraEdit.ahk" UltraEdit.ahk


Step 5:
$ ls Run*| sed -r 's/.* (.*.ahk)/mv "&" \1/'| sh


Other example: .texi -> .CCCAA
$ ls *.texi| sed 's/.*/ mv & `basename & .texi`.CCCAA/'|sh

Passando variáveis para o sed.

Para usar variáveis no sed nao use ' aspas simples, apenas " aspas dupals
veja os exeplos:

exemplo 01:
$ var=value
$ echo TEXT| sed "s/T/$var/"
valueEXT


exemplo 02:
$ var=T
$ echo TEXT| sed "s/$var/V/g"
VEXV


Referências:
http://aurelio.net/sed/
http://www.gnu.org/software/sed/manual/sed.html
http://thobias.org/doc/sosed.html