태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

달력

6

« 2021/6 »

  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  
  •  
2011. 5. 14. 13:33

예전에 만들었던 인스톨빌더.. DuruInstaller2011. 5. 14. 13:33


인스톨쉴드 처럼 완전 UI기반(중심)으로 ,,,만들었던 인스톨 빌더 (최적화를 안해서 그렇지 Setup.exe 빌드까지 된다)
지금은 추가작업할 시간없이 몇년째 PC에서 썪고있다..^^


아래는,
쉬운 추세로 가는 대세에 맞게 몇년전 NSIS처럼 초간단하게 만든 두루인스톨러 빌더
(두루에디터 셋업은 이것으로 빌드하여 배포하고 있다)



Posted by 3LegsCrow::하늘날다 두루물

댓글을 달아 주세요

  1. 두루물 2011.05.16 04:31  댓글주소  수정/삭제  댓글쓰기

    이것은 제몸이 좀 한가해지면 공개 예정 입니다.

권장 사용환경: Windows 7(32,64비트)(기본 XP이상)
권장 폰트:     Bitstream Vera Sans Mono Font
               XP에서 폰트가 흐려지는 경우,
               디스플레이 속성에서 ClearType을 사용하세요
공식 다운로드: http://duruedit.com
버그개선 피드백: mailto://duruedit@gmail.com 또는 이곳에서 댓글..

*이번버전 특징: Eclipse 외에 서브 editor 로 ActionScript 가능하게 하였습니다.
지원언어 문법:
Flat File(Plain Text),C/C++,HTML/XML/CSS,PHP,JSP/JS/JAVA,ASP,SQL,PC/EC,C#,AS(ActionScript)


<<2011.05.05>> 버전 2.0.3 빌드 859
-----------------------------------------------------------------------
-대용량(수MB이상) 파일에서 스크롤바(트랙바&Draw) 오작동 Fix.
-파일로드시 시간이 걸릴경우 Loading 이미지 표시
-Flash ActionScript 구문분석 추가
-240일 사용기간 연장(경과시 홈페이지에서 최신버전 다운로드&설치)


*외부 2차 배포를 원할 경우,원본 파일명 (DuruEdit-Setup_v2.0.3.859.exe) 유지하시면 감사하겠습니다.^^*

감사합니다.
Posted by 3LegsCrow::하늘날다 두루물

댓글을 달아 주세요

  1. 사용자 2011.06.15 16:57  댓글주소  수정/삭제  댓글쓰기

    질문 드릴게 있는데요... 검색의 빠른 바꾸기 부분에서

    특정 문자를 기준으로 줄을 개행하고 싶은데... 어떻게 해야 가능할까요

    울트라 에디트 기준으로 ^p의 경우 개행으로 사용했는데... 두루 에디터에서는 어떤 방법을 사용해야 하나요

  2. Favicon of http://durumul.com BlogIcon 3LegsCrow::하늘날다 두루물 2011.06.15 18:46 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하셔요^^ 바로 위에 글에 답변 드렸습니다. http://krkim.net/307


"KFC1.0 으로 윈도우즈 SDK 플랫폼 API 프로그램을 MFC 처럼 쉽게 하자"

KFC1.0 - MS-Windows SDK Platform C++ library Development ToolKit
전격
공개(풀 소스코드 포함)


Publish My KFC1.0 MS-Windows SDK Platform C++ Library Here!



사용자 삽입 이미지

[이것은 Korea 위상을 드높이 널리 알리는 다물 프로젝트의 일환입니다]

*본 KFC 라이브러리(일명 kxLibrary) 의 현재버전 1.0을 이곳 제작자의 개인 블로그에 세계 최초로 공개합니다. 나중에 시간이 한가하게 되면 codeguru 나 codeproject에 영문 설명서 작업하여 올릴까 고려하겠습니다.
풀 소스를 모두 공개하였으니 마음껏 받아가셔서 자신의 필요한 프로젝트에 얼마든지 활용하시기 바랍니다.

What is KFC1.0 ?

본 라이브러리는 krkim에 의해 개발되어 그동안 개인적으로 꾸준히 사용되어 온 Private Project 의 하나이며 이곳에 모든 Full source가 공개되는 바입니다. 이 KFC라이브러리는 SDK 플랫폼 API 기반(일명 WIN32/WIN64 프로젝트)에서 윈도우즈 프로그램을 개발하는데 사용되는 C++ 클래스 라이브러리 개발자용 툴킷 입니다.

MFC 나 기타 다른 어떠한 제2,제3의 플랫폼 라이브러리에 종속적이지 않고 이를 필요로 하지도 않으며 KFC Library 1.0 (new named as kxLibrary1.0) 단독으로 개발할 수 있으며 하물며 MFC와 API ,WTL 과 API 서로 쌍방의 이종 개발 플랫폼 간의 Porting 이 가능하도록 호환성있는 아키텍쳐를 제공합니다.

This Library is a set of C++ style classes consist of SDK Platform API (MS-Windows).

When i use  this library?

따라서,이 라이브러리는 아래와 같은 상황에 사용할 수 있습니다.

-MS Windows의 메카니즘을 완벽히 공부하고 이해할 수 있는 기회
-MFC를 쓰지 않고 윈도우즈 프로그래밍을 하고자 하는 경우(no MFC Project),

-MFC로는 성격이 많지 않아 프로그래밍 하기 애매한 경우(not proper with MFC),
-Windows SDK에서 제공하는 API로는 체계적인 프로그래밍이 힘든경우(To avoid hard coding API),
-C++ 클래스로 Windows API 프로그래밍을 원하는 경우(c++ object style api level code),
-MFC 프로그램 보다 가벼운 실행코드와 작은 크기를 원할 경우(tiny exe code and size),
-WTL 사용이나 기존의 MFC 소스코드를 API로 재작성 하고 대체할 경우(reengineering / refactoring/ porting to API code)
-SDK,WTL이나 MFC 프로젝트에서 이 라이브러리 사용가능(also available plug in SDK,WTL,MFC Project).
-API 를 객체지향형 언어구조로 개발하고자 할 경우(API with OOP)

이 KFC 라이브러리는 여러 개발 플랫폼 가운데 다음에 위치해 있습니다.
오른쪽으로 갈수록 개발속도가 빠르고 개발 환경이 편하나 빌드후 결과가 무겁고 느리고 크기는 큽니다.
왼쪽으로 갈수록 개발속도는 느리고 개발 환경이 열악하나 빌드후 배포시엔 가볍고 빠르며 크기도 작습니다.
KFC는 이들 사이에 있으면서 양자의 장점만을 위해 구현 되었습니다.
즉,KFC 라이브러리는 개발하기 편하며 빠르고 결과는 왼쪽에 가깝게 가볍고 빠르며 작도록 말입니다.

This library performance is among as following,
Toward the right, development environment is fast,easy and save time but it has a heavy and slow and the size is larger results. otherwise toward the left, development is slow,diffucult and take a long time,but the result is more light,faster and has tiny size. So KFC Library tries to has the benefits both left and right.

 <=== low level(high speed)             high level(low speed)   ===>
 -------------------------------------------------------------------
 (light) SDK (API)     <     KFC      <    WTL     <   MFC  (heavy)
 -------------------------------------------------------------------
 <=== low level(small size)             high level(large size)  ===>

(i guess both KFC and WTL are nip and tuck ;-))

또한,구조는 기존의 MFC나 WTL의 Event Driven 방식을 고수 합니다.
It also support event driven (message handler) method like as the WTL,MFC.

How to Use?

아래는 MFC 코드로 착각할 만큼 거의 똑같습니다. 그러나 이것은 API 에 기반을 둔 KFC Library 프로젝트의 소스코드 예제 입니다.
Following Dialog based sample source is not MFC,it's KFC Application source based on SDK API Platform.


How to Make?

아래의 KFC1.0 라이브러리 소스코드 프로젝트를 다운로드 하여 빌드합니다. 그런후에 자신의 WIN32/WIN64 SDK 프로젝트를 만든다음 해당 경로의 KFC1.0의 라이브러리 파일인 KFCWndLib.lib를 링크에 삽입 합니다.
이후 KFC1.0 라이브러리에서 제공하는 MFC의 CString에 해당하는 kxBuff.h의 kxString 문자열 버퍼 클래스,선형버퍼,벡터등의 버퍼조작 함수부터 윈도우즈 프레임워크 클래스,툴바나 MDI 탭바 등 각종 추가포함된 시스템 공용 컨트롤 클래스와 KFC1.0에서만 제공하는 커스텀 컨트롤등 갖가지 클래스와 함수를 적절하게 이용합니다.
이것을 하기전에 KFC1.0 압축을 푼 경로의 Demo 프로그램을 먼저 빌드해 보십시오.

DialogApp Class

Header File

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/* 
  $Id: DialogApp.h 3 2009-12-20 19:12:53Z krkim $ $Revision: 3 $
  $HeadURL: https://krkim-laptop/svn/KFC/trunk/Demo/Dialog/DialogApp.h $
 */

#pragma once
//
#include "KFCApp.h"
//
class CDialogApp : public KFCApp  
{
public:
	virtual BOOL InitInstance();
	virtual BOOL ExitInstance();
	CDialogApp();
	virtual ~CDialogApp();

};

 Source File

/* 
  $Id: DialogApp.cpp 3 2009-12-20 19:12:53Z krkim $ $Revision: 3 $
  $HeadURL: https://krkim-laptop/svn/KFC/trunk/Demo/Dialog/DialogApp.cpp $
 */

#include "stdafx.h"
#include "DialogApp.h"
#include "ExampleDlg.h"
#include "resource.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//Declare KFC Entry Point Macro

KFC_ENTRYPOINT(CDialogApp)

CDialogApp::CDialogApp()
{
}

CDialogApp::~CDialogApp()
{
}

BOOL CDialogApp::InitInstance()
{
	CExampleDlg dlg(IDD_MAIN,0/*demodlg->GetSafeHwnd()*/);

	int flag = dlg.DoModal();
	MessageBox(0,(flag == IDOK) ? "IDOK pressed" : "Canceled","result",MB_OK);
	return FALSE;//In Modal Dialog mode,return FALSE.
}

BOOL CDialogApp::ExitInstance()
{
	return TRUE;
}

ExampleDlg Class
 
Header File
/* 
  $Id: ExampleDlg.h 3 2009-12-20 19:12:53Z krkim $ $Revision: 3 $
  $HeadURL: https://krkim-laptop/svn/KFC/trunk/Demo/Dialog/ExampleDlg.h $
 */

#pragma once

#include "KFCDlg.h"

class CExampleDlg : public KFCDlg
{
public:
	CExampleDlg(void);
	CExampleDlg(UINT nID,HWND hParent = NULL);
	virtual ~CExampleDlg(void);

	//KFC message handler >>
	KFC_BEGIN_MAP()
		KFC_HANDLE_MSG(WM_INITDIALOG,OnInitDialog)
		KFC_HANDLE_MSG(WM_DESTROY,OnDestroy)
		KFC_HANDLE_MSG(WM_COMMAND,OnCommand)
	//KFC_ENDCHAIN_MAP(KFCDlg)
	KFC_END_MAP()
	//KFC message handler <<
protected:
	/*message event handler function do not virtual */
	// kfc msg >>
	kfc_msg BOOL OnInitDialog(HWND hWndFocus,LPARAM dwInitParam);
kfc_msg void OnDestroy(); kfc_msg BOOL OnCommand(UINT nID, HWND hWndCtrl, UINT nNotifyCode);
// kfc msg << };
Source File
#include "stdafx.h"
#include "ExampleDlg.h"
#include "DialogApp.h"
#include "resource.h"

///////////////////////////////////////////////////////////////////////////
CExampleDlg::CExampleDlg() :KFCDlg()
{
}

CExampleDlg::CExampleDlg(UINT nID, HWND hParent) :KFCDlg(nID,hParent)
{
}

CExampleDlg::~CExampleDlg(void)
{
}

BOOL CExampleDlg::OnInitDialog(HWND hWndFocus,LPARAM dwInitParam)
{	//dwInitParam is user param when create.
	KFCDlg::OnInitDialog(hWndFocus,dwInitParam);
	SetIcon(KFCGetApp()->LoadIcon(IDI_MAINICON),FALSE);
	if(GetStyle() & WS_POPUP)
		CenterWindow(::GetParent(m_hWnd));
	return TRUE;//If no focus,return FALSE;
}

void CExampleDlg::OnDestroy()
{
}

BOOL CExampleDlg::OnCommand(UINT nID, HWND hWndCtrl, UINT nNotifyCode)
{
	//if nID == 1 ,IDOK or ENTER key
	//nNotifyCode == Notify message  from an accelerator = 1,from a menu = 0
	//hWndCtrl = from a control = ctrl handle Otherwise  = NULL

	HINSTANCE hInst = KFCGetInstanceHandle();

	switch(nID)
	{
	case IDC_BUTTON1:
		break;
	case IDOK:
	case IDCANCEL:
		break;
	default:
		break;
	}
	return 0;
}
As result,it is similar to MFC or WTL message handler. but it works on SDK API Platform and support easy and simple way for API coding.
Also It is possible that MFC Project porting to API PRoject (or inverted) could be enabled more easily by using this KFC Library. Above simple sample demonstrate just the event handler which similar to WTL/MFC 's that.
For more info, see Demo Project in KFC1.0 Library Product.


KFC1.0 에 대하여

원제작자 :
krkim (http://krkim.net)
최초 공개 싸이트 :
http://krkim.net
공개날짜: 2010/11/10

라이센스: Full Open Source
              원 저작자 표기를 유지하는 조건으로 얼마든지 변형하여 사용가능.
              사전협의 없이 출판,강의 등 영리목적의 수단이나 기업의 상업적 이용 불가
              배포되는 압축파일 명의 이름을 변경하지 말것.
              Sourceforge 와 같은 OpenSource Project로 런칭시 저에게 미리 알려주기 바람.

문의 메일: durumul@gmail.com

About KFC1.0 License and Author

Original Author: krkim ,seoul in The Greate One Korea.
            Copyright(c) 2010 krkim All rights reserved.
License : Full Open Source
          Do not remove original author info.
          Do not use for commercial purpose without contact me.
          Don't rename original release package file name.
          If anyone has plan to try to launch as opensource project,
          (eg:sourceforge),please notice for me before do it.
Contact: durumul@gmail.com

KFC Platform History

KFC1.0 은 KFC2.0 플랫폼에서 kxLibrary 로 rename 되었습니다.

KFC1.0 = KFCWndLib        - published 2010.11.10 at http://krkim.net
KFC2.0 = kxLib(kxWndLib) - not published


Thanks Regards As,
KR.Kim

감사합니다.

출처: http://krkim.net/category/kxLibrary


Additional Links

Bugfix::KFCApp Class Update for DLL KFCSetResourceInstance() (http://krkim.net/130)

Posted by 3LegsCrow::하늘날다 두루물

댓글을 달아 주세요

2010. 9. 30. 10:48

What is the Duru Script(Damul Script)? DuruScript2010. 9. 30. 10:48

About DuruScript(DamulScript)

순수국산::자작 인터프리터 프로그래밍 언어,두루 스크립트(다물 스크립트) 컴파일러(인터프리터)와 두루 스크립트 데모 소스 코드

[이것은 Korea 위상을 드높이 널리 알리는 다물 프로젝트의 일환입니다]


이 인터프리터 언어엔진을 좀더 개발해 발전시키면 PHP,Java 또는 Ruby,Python등과 같은 클라이언트 웹스크립트,서버사이드 스크립트 또는 게임내 스크립트,인스톨 쉴드나 플래시의 액션 스크립트등과 비슷한 각 용도별 응용분야에 따라 다양한 플랫폼에 이용할 수 있습니다. 현업에 종사하는 시간이외에 따로 개발할 수 있는 시간과 자본이 없는 관계로 이 개인연구 프로젝트는 2006년 일찌감치 마지막 개발을 중단한 채 현재는 무한 보류중 입니다.^^
(처음개발:1999~2000년,보충개발:2005~2006년 사이 약 3개월)

본 인터프리터 언어는 제작자가 개인적인 연구차원에서 머릿속에 있는 과거 까마득한 학창시절 전공 수강했던 컴파일러 이론에 어셈블러 개발 경험에 기초해 작성한 것으로 용어나 알고리즘,아키텍쳐가 이론에 100% 부합되지 않을 수도 있고 그만큼 체계적이지 않을수도 있습니다.(예를 들어,메모리 적재,절대주소등등)
이 데모에서 제공하는 것은 단순한 사칙연산,Hello World! 같은 단순한 메세지 박스 출력,n!(펙토리얼)같은 재귀호출등의 기법등 아주 기초적인 실행을 선보이지만 이처럼 어떤 3rd party 기능의 확장 함수를 더 덧붙여 제공하고 응용하느냐에 따라,그 용도는 기하급수적으로 달라질 수 있는 가능성을 제시하고 있습니다.
본 인터프리터는 자연어(고급언어 문법) 으로 코딩 => 중간언어 변환(자체 어셈블리) => 바이트 코드 변환
의 단계를 거칩니다.(자바로 비유하자면 .java => .class => exe,기계어쯤)
바이트 코드 인터프리터 언어가 갖는 특징처럼 자체 어셈블리는 실제 80x86 계열이나 68x 의 프로세서 기계어에 종속적이지 않는 자체적으로 보유한 어셈블리이자 중간언어 급 명령어(PUSH,POP,ADD,SUB..등등)로 해석한 후 이를 다시 바이트 코드로 1대1 변환하여 Binary 파일을 생성 합니다. 사실,여기서는 개발외적인 관점에서 보면 중간언어가 바이트코드인 셈입니다.물론,이럴 절차는 컴(디)파일러의 내장된 기능이고 실제로는 php 처럼 소스를 직접 실행할수도 있습니다.
실행타임시 Decompile 에 의해 이는 다시 중간언어로 변환되어 실행코드를 실행하게 되는 원리로 작동됩니다.따라서,자바와 같이 CPU 에 기계적인 종속성이 없이 플랫폼 독립적으로 작동할수 있는 것입니다.

아주 단순한 사칙연산을 예로 들자면,
a = b + c;
는 곧 중간언어
MOV A,B
ADD A,C
로 변환합니다.
또한,
a = b + 3;
는 위와는 달리(위의 경우는 변수의 주소가 들어감) 고정 상수 3의 값을 전달 합니다.
또한, 함수를 호출 할 경우
sum(a,b)는
스택에 각각
PUSH B
PUSH A
한후
CALL sum
하는 것입니다.
그럼 실제 사용자 정의 함수 sum에서는
POP B
POP A
하여 자신의 지역변수에 해당 값을 읽어들여 실행할수 있게 됩니다.
 
우선,이런 부분보다 더 골치아픈것은 문법 파싱이 되겠습니다.
즉,단순한 a+b 와 hap = ((a + b) * 2/(c+d)) /e; 와는 수준이 다릅니다.
또한, 구조체,배열,포인터를 구현해야 합니다.

아래는 이렇게 구현된 현재 다물스크립트가 지원하는 소스코드의 예입니다.
모든 O.S나 응용프로그램,기반기술을 개발한 원천은 C언어로 부터 출발하였지만 웹 CGI 이후까지 쓰이다가 4GL 언어가 지배한 이후로 원조 언어인 C는 무시받고 쇠퇴 당하였습니다.물론,보이지 않는 부분에서 오늘날도 많은 공헌을 하고 있는 언어이지만..그리하야, C언어를 웹환경이나 기존 스크립트 언어로 다시 부활시키고자 하는 마음으로 문법 스타일은 C/C++을 따릅니다.

example DuruScript source code
(thr results of this source is above screenshot)

prototype int test(int a,int b);

int *flag[5];
int * sum;

export void nevercalledfunction(int aa)
{
	//never called function:: auto remove in codesegment
	//rectA aa;
}
void sample2()
{
	
}

/* example : recursive function call */
 int Factorial(int n){
	int r;
	int t;
	if(n==0){
		return 1;
	}
	
	t = n -1;
	t = Factorial	(t);
	r = n * t;
	return r;
}

#define HEADER	<test.h>
#include HEADER

/*
   Damul script sample source
   Mi Script
   version:1.0
   created on: 2006.10.13
   Yeamaec communication,inc.(c)
 */ 
#ifndef TEST__H
#define MESSAGE "결과:\r\n\"test함수의 수행결과는 "

string str = "ab\r\n\":c\x";

#ifndef MUI_NOVERBOSE
  #define TRUE	1
  #define AAA
  #define COMP	a + b > 12
  #define KAKA  COMP
  #define TEST  KAKA
#endif
#endif

int sum;

function int test(int a,int b){
	int hap;
	//int 0a;
	string str = "abcd";
label1:
	hap = a + b;	
	hap = (a + b) * 2;
	alert(hap);
	return hap;
	
//	if((a + ( b * 2)) > 12)
	if(TEST){
			a = b + 2;
			alert(a);
	}
	else {
			if(a >= 7)
				alert("a >= 7");			
			else
				string msg;
				msg = "a는 7보다 작다";
				alert(msg);			
			endif
			alert("1234");
	}
label2:	
	a = 1;

	b = 10;
	while(a < 10){
	 b = b + 1;
	 a = a + 1;
	 if(a < 5)
	   continue;
	 
   if(a > 6)
   	break;
	 //while( b < 15)
	 	//alert("하하하");
	 	//b = b + 1;
	 //endw;
	}
	alert(hap);
	return hap;
}

struct recA
{
	int a[2];
	char b[2];
};

struct recB
{
	int  c;
	recA d[2];
};

/* example : call by reference */
function int getval(int & a, int &b)
{
	int i = 100;
	a = i;
	b = 200;
	return i;
}

/* example : return user defined type variable */
function recA mytest()
{
	recA ra;
	ra.a[0] = 1;
	ra.a[1] = 2;
	ra.b = "ST";
	return ra;
}

function void main(){
	string text = "abcd3";
	int aa = -5;
	int bb = 2;
	int ff;
	int len;
	int flag;
	char ch;
	string text2;
	int pos ;
	int mm[2];
	int nn[2];
	int * pp[2];
	int *mp;
	recA ra;	
	recA rb;
	recB rc;
	recB rd;
	char ss[2];
	rb = mytest();
	text2 = "rb구조체의 값 = " + rb.a + "," + rb.b;
	alert(text2);
	ss = "AB";
	mm[0] = nn[0];
	mm[0] = 1;
	mm[1] = 2;
	
	ff = 5 + 2;
	alert("ff의 값은 " + ff + " 입니다");
	mm = 3;
	mp = mm;
	*mp = 4;
	mp = & aa;
	mp = mp + 1;
	mp = 1 - mp;
	*mp = aa;
	aa = *mp;
	pp[0] = &mm[1];
	*pp[0] = *pp[0] + 2;
	mm[0] = mm[1];
	mp = mp + 1 + pp[0];

	nn[0] = 5 + 2 * 3;
	nn[1] = (5 + 2 * 3) * 2 + 1;
	if(aa+bb>5)
		aa = 3;
	alert(nn[0]);
	 *(mp + 1) = 5;
	mp = &aa;
	mp = mp + 1;
	*mp = aa;
	
	pp[1] = &mm[1];
	*pp[1] = mm[1];
	
	*pp[1] = 1;
	pp[1] = pp[1] + 1;
	*pp[1] =*pp[1] + 1;
	
	alert("윤아아빠안녕!!");
	
	alert(mm[1]);
	getval(aa,bb);
	alert(aa);
	alert(bb);
	nn = mm;
	ra.b =text;
	text2 = ra.b;
	ra.a[0] = 2;
	ra.a[1] = 3;
	rb = ra;
	rc.d[0] = ra;
	rd = rc;
	//rc.d[0].b = ss;
	//ra.b[1] = 1;
	
	if(rc.d[0] == ra)
		alert("같음");
	
	alert(ra.b);
	len = bb + text.length();
	//alert(len);	
	ch = text.getat(1);
	//alert(ch);
	flag = text.compare("abc1");
	len = text.length();
	text.setat(2,'q');
	//text.getat(2);
	text = "문자비교 = " + flag /*+ flag + "\r\n text = "*/ + text;
	text = text + "\\aaa";
	pos = text.findstring("ab",0);
	text2 = text.substring(-1,4);
	if(text.length() > 5){
	
		//len = "12345";
		alert("길이:" + text + "\r\n" + "len = " + len,"확인");
	}
//	alert(text2);
//	alert(pos);
//	alert(text);
//	alert(len);	
#ifndef FACT
test(mm[1],bb);
//return;
	ff = Factorial(2+4);
	text = "재귀호출 6의 팩토리얼은 " + ff + "이다";
	alert(text);
	return;
#endif
	test(aa,bb);
#ifdef AAA
	sum = test(5,2);
	text = MESSAGE + sum;
#else
  alert("#error please define AAA");
  #ifdef TRUE
  alert("TRUE is defined");
  #endif
	text = "test함수의 수행결과는 " + sum;

#endif	
	alert(text);
	alert("테스트\r\naaa");
}


사실,이것은 인스톨쉴러나 액션 스크립트 처럼 두루 인스톨러에 내장할 스크립트가 필요해 개발을 한것이 계기 였습니다.한번쯤 제대로 체계적으로 공부해서 이론과 병행하여 개발해보고 싶은 한 분야입니다.
왕년에 한번 반짝 '씨앗'이 나왔다가 결국 우리나라는 일찌감치 이런쪽엔 관심을 끊은듯 합니다.관심있으신 연구소나 개인은 문의 하셔도 좋습니다. 이것은 절대로 국외에 오픈소스 안합니다.

DuruScript is a C,C++ Style Interpreter Language like PHP,Java which has been developped by me.But it was not completed yet because i have no time to improve it.

Here is a sample and compiler.
(for demo run : dsc test.cc or dsc test.ds)

test.cc,test.ds,HelloWorld.ds 가 두루 스크립트 소스코드이며 dsc가 컴(디)파일러입니다.
dsc test.cc 혹은 dsc test.ds 혹은 dsc HelloWorld.ds /xHelloWorld 하시면 캡쳐화면 처럼 실행 합니다.물론 소스코드를 열어 편집후 실행하면 현재 구현된 지원되는 규칙하에 실행됩니다.^^


'DuruScript' 카테고리의 다른 글

What is the Duru Script(Damul Script)?  (0) 2010.09.30
Posted by 3LegsCrow::하늘날다 두루물

댓글을 달아 주세요