Emacs Auto Completion Quick Note
�̸ƽ�(Emacs) �ڵ��ϼ� �ʰ��� ����
����� �ϰ����� ����
"���ڸ�����(intellisense)"�� ����Ʈ�� �����ִ� �ڵ��ϼ��� �ǹ��ϰ� "�ɺ��ϼ�(symbol completion)"�� ����Ʈ�� �� �����ִ� �ڵ��ϼ��� �ǹ��ϴ� ������ �ϰڽ��ϴ�. ���� Emacs���� �ڵ��ϼ��̶�� ���þ����� auto completion, smart completion, intellisense ���
������ �ʹ� ���� ������ cedet ��Ű���� �ִ� semantic�� �߽����� �����մϴ�. Emacs���� �ڵ��ϼ��� ������ �ణ ��ٷӰ� �� ó�� �ڵ��ϼ��� �� ���� ij�� ������ �����ؾ� �Ǽ�
�ణ ����� ������ �پ��� ������ �ڵ��ϼ� ����� �ְ� ����� ��� �°� ���� �� �� �־ ���� �����մϴ�. �Ϸʷ� VS���� MFC�� ���α����� ��� ���� �ϴ� ���� ����Լ� ���� ���� ���� ��� �� �� �ֱ� ������ �� ���� ���ż� ���� �ų��� �ڵ�(?)�� �� ���� ������ ���ڸ����� ����� ��ġ���ŷ��� ������ �ڵ��ϴ� ��쵵 ������ ���Դϴ�. �̷� ��쿡�� Emacs�� ���� ������ ��ó�� �����մϴ�. 1. �غ� ¶1) cedet ��Ű�� ��ġ
http://cedet.sourceforge.net/ 1.0pre4 ���������� C++ namespace�� �� ��� �ڽ�Ŭ�������� �θ�Ŭ���� ����� �ڵ��ϼ��� �ȳ�Ÿ���Ƿ� cvs ���� ����ϼ���. cvs -d:pserver:[email protected]:/cvsroot/cedet login ��ȣ ����� ���� cvs -z3 -d:pserver:[email protected]:/cvsroot/cedet co -P cedet��ġ���/INSTALL ������ �����ؼ� ������ �� .emacs�� �߰��϶�� �� �� �߰��� �ݴϴ�. ����:
����� lenny������ emacs-snapshot�� ���� ������� cedet ��Ű���� �浹�ϹǷ� ����� cedet��Ű���� �����ϰ� cvs ���� ���� ��ġ�ϼ���. (lenny�� stable�� �� ���ķδ� ��Ȯ�� ����) 2) .emacs�� ���� �߰�
;; ����(2009�� 4�� 12��) cvs ���������� �Ʒ��� ��� �ڵ��ϼ��� �Ǿ��� ;; (require 'semantic-ia) ;; (global-semanticdb-minor-mode 1) ;; ij�� ���� ����� �δ� �� ;; �ý��� ���̺귯���� ���� ��� ���� ����� ���� ���� ������ ;; �� �� ij���Ǹ� ���� �� �ڵ��ϼ������� ������ ��� �����մϴ�. ;; ���� "~/.emacs.d/#semanticdb.cache#" �� ������ ���ϴ� ������ �� ����� �־�� �մϴ�. (setq semanticdb-default-save-directory "~/.emacs.d/#semanticdb.cache#") ;; �ڵ��ϼ��� �� ��� ���� ��� ���� �� ;; �̰��� �־�� #include �� ��������� ���뵵 �ڵ��ϼ��� ��Ÿ���ϴ�. (semantic-add-system-include "/usr/include/gtkmm-2.4/" 'c++-mode) 2.1. ���� ¶emacs ���ڸ��������� ���� ������ �ֽ��ϴ�.
(cedet ������ ���� �Ʒ� �� �Լ��� �ڵ��ϼ��� �ϴ� ����� �ٸ� �� �ֽ��ϴ�.) 1) semantic-ia-complete-symbol-menu
![]() [PNG image (71.53 KB)] 2) semantic-ia-complete-symbol
![]() [PNG image (81.94 KB)] 3) semantic-ia-complete-tip
![]() [PNG image (64.96 KB)] 4) senator-completion-menu-popup
![]() [PNG image (70.08 KB)] 5) semantic-complete-self-insert ("." �Է��ϰ� "sho"���� �Է��� tab ���� ����)
![]() [PNG image (76.03 KB)] 6) semantic-complete-analyze-inline
![]() [PNG image (77.94 KB)] 7) semantic-analyze-possible-completions
![]() [PNG image (80.02 KB)] 8) global-semantic-idle-completions-mode ("sh" �Է��ϰ� ��1�� ��ٸ� �� tab 2�� ���� ����)
![]() [PNG image (56.77 KB)] 2.2. Ű���ε� ���� ¶;; cedet semantic ���ڸ����� Ű���ε� ���� (global-set-key [(control return)] 'semantic-ia-complete-symbol-menu) (global-set-key [(control shift return)] 'semantic-ia-complete-tip) (global-set-key [(control c)(control return)] 'semantic-complete-analyze-inline) (global-set-key [(shift return)] 'semantic-analyze-possible-completions) ���� ��� semantic-ia-complete-symbol-menu ���� ��� ���ڸ������� ����� ������
C-RET �ϰ� C-n (�Ʒ�), C-p (��), C-f (������), C-b (����) �� �����̰� RET�� �����ϰ� C-g �� ����ϸ� �˴ϴ�. �� �����ϰ� Ctrl "���" ���� ���¿��� RET �ϰ� n,p,f,b �� �����̰� g�� ����ϴ� ����� �����մϴ�. ������������ MS�����쿡���� semantic-ia-complete-symbol-menu â�� C-g �� ������� �ʴµ�
ESC Ű�� �̻��ϰԵ� ���� Alt Ű�� ������ ������ϴ�. 2.3. VS�� ����ϰ� ���ڸ������� "." "->" "::" �� ����ϱ� ¶VSó�� "." "->" "::" �ԷµǸ� ���ڸ������� �ǵ��� ����Ϸ��� ���������� Ű���ε��� �ؼ� ����ؾ� �մϴ�.
cedet Ȩ�������� ���� �������� �ϸ� "." �� �Ǵµ� "->" "::" �� ���ϴ� ��� �۵��� �ȵǼ� �ڵ带 �ణ �߰��ؼ� .emacs ���Ͽ� �־�� �մϴ�.
����: http://cedet.sourceforge.net/intellisense.shtml ;; ó�� ���� . -> :: ����� ����Ͻ÷��� �Ʒ� "nil" �� "t" �ٲټ���. (defvar semantic-complete-self-insert-p nil) (defun semantic-complete-self-insert-toggle-switch () (interactive) (if semantic-complete-self-insert-p (progn (setq semantic-complete-self-insert-p nil) (message "semantic-complete-self-insert off") ) (progn (setq semantic-complete-self-insert-p t) (message "semantic-complete-self-insert on") ) ) ) (defun semantic-complete-self-insert-for-dot-operator (arg) (interactive "p") (if semantic-complete-self-insert-p (call-interactively 'semantic-complete-self-insert) (self-insert-command arg) ) ) (defun semantic-complete-self-insert-for-arrow-operator (arg) (interactive "p") (if (and semantic-complete-self-insert-p (string= "-" (char-to-string (char-before (point)) ) ) ) (call-interactively 'semantic-complete-self-insert) (self-insert-command arg) ) ) (defun semantic-complete-self-insert-for-scope-operator (arg) (interactive "p") (if (and semantic-complete-self-insert-p (string= ":" (char-to-string (char-before (point)) ) ) ) (call-interactively 'semantic-complete-self-insert) (self-insert-command arg) ) ) (defun c++-mode-additional-semantic-keys () "Key bindings to add to `c++-mode'." (define-key c++-mode-map [(control c)(control .)] 'semantic-complete-self-insert-toggle-switch) (define-key c++-mode-map "." 'semantic-complete-self-insert-for-dot-operator) (define-key c++-mode-map ">" 'semantic-complete-self-insert-for-arrow-operator) (define-key c++-mode-map ":" 'semantic-complete-self-insert-for-scope-operator) ) (add-hook 'c++-mode-hook 'c++-mode-additional-semantic-keys) 3.1. ���� ¶�ɺ��ϼ����� ���ڸ�����ó�� ���������� �ֽ��ϴ�.
1) dabbrev-expand
emacs�� ����� ����Դϴ�. ���� ���� �ִ� ������ �ɺ��� ������ �ڵ��ϼ��� �մϴ�. ��, C-x C-b (list-buffers) �ؼ� ������ ����Ʈ �� �ڽ��� ���� ���۰� �ش�˴ϴ�. (���������� �ɺ��ϼ� �� �� ���� ���մϴ�. ���� ���� �˻��� ���� �����ϱ� ������...) 2) hippie-expand
dabbrev-expand ó�� emacs�� ����� ����Դϴ�. dabbrev-expand�� hippie-expand �� ��ȣ�ϴ� ���� ����ϼ���. (senator-minor-mode �� off �ϰ� ����ϼ���.) 3) senator-complete-symbol
cedet ��Ű���� ����ϸ� �׳� ��� �� �� �ֽ��ϴ�. ���ڸ�����ó�� #include �� �����ؼ� �ڵ��ϼ��� �մϴ�. 4) complete-symbol
etags �� TAGS ������ ����� �־��ְ� visit-tags-table �� �ؾ� ��� �����մϴ�. 5) ebrowse-tags-complete-symbol
ebrowse �� BROWSE ������ ����� �ְ� BROWSE ������ �ٸ� ���ۿ� ���� �ξ�� ��� �����մϴ�. ebrowse�� ����� etags�� ��������� ebrowse�� C++�� �� �� ����ȭ�Ǿ� �ֽ��ϴ�.( ![]() 3.2. Ű���ε� ���� ¶;;;; �ɺ��ϼ� Ű���ε� ���� ;; M-/ (dabbrev-expand) - emacs�� �⺻ ���� �Ǿ� ���� ;;senator-complete-symbol �⺻ Ű���ε��� C-c , TAB �̰� �Ʒ��� �߰� ������ ���� (global-set-key [(meta return)] 'senator-complete-symbol) (global-set-key [(meta shift return)] 'complete-symbol) ;; ebrowse-tags-complete-symbol �⺻ Ű���ε��� C-c RET TAB �̰� �Ʒ��� �߰� ������ ���� (global-set-key [(control meta return)] 'ebrowse-tags-complete-symbol) ���� ��� senator-complete-symbol �� ����� ������ M-RET �� ������
��� ������ �ɺ��� �ϼ��� �ǰ� �ٽ� M-RET������ �ٸ� �ɺ��� �ϼ��ǰ� �̷� ������ ��� ������ �ɺ��� ���ư��� �ϼ��ǰ� �˴ϴ�. Meta(Alt)�� "���" ���� ���¿��� RET�� ������ ����� �����մϴ�.
4. ���ڸ������� �ɺ��ϼ� ��Ʈ ¶���ڸ������� ���ϴ� ��� ���� �ڵ��ϼ���ų �� ������ ������ ������ �ɺ��ϼ��� ������ ����ϸ� ������
�ɺ��ϼ��� ������ ���� �ڵ��ϼ��� ���ϴ� ��� �� �Ǵ� ��쵵 �ֽ��ϴ�. �������� ���� ������ ���ڸ������� ����ϼŵ� �˴ϴ�. �Ʒ��� ���� �ڵ尡 �ְ� etags�� ebrowse�� TAGS�� BROWSE ������ ������� BROWSE ������ �ٸ� ���ۿ� ���� ���Ҵ� �����մϴ�.
#include <iostream> class Test { public: Test(); virtual ~Test(); public: void TestClassPrint () = 0; void TestClassPrint2 () = 0; }; void TestFunctionPrint() { printf("hello emacs"); } int main(int argc, char *argv[]) { int localvalue = 4; Test test; printf("print localvalue : %d", localvalue); _ <-- ���� Ŀ�� return 0; }��Ʈ 1) �� ���¿��� "lo"���� Ÿ���� �� "localvalue"�� �ϼ� ��Ű���� �ϸ� ���ڸ������� semantic-complete-self-insert�� �����ϰ� ���� ����� �� �ְ� �ɺ��ϼ��� dabbrev-expand(hippie-expand)�� senator-complete-symbol�� �ϼ� ��ų �� �ֽ��ϴ�. �� ������ TAGS�� EBROWSE������ ���� ���� localvalue��� ���� ���� Ŭ������, �Լ�, ����Լ��� �±� ��������� �־ complete-symbol, ebrowse-tags-complete-symbol�� "localvalue"�� �ڵ��ϼ� ��ų �� �����ϴ�. ��Ʈ 2)
�� ���¿��� "test.Te"���� Ÿ���� �� " test.TestClassPrint "�� �ϼ� ��Ű���� �ϸ� ���ڸ������� ���� ����� �� �ְ��ɺ��ϼ��� senator-complete-symbol�� ebrowse-tags-complete-symbol �� �ϼ� ��ų �� �ֽ��ϴ�. C++ �� ����Լ��̱� ������ complete-symbol�� �ϼ� ��ų �� �����ϴ�. TAGS������ ���� ���� �� �� �ֽ��ϴ�. ����:
find-file (C-x C-f)�� BROWSE ������ ���� Ebrowse-Tree Mode �� ���� ������ ������ ���� �����ø� M-x find-file-literally �� ����ϼ���. 5. ���� �ó���� ¶emacs���� �ڵ��ϼ� ������ �ʹ� ���� ������ ���� �ó������ �ϳ� ���� ���ϴ�.
�켱 �������� �ڵ��ϼ��� M-/ (dabbrev-expand)�� ����մϴ�.
�̰��� ���� ������ �ɺ��� ���� �˻��ϰ� emacs�� ����Ǿ� �־� ���� ������ ������ �ֻ��� �����̶� �����˴ϴ�. ó�� ���ϴ� ���̺귯���� �ִ� �����ϸ� ����Լ� ���� ���� �ͼ��� �ʱ� ������
semantic-complete-self-insert�� semantic-ia-complete-symbol-menu�� ������ ���� ����ϴٰ� �� �ͼ��� ���� ����Լ����� �������µ� ���� Ÿ���� �� semantic-complete-analyze-inline �� ����ϰ� ������ �� ���� �Ű������� ������ semantic-analyze-possible-completions �� ����մϴ�. ���� ���̺귯���� ������ �ɼ������� �ظ��� ����Լ��� �� ��ﳪ��
���� �ų��� �ڵ�(?)�� �ϸ� ������ �ɺ��ϼ�(senator-complete-symbol)�� ����ϸ� �˴ϴ�. �ڽ��� ���� Ŭ���� ���� ��쵵 ����Լ��� ���� ����ϰ� �ֱ� ������ �ɺ��ϼ�(senator-complete-symbol)�� ����ϸ� �˴ϴ�.
complete-symbol, ebrowse-tags-complete-symbol �� TAGS, BROWSE ������ ���� ���ɾ ����ؼ�
������ �ϴ� �δ��� �ֱ� ������ �ҽ��ڵ� �м� �� ���� �� �� ����ϸ� �����ϴ�. (tag�� ������ ���� �Դ� ���� �� �� �����Ƿ�...) 6. Yet Another Snippet (yasnippet) ¶���ڸ������� �ɺ��ϼ��̸� �Ϻ�������
yasnippet ���� ����ϸ� ���� ���� ���� ���� �˴ϴ�. yet another snippet extension for Emacs.
http://code.google.com/p/yasnippet/ "class" Ÿ���� �� tab ������ "Te"���� �Է��� ȭ��
![]() [PNG image (41.3 KB)] ���ǻ���:
yasnippet�� �ϼ��� �ڵ�� indent�� space�� ���Եǰ� indent level�� 4�Դϴ�. ���� ������ �ٸ��� ���� ������ �ٽ� ���־�� �ϴµ� ���� ������ �ذ� ����� .emacs�� �Ʒ��� �߰��ϴ� ���Դϴ�. (add-hook 'yas/after-exit-snippet-hook '(lambda () (indent-region yas/snippet-beg yas/snippet-end)))(��ó: http://code.google.com/p/yasnippet/wiki/Tips) by ������:
msf-abbrev�� yasnippet���� �� ���� ���� ���(abbrevation or snippet) ����̰�, ���� �����ϰ� �ִ� ���� msf-abbrev�� �ƴ϶� yasnippet�Դϴ�. 7. �ǽð� �м� (real-time analysis) ¶�ڵ��ϼ��� ������ emacs�� ������ ����� �ϳ� �Ұ��ϰڽ��ϴ�.
1) semantic-speedbar-analysis
![]() [PNG image (89.58 KB)] 2) ECB Analyse Buffer (ECB ��ġ �ʿ�)
![]() [PNG image (92.31 KB)] ����:
analyse-buffer ������ �����ٸ� C-h v (M-x describe-variable) ecb-analyse-buffer-sync-delay �����ϼż� ������ �ٲټ���. ������ ��� �� 0.7 �����ϴ� �����߽��ϴ�. �Ʒ� ������ ������ ECB Analyse Buffer �� �۵� �ȵȴٸ�
eieio-default-superclass: Invalid slot name: "#<semantic-analyze-context context>", localvariables Invalid slot name: "#<semantic-analyze-context context>", localvariablesecb-analyse.el ���Ͽ� �Ʒ��� ������ ������. *************** *** 270,276 **** (defmethod ecb-analyse-more-nodes ((context semantic-analyze-context)) "Show a set of ecb-nodes specific to CONTEXT." ! (let ((localvars (oref context localvariables))) (when localvars (ecb-analyse-add-nodes "Local Variables" "Local Variables" localvars ecb-analyse-nodetype-localvars))) --- 270,278 ---- (defmethod ecb-analyse-more-nodes ((context semantic-analyze-context)) "Show a set of ecb-nodes specific to CONTEXT." ! (let* ((scope (oref context scope)) ! (localvars (when scope ! (oref scope localvar)))) (when localvars (ecb-analyse-add-nodes "Local Variables" "Local Variables" localvars ecb-analyse-nodetype-localvars))) 8.1. ���ڸ������� �� �ȵ� �� ¶�Ʒ� ������ ������ ���ڸ������� �� �ȵȴٸ�
semantic-analyze-possible-completions-default: Cannot find types for `"..."'.emacs ���Ͽ��� semantic-add-system-include �Լ��� ������� ��θ� �� �����ߴ��� Ȯ���ϰ� C-x C-s (save-buffer) M-x revert-buffer�̷��� �ϼ���. �� �� ���ϰ� ����Ϸ��� �Ʒ� ����Ʈ�� �����ؼ�
http://www.stokebloke.com/wordpress/2008/04/17/emacs-refresh-f5-key/ �Ʒ��� .emacs ���Ͽ� �߰��ϼ���.
(defun refresh-file-after-save-buffer () "refresh file after save buffer" (interactive) (save-buffer) (revert-buffer t t t) ) (global-set-key [(control c)(control R)] 'refresh-file-after-save-buffer) 8.2. semantic�� "add-hook" �� �ΰ��ϴ�? ¶��1)
(add-hook 'c-mode-common-hook 'folding-mode)folding-mode�� �ε尡 �� �Ǿ� �־ "folding-mode" �� void-function �� ��� �Ʒ� ������ ���� �� �ֽ��ϴ�. Wrong type argument: syntax-table-p,nil ��2)
choose-header-file-mode (http://han9kin.doesntexist.com/28) �Լ����� ��� �Ʒ�ó�� �����ؾ� ���� �۵��մϴ�.
(defun choose-header-file-mode () (if (and buffer-file-name (string= (file-name-extension buffer-file-name) "h")) (let ((filebase (file-name-sans-extension buffer-file-name))) (cond ((and (file-exists-p (concat filebase ".c")) (not (string= major-mode "c-mode"))) (c-mode) ) ((and (file-exists-p (concat filebase ".cpp")) (not (string= major-mode "c++-mode"))) (c++-mode) ) ((and (file-exists-p (concat filebase ".cc")) (not (string= major-mode "c++-mode"))) (c++-mode) ) ((and (file-exists-p (concat filebase ".m")) (not (string= major-mode "objc-mode"))) (objc-mode) ) ((and (file-exists-p (concat filebase ".mm")) (not (string= major-mode "objc-mode"))) (objc-mode) ) ((and t (not (string= major-mode "c++-mode"))) (c++-mode) ) ) ) ) ) (add-hook 'c-mode-common-hook 'choose-header-file-mode)���� ������ �Ʒ����� ������ ���� �� �ֽ��ϴ�. semantic-analyze-current-context: Wrong type argument: syntax-table-p, nil eieio-generic-call: No method definition: semantic-analyze-type-constraint, (nil) ����:
find-file-hook�� �߰��� �Լ��� �� �۵��� �ȵǸ� c-mode-common-hook, after-change-major-mode-hook���� �Ű� ���ų� add-hook�� �ɼ� �Ű������� ������ ������. (add-hook 'xxxxx 'xxxxx t t) 8.3. ��ũ��(#define) ������ �ڵ��ϼ��� �ȵ� �� ¶���� ��� �Ʒ� ���� mfc �Լ� ���� ���
_AFXWIN_INLINE CWinApp* AFXAPI AfxGetApp() {... AfxGetApp()-> �� �ڵ��ϼ��� �õ��ϸ� CWinApp* ���� �ƴ϶� AFXAPI ������ �ν��ؼ� �ڵ��ϼ��� �� �Ǵµ��Ʒ��� �߰��ؼ� ��ũ�θ� ����ȭ��Ű�� ���������� �ڵ��ϼ��� �˴ϴ�.(������ ������ ij�� ���� ���� �ʿ�) (add-to-list 'semantic-lex-c-preprocessor-symbol-map '("_AFXWIN_INLINE" . "")) (add-to-list 'semantic-lex-c-preprocessor-symbol-map '("AFXAPI" . "")) (add-to-list 'semantic-lex-c-preprocessor-symbol-map '("AFX_CDECL" . "")) (add-to-list 'semantic-lex-c-preprocessor-symbol-map '("PASCAL" . "")) (add-to-list 'semantic-lex-c-preprocessor-symbol-map '("CALLBACK" . "")) (add-to-list 'semantic-lex-c-preprocessor-symbol-map '("__cdecl" . "")) (add-to-list 'semantic-lex-c-preprocessor-symbol-map '("__stdcal" . ""))mfc�ܿ��� wxWidget ����� ���̺귯��ó�� ��ũ�ΰ� ���� ��� Ȱ�� �����մϴ�. ����: CEDET wxWidgets �ڵ��ϼ� 8.4. MS �����쿡�� cedet ������ ���� ¶MS �����쿡�� EmacsW32, msys ����� ���� Ư�� ������ cedet �������� ��
�Ʒ��� ���� ������ ���� �� �ִµ� Symbol's value as variable is void: outbuffer Symbol's value as variable is void: filename Cannot open load file: srecode-fields Cannot open load file: eieio-load Cannot open load file: semantic-load Cannot open load file: srecode-load Cannot open load file: ede-load Cannot open load file: cogre-loaddefs Cannot open load file: contrib-loaddefs�ϴ� ���� GNU Emacs�� ����ϰ� http://ftp.gnu.org/pub/gnu/emacs/ cedet-build.el ������ emacs�� �о� ���� ��
M-x eval-buffer M-x cedet-build-in-default-emacs�̷������� emacs ���ο��� �������ϼ���. �������ϴµ� �� �ð��� ���� �ɸ��ϴ�. ���� "Done"�̶�� ������ �������� Ȯ���ϼ���.(���� ����: ![]() 9. �� �ٸ� �ڵ��ϼ� ¶cedet�� semantic�� c,c++ ���� �Ϻ��ϰ� �����ϴ� �ݸ鿡 �ٸ� ���� �̹��� ���Դϴ�.
�ٸ� �� ��뵵 ������ ������. ����: http://www.emacswiki.org/emacs/CategoryCompletion 1) C++ �ڵ��ϼ� ��
Screenshot : ![]() ![]() ![]() ����: * http://kldp.org/node/96363 * http://kldp.org/node/99132 * http://kldp.org/node/104547 * auto-complete + gtags �̿� : ![]() 2) Python �ڵ��ϼ� ��
Screenshot : ![]() ����: * http://www.enigmacurry.com/2009/01/21/autocompleteel-python-code-completion-in-emacs/ * http://kldp.org/node/101873 3) PHP �ڵ��ϼ� ��
Screenshot : ![]() ����: * http://php-mode.sourceforge.net/html-manual/Completion.html * http://github.com/ashizawa/autocompletion-php-functions/tree/master * http://kldp.org/node/104700 4) HTML �ڵ��ϼ� ��
Screenshot : ![]() ����: * http://www.emacswiki.org/emacs/NxhtmlMode * http://kldp.org/node/104700 * �� �ٸ� ����� ![]() 7) Perl �ڵ��ϼ� ��
Screenshot : ![]() ����: * http://www.emacswiki.org/emacs/PerlCompletion * http://kldp.org/node/105822 8) Ruby �ڵ��ϼ� ��
Screenshot : ![]() ����: * http://kldp.org/node/110632 9) Java �ڵ��ϼ� ��
Screenshot : ![]() ����: * http://kldp.org/node/110967 |
You attempt things that you do not even plan because of your extreme stupidity. |