public class PostfixConverter {
/* References
* http://scriptasylum.com/tutorials/infix_postfix/algorithms/infix-postfix/index.htm
* http://www.cis.temple.edu/~koffman/cis223/InfixToPostfix.doc
*/
public String convertPostfix(String x) throws Exception {
String postfixString = ""; //Set postfix string to empty string
StackUsingLinkedList operatorStack = new StackUsingLinkedList(); //Create an empty operator stack
for (int i = 0; i < x.length(); i++) { //Repeat unitll end of the string
char c = x.charAt(i); //Get the next token in the infix string
if ((!(Character.isDigit(c)) && !(Character.isLetter(c))) && !(c == ('+') || c == ('*') || c == ('-') || c == ('/') || c == ('(') || c == (')')) || (c == ' ')) {
continue; //Used to avoid spaces and invalid characters, + - * / are not digits or characters
}
if (!(c == ('+') || c == ('*') || c == ('-') || c == ('/') || c == ('(') || c == (')'))) //If next token is an operand (begins with digit)
{
postfixString += c; //append it to postfix string
} else {
while (true) { // Repeat until the next op is pushed onto the stack.
//If operator stack is empty or next op is ‘(‘, push next operator onto stack
if (operatorStack.isEmpty() || c == '(') {
operatorStack.push(c);
break; //the operator is pushed on to the stack, no need for further processing c
}
//Else if precedence of this operator is greater than one on top of the stack then push to stack
else if (precedence(c) > precedence(operatorStack.top())) {
operatorStack.push(c);
break; //the operator is pushed on to the stack, no need for further processing c
}
else {
//For the case of brackets ---------------------------------
if (c == ')') {
while (!(operatorStack.top().toString().equals("("))) { //Pop and append until the opening bracket is reached
postfixString += operatorStack.topAndPop();
}
operatorStack.pop(); //remove the opening bracket, no need for it
break;
}
//End of case for brackets--------------------------------
//Then this operator has lower precedence, then top and pop the stack untill all higher operators are appened to the string
postfixString += operatorStack.topAndPop();
}
}
}
}
//At end of string, keep popping stack until stack is empty
while (!operatorStack.isEmpty()) {
postfixString += operatorStack.topAndPop();
}
//Finally return the postfix String
return postfixString;
}
// The method checks the precedence of each operator
private int precedence(Object x) {
if (x.toString().equals("*") || x.toString().equals("/")) {
return 2;
} else if (x.toString().equals("+") || x.toString().equals("-")) {
return 1;
} else {
return 0;
}
}
}
Feb 22
Infix to Postfix convertor using Stacks
Feb 22
Postfix Expression Evaluator using Stacks
public class ExpressionEvaluator {
StackUsingLinkedList operandStack;
PostfixConverter pc;
public ExpressionEvaluator() {
operandStack = new StackUsingLinkedList(); //A stack to keep operands
pc = new PostfixConverter(); //Used for converting to postfix
}
public int evaluate(String x) throws Exception {
String postfixInput = pc.convertPostfix(x); //First convert to postfix
int result = 0; // Initially the output is zero
for (int i = 0; i < postfixInput.length(); i++) {
char c = postfixInput.charAt(i);
if (!(c == ('+') || c == ('*') || c == ('-') || c == ('/'))) {
operandStack.push(c); //If a operand then add to stack
} else { // If operator, then pop twice and calculate
int b = Integer.parseInt(operandStack.topAndPop().toString());
int a = Integer.parseInt(operandStack.topAndPop().toString());
result = compute(a, b, c);
operandStack.push(result); //Push the result in to the stack for further calculations
}
}
return result; //Return the calculated value
}
private int compute(int a, int b, Character op) { // Used for mapping String characters to numerical operators
if (op == '*') {
return a * b;
}
if (op == '/') {
return a / b;
}
if (op == '+') {
return a + b;
}
if (op == '-') {
return a - b;
} else {
return 0;
}
}
}
Feb 22
LinkedList with Sorting
public class LinkedList {
public ListNode header;
public LinkedList() {
header = new ListNode(null); //Creates a header node with null data
}
//(i)
public LinkedList concatenate(LinkedList secondList) {
LinkedList combinedList = new LinkedList(); // Creates a new empty list which will store the combained two list's values
LinkedList setOfLists[] = {this, secondList}; //Need to combaine this list and the secondList
for (int i = 0; i < setOfLists.length; i++) { //Do for both lists (this and secondList)
if (!(setOfLists[i].isEmpty())) { //To check if there is a header.next position
ListNode current = setOfLists[i].header.next; //Goto the very first node in the list
while (true) { //Used to do until the end of the list is reached
combinedList.insertAtEnd(current.element);// Copy the element value to the combained List
current = current.next;// Move to the next node
if (current == null) {
break;//Reached end of list, break the while loop and move on to next list
}
}
}
}
return combinedList; //Finally return the combinedList which contains both the lists contents
}
//(ii)
public void insertAtEnd(Object newData) {
ListNode current = header; //Start from header
while (null != current.next) { //Used To visit the last node in the List
current = current.next;// Move to the next node
}
current.next = new ListNode(newData, null); //Insert the new node to the end of the list
}
//(iii)
public void removeAtPosition(int position) {
ListNode current = header;
for (int i = 0; i < position; i++) { //Used to navigated to the position just before the deletion position
if (current.next == null) {
return;//The searched position is not found, terminate processing
}
current = current.next;// Move to the next node
}
current.next = current.next.next; //The deletion process
}
//(iv)
public LinkedList sort() throws Exception {
//Uses te Quicksort alogrythm to quicksort the List
//Referenced from: http://en.wikipedia.org/wiki/quicksort#Algorithm
if (isEmpty()) {
throw new Exception("Exception in Sort, The list empty");
}
return quicksort(this); //Sort this list and return
}
//The quicksort function which is used recursively
public LinkedList quicksort(LinkedList x) {
if (x.header.next.next == null) //The base case of the recursion are lists of size of one, which are always sorted.
{
return x; //Since it is sorted return it
}
LinkedList less = new LinkedList(); //To store values less than pivot value
LinkedList greater = new LinkedList(); //To store values greater than pivot value
Object pivot = x.header.next.element; //select a pivot value which is the value compared against
double pivotDouble = Double.parseDouble(pivot.toString()); //Conversion to Double of the pivot value
ListNode current = x.header.next; //Start from the first node
while (current != null) { // Do until the end of the list
double currentDouble = Double.parseDouble(current.element.toString()); //Conversion to Double to the current value
if (currentDouble < pivotDouble) {
less.insertAtEnd(current.element); //If less than pivot then insert to the "less list"
} else if (currentDouble > pivotDouble) {
greater.insertAtEnd(current.element); //If greater than pivot then insert to the "greater list"
}
current = current.next; //Go to the next node
}
if (!less.isEmpty()) { //If empty nothing to sort
less = quicksort(less); //Sorts the list which having elements having value less than the pivot value, recursively
}
if (!greater.isEmpty()) { //If empty nothing to sort
greater = quicksort(greater); //Sorts the list which having elements having value less than the pivot value, recursively
}
less.insertAtEnd(pivot); //Append the pivot value to end of the sorted less list
return less.concatenate(greater); //Concatenate the "sorted less list" and "sorted greater list" and return the sorted list
}
/*
*
*
* ----------------------General List Operations----------------------------------------------------------
*
*
*/
//Will return true if List is empty
public boolean isEmpty() {
return header.next == null;
}
//Will Return a String Containing all the values stored in the List
public String printList() {
String contents = "";
if (isEmpty()) {
return "List Empty";
}
ListNode current = header.next;
while (true) {
contents += current.element.toString() + "\n";
current = current.next;
if (current == null) {
break;//End of list reached,terminate processing
}
}
return contents;
}
// Will insert a node on to the header position
public void insertBeginning(Object newData) {
header.next = new ListNode(newData, header.next);
}
// Will insert a node after the node having specific position data
public void insertAfter(Object newData, Object positionData) {
ListNode current = header;
while (positionData != current.element) {
current = current.next;
}
if (current == null) {
return; //The searched position is not found, terminate processing
}
current.next = new ListNode(newData, current.next);
}
// Will remove the node after the node having specific position data
public void removeAfter(Object positionData) {
ListNode current = header;
while (positionData != current.element) {
current = current.next;
}
if (current == null) {
return;//The searched position is not found, terminate processing
}
current.next = current.next.next;
}
}
Feb 22
Java Code Parser Bracket Mismatch Identifier
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class Main {
public static void main(String[] args) {
Stack stack = new Stack();
boolean process = true;
int line = 0, charPosition = 0;
char c, cArray[];
try {
File file = new File(args[0]);
FileReader reader = new FileReader(file);
BufferedReader in = new BufferedReader(reader);
String string;
ProcessLine:
while ((string = in.readLine()) != null) {
line++;
cArray = string.toCharArray();
ProcessChar:
for (int i = 0; i < cArray.length; i++) {
charPosition = i + 1;
c = cArray[i];
//Identify Comments
if (c == '/' && i + 1 != cArray.length && cArray[i + 1] == '/') {
continue ProcessLine;
}
if (c == '/' && i + 1 != cArray.length && cArray[i + 1] == '*') {
process = false;
}
if (c == '*' && i + 1 != cArray.length && cArray[i + 1] == '/') {
process = true;
}
if (process) {
//Adding to the stack opening brackets
if (c == '{' ||
c == '(' ||
c == '[') {
stack.push(c + "," + line + "," + charPosition);
}
if (c == '}' || c == ')' || c == ']') {
if (stack.isEmpty()) {
System.out.println("Character unmatch occured at Line:" + line + " Character:" + charPosition + ":: No matching character can be found");
continue ProcessChar;
}
String stackChar = (String) stack.pop();
if (c == '}' && !((stackChar.split(","))[0]).equals("{")) {
System.out.println("Character missmatch occured at Line:" + line + " Character:" + charPosition + ":: Expected character { is not found but the character " + ((stackChar.split(","))[0]) + " was found of Line:" + ((stackChar.split(","))[1]) + " Character:" + ((stackChar.split(","))[2]));
}
if (c == ')' && !((stackChar.split(","))[0]).equals("(")) {
System.out.println("Character missmatch occured at Line:" + line + " Character:" + charPosition + ":: Expected character ( is not found but the character " + ((stackChar.split(","))[0]) + " was found of Line:" + ((stackChar.split(","))[1]) + " Character:" + ((stackChar.split(","))[2]));
}
if (c == ']' && !((stackChar.split(","))[0]).equals("[")) {
System.out.println("Character missmatch occured at Line:" + line + " Character:" + charPosition + ":: Expected character [ is not found but the character " + ((stackChar.split(","))[0]) + " was found of Line:" + ((stackChar.split(","))[1]) + " Character:" + ((stackChar.split(","))[2]));
}
}
}
}
}
in.close();
if (!stack.isEmpty()) {
System.out.println("Reached the end of file while phrasing, there are remaining unclosed brackets");
}
} catch (Exception e) {
System.out.println(e);
}
}
}
Aug 12
Nokia PC Phone
Nokia PC Phone is an experimental service that gives you the ability to use your mobile phone from your web browser.
You can call, text, and manage contacts from your phone – all through your PC!

The great thing about Nokia PC Phone is that you can use it to communicate with friends and family even though they don’t have the Nokia PC Phone themselves. No one will be able to tell the difference because your calls and text messages are actually made from your own Nokia phone.
This application has been archived. Nokia will not continue PC Phone development as a standalone application. Thanks everyone for your valuable feedback!
Download
http://nds1.nokia.com/NOKIA_COM_1/Microsites/BetaLabs/applications/apps/PCPhone_install_1.2.2078.exe
Mirrors
http://www.filefactory.com/file/ah1bff5/n/PCPhone_install_1_2_2078_rar
http://www.megaupload.com/?d=91BCDBB4
http://depositfiles.com/en/files/scoj7wi24
http://www.zshare.net/download/6401416611f85d9a/
http://hotfile.com/dl/10098966/0342775/
http://www.badongo.com/file/16538406
http://uploadmirrors.com/download/ZCJIGK8B/PCPhone_install_1.2.2078.rar
Mar 27
Visual C++ Toolkit 2003 Download
Extract From: http://msdn.microsoft.com/en-us/library/aa290065.aspx
The Visual C++ Toolkit 2003 package is designed to enable developers to build and test applications with the full optimizing compiler that ships with Visual Studio .NET 2003. This package isn’t a substitute for the full version of the product; rather, it’s a subset that lets you evaluate and explore the optimizing compiler. In addition, it will let you build small applications suitable for academic study. I’ve written this article to help readers who are very new to C++ learn how to use the Visual C++ Toolkit 2003 compiler from the command line to build simple applications.
The Visual C++ Toolkit 2003 doesn’t contain any sort of IDE, and so you’ll need to build applications using the compiler the old fashioned way, with a text editor and command prompt. In this article, I’ll outline the steps that you need to take to build and run applications with the Visual C++ Toolkit 2003 using only Notepad and a command prompt.
Download:
http://www.filewatcher.com/m/VCToolkitSetup.exe.32952488.0.0.html
ftp://ftp.drenik.net/programiranje/programski-jezici/VCToolkitSetup.exe
ftp://ftp.jaring.my/pub/microsoft/vctoolkit/VCToolkitSetup.exe
ftp://ftp.qut.edu.au/pub/mirrors/microsoft/vctoolkit/VCToolkitSetup.exe
Mar 06
Online Any Sinhala Font to Sinhala Unicode Converter
I found a great resource recently,
You can copy and paste any article written in Sinhala from any font and then it will convert to Sinhala Unicode.
Check it out,
http://www.ucsc.cmb.ac.lk/ltrl/services/feconverter/
An outstanding performance by UCSC.
Thank you.
Mar 06
මිරිසවැටියෙන් නිරූපිත ඓතිහාසික සන්ධිස්ථානය
මිරිසවැටි චෛත්යයෙන් නිරූපිත ඓතිහාසික සන්ධිස්ථානය
මිරිසවැටි චෛත්යය යන වචනයෙන් වැඩිමහලු පරම්පරාවට ඇතිවන චිත්තරූපය වන්නේ 1988 ට ප්රථම තිබූ දේවතාකොටූව හා කොත්කැරැල්ල නැති කෝම්පිටිටූවක් බඳු ස්ථූපයකි. නමූත් බාල පරම්පරාව අද දකින මිරිසවැටිය වන්නේ ඕනෑම විහාරස්ථානයක ඇති වර්ගයේ සූදුපාට ගෑ සාමාන්ය චෛත්යයකි. මහාවංශයට මිරිසවැටිය ගැන කියනවිට පටලැවීමක් ද සිදුවී ඇත. සේසත් එසවූ මඟුලින් සත් දිනකට පසූ දියකෙළි සඳහා ගිය දුටූගැමූණූ රජූ (ගාමිණී අබය) ආපසූ ඒම සඳහා කුන්තායූධය (අද පාර්ලිමේන්තුවේ සෙන්කෝළය බඳු ආධිපත්යයේ සංකේතය) වැඩම කරවීමට උත්සාහ කළ විට එය පොළොවට ඇලී එසවිය නොහැකි විය. එබැවින් ඒ වටකර දාගැබක් සෑදීය. (මහාවංශය 26(13) එහෙත් මිරිසවැටි චෛත්යය භිකෂූ සංඝයාට පූජා කරන අවස්ථාවේදී රජූ ප්රකාශ කර ඇත්තේ වෙනත් දෙයකි. එනම් සංඝයා සිහි නොකර (දන් නොදී) මිරිසවැටියක් (මිරිස් මාළුවක්) අනූභව කළ නිසා ඊට දඬූවමක් ලෙස මිරිස්වැටිය සැදූ බවය. (මහාවංශය 26(17) ලංකාවේ ඉතිහාසඥයන් බව කියන විශ්වවිද්යාල වැටූප් ලබන ඉතිහාස මහාචාර්යවරුනට මෙය වැදගත් සාධකයක් නූවූවද අප වැනි ඉතිහාස ගවේශකයන්ට එය වැදගති.

ලංකා ඉතිහාසය වංශ කතා ස්වරූපයෙන් ලියැවී ඇත. එහිදී සැලකිල්ලට ගෙන ඇත්තේ සිදුහත් කුමරුන්ගේ ශාක්ය වංශයෙන් පැවතෙන රජ පරපූරක් ලංකාවේ පැවති බවකි. එබැවින් එය “මහාවංශය” විය. “මහතං වංසො පවෙණි මහාවංසො” යනූවෙන් බූද්ධාදී මහෝත්තමයන්ගේ වංශය පරම්පරාවෙන් පරම්පරාවට ආ ප්රවේණි මහාවංසය ලෙස දක්වන බව නොසඟවා ප්රකාශයක් කර ඇත. ඒ අනූව සිද්ධාර්ථ කුමරුන්ගේ ශාක්ය රජ පරම්පරාව නොවන ලංකාවේ සිංහල රජ පරපූර සිද්ධාර්ථ කුමරුන්ගේ කපිල වස්තු රජ පරපූරම බවට පෙන්වීමට ව්යාජ කතා ගෙතීමට සිදුවී ඇත.වංශ කතාවක ආකෘතියක් තුළට ලංකා ඉතිහාසය ඇතුළු කළේ ඇයි ද යන්න පළමූව බැලිය යූතුය.
1947 දී ඉන්දියාව නමැති පෙඩරල් සමූහාණ්ඩූවක් බිහි වූවද ඉන් පෙර ඉන්දියාව නමැති රටක් නොවීය. යූරෝපය තරම් විශාල වූ ඉන්දියානූ අර්ධමහාද්වීපය තුළ රටවල් ගණනාවක් විය. විවිධ භාෂා කතා කළ විවිධ ජාතීන් ගණනක් මෙම රටවල වූහ. නමූත් “හින්දු” නමැති සංස්කෘතික සමානත්වයක් වූයේ යූරෝපයේ ක්රිස්තියානි සංස්කෘතික සමානත්වයට අනූරූපවය. මේ නිසා යූරෝපය ද අද “යූරෝපීය යූනියනය” ලෙස එකම රාජ්යයක් වෙමින් පවතී. මෙසේ ඉන්දියානූ ජාතියක් නොවීම නිසා ඓතිහාසික තොරතුරු සංග්රහ කර තැබීම සිදු වූයේ රාජ පරම්පරා නොහොත් රාජවංශ අනූවය. මෙම අවශ්යතාව හේතුකොට ගෙන භාරතීය රාජ්යවල ඉතිහාස පූවත් ලියැවූණේ රාජවංශවල කතා ප්රවෘත්ති ලෙසටය. ඒවාට වංශ කතා යැයි කියනූ ලැබේ. ලංකාවේ ඉතිහාසය ද මෙම වංශ කතා ආකෘතිය තුළට ඇතුළු කිරීම තුළින් මහාවංශය ලියැවී ඇත.
වංශ කතා හැමවිටම මහා කාව්ය ස්වරූපයක් ගැනීම කළේය. දණ්ඩීන්ගේ කාව්යාදර්ශයේ ඊට අවශ්ය මූල්ම උපදේශයන් ඇත. මහා කාව්යයක් හැමවිටම වීරයකුගේ වංශය සමග බැඳී තිබිණි. මහාවංශය කෘතියේ එම වීරයා වන්නේ දුෂ්ටගාමිණි ලෙස අන්වර්ථ නමක් දුන් ගාමිණී අබය රජතුමාය. ඓතිහාසික පූද්ගලයකු බවට සාකෂි නැති දෙවනපෑතිස් රජූ ද ඊට අඩූ වීරත්වයකින් වර්ණනා කරනූ ලැබ ඇත. මෙහිදී සඳහන් කළ යූතු කරුණක් වන්නේ ඉන්දියානූ ජාතියක් නොසිටි ඉන්දියාවේ වීරකාව්ය රටාව ලංකා ඉතිහාසය ලිවීමට යොදා ගැනීමෙන් අවූල් ජාලාවක පැටලී ඇති බවය. සිංහල රාජ වංශය කපිලවස්තු ශාක්යයන්ගේ වංශය කිරීමට ගොස් පැටලුන ආකාරය විමසා බලමූ.මහාවංශය පවසන පරිදි “ලෝක නායක වූ ශාස්තෘ තෙම දියවැසි වූද ගොඩවැසි වූද අසූ කෙළක් නාගයන් තුන් සරණයෙහි ද, ශීලයෙහි ද පිහිටූ වූ සේක. (1(6) දියවැසි යනූ යාත්රික (නාවික) වෙළෙඳුන්ය. ගොඩවැසි යනූ ගොඩබිම වෙළෙඳුන්ය. මෙය සිදු වූණේ බූද්ධත්වයෙන් පස් වැනි වසරේ බූදුන් නාගදීපයට වැඩි අවස්ථාවේදීය. ලංකාවේ දීපවංශයටත් මහා වංශයටත් සියවස් ගණනාවකට පෙර ලියූ සංස්කෘත මහායාන ග්රන්ථයක් වන “දිව්යාවදානයේ” කිය වෙන පරිදි මහියංගනය අසල දූවේගල නාග භවනයට නාගයන් විසින් කැඳවා ගෙන ගිය සැරියූත් තෙරුන්ගේ ශිෂ්ය සංඝරක්ඛිත තෙරුන් විසින් නාග දරුවන් තුන් දෙනකුට සඟ විනය උගන්වා පාඩම් කරවා ඇත. මෙය සත්යයක් බව ඔප්පූ වන්නේ දූවේගල ඇති සෙල්ලිපිය නිසාය. (ෂබිජරසචඑසදබි දෙ ජැහකදබ ඩදකථ ෂ පොතින් උපූටා දක්වන සෙල්ලිපිවල අංක මින් මතුවට ෂගකග අංක ලෙසට දක්වනූ ලැබේ.) ෂගකග 2707 1•2 ක් උසට කෙටූ නැවක රූපයක් ද මේ සමග ඇත. “මඩූකසලිය පූගියන” නමැති නැව් සමාගමේ (ෂගකග ංජසං පිටූව) නැව් ලාංඡනය ද මෙහි කුඹගස මූදුනේ ඇත. “භාරත සංඝරකඛිතගේ ලෙන” යනූ ලිපියේ අර්ථයයි. අසූ කෙළක් යන අතිශයෝක්තියෙන් කියන්නේ විශාල සංඛ්යාවක් වෙළෙඳුන් හා නාවිකයන් බූදුන් දවස තිසරණ පන්සිල්හි පිහිටිය බවය. එබැවින් පරිනිර්වාණය දිනයේ පැමිණි විජය හා පිරිසගෙන් ලංකාව මනූෂ්ය වාසයක් වූ බව පැවසීම මහාවංශයේම අනිත් කියූම්වලින් හා බාහිර සාකෂිවලින් නිෂේධ වී යයි.
දරන දූවේගල ලෙන් ලිපිය පවසන්නේ “බරතසඟරකිත්ය ලෙනෙ…” යනූවෙනි. අඩි
රුහූණෙහි වූ “ගෝශීර්ෂවන්දන” වනයේ සඳුන් දැව ගෙන ගොස් පූරාණ වෙළෙන්දා විසින් සූප්පාරකහි (සොපාරා) කුටියක් සාදා බූදුන්ට පිදීම ද දිව්යාවදානයේ සඳහන්ය. මෙම පූරාණ වෙළෙන්දා පසූව පැවිදි වී පූණ්ණ තෙරුන් විය. “කාම්බෝජ පූගියන” නම් නැව් සමාගම (ෂගකග ංජසංඃ පූණ්ණගේ මවූ පාර්ශ්වයේ සමාගමකි. කැලණිතිස්ස විහාරමහදේවී පරම්පරාව මෙම සින්ධූ දේශයේ මූලය පිහිටි නාග (නාවික) පරම්පරාවක් විය හැක. බෝවත්තෙගල, කොටා දැමූහෙල, මොටිටයාතල්ලු ප්රධාන කොට ඇති විහාරමහදේවී පරම්පරාවේ සෙල්ලිපිවල අකෂරයන් වන්නේ ප්රින්සෙප් විසින් “බ්රාහ්මී” ලෙස හැඳින් වූ අකෂරයන්ය. මේවායේ ඇති බ්රාහ්මී නොවන (බදබඃඊර්යපසැඃ සංකේත අතර මීන සංකේත වර්ග 10 ක් නැංගුම් සංකේත වර්ග 11 ක් ඇත. (ෂගකග ංංඩසඃ කැලණි වරාය (පානම හා කුමන අතර) මෙම අයගේ වෙළෙඳ බලය පිහිටි මහා වරාය විය. පූණ්ණ වෙළෙන්දා පැවිදි වී රහත් වූ පසූ සූනාපරන්තයේ පූණ්ණ තෙරුන් ලෙස හැඳින්විණ. ඔහූ විසින් සඳුන් දැව ලබාගත් වනාන්තරය හිමි රකුස් ග්රාමණී වනාහී දමරජ (යමකාල) පෙළපතට අයත් රාවණගේ මවූ පාර්ශ්වයට සම්බන්ධ අයෙකි. මේ සියලු දෙනා නාග (නාවික) ලෙස හැඳින්විණි. ගිනිකොණ දිග ලංකාවේ නාග ආධිපත්යය බිඳ වැටී යන්නේ බූද්ධකාලීනව සිදුවූ සූනාමියක් සහිතව ගොඩබිම කලාපය මූහූදට ගිලා බැසීම හේතුවෙනි.
කැලණිතිස්ස රජූන් දවස සිදුවූ මෙම විනාශය ගැන ඊජිප්තුවේ ඇලෙක්සැන්ඩ්රියා නාවූක විශ්වවිද්යාලයේ වාර්තා තිබූ අතර දැන් ඒවා ඇලෙක්සැන්ඩ්රියා ජාතික කෞතුකාගාරයේ ඇත. අදත් පානම ප්රදෙශයේ මෙම මූහූද ගොඩගැලීම ගැන පරම්පරාගතව ආ ජනශ්රැති ඇත. දින 7 ක්ම මූහූද ගොඩ ගැලූ බව එම ජනප්රවාදවල කියවේ. 2004 දෙසැ. 26 දා සූනාමිය මේනිසා කල් ඇතිව දැනගත් පානම ජනතාව උස්බිම්වලට ගොස් දිවි ගලවාගත් බව ජනමාධ්ය එම දිනවල වාර්තා කරන ලදී.
මෙම ඓතිහාසික තොරතුරු යටපත් කරමින් මහාවිහාර වංශ කතාව වූ මහා විහාර අටිඨකතාවේ ඇත්තේ සිදුහත් කුමරුගේ ඥාති අමිතෝදන රජූගේ මිණිබිරිය වූ භද්රකච්චායනාගේ දුවගේ හා මූණූපූරකු වූ දීඝායූ කුමරුගේ පූතකු වන උන්මාද චිත්රාගේ හා දීඝ ගාමිණීගේ පූත් පණ්ඩූකාභයගෙන් අනූරාධපූර රාජ්යය හා සිංහල රාජවංශය ඇති වූ බවකි. විජයට දරුවන් නොවූ නිසා පඬූවස්දෙව්ගේ කාලයේදී ඔහූගේ බිසව වන භද්රකච්චායනාගේ පරපූරට රාජ්යත්වය යන්නේ පණ්ඩූකාභය මගිනි. මෙම කතාන්තරය ගොඩනංවා ඇත්තේ සත්ය ඓතිහාසික සිදුවීමක් ආශ්රයෙනි. සෙල්ලිපිවල දැක්වෙන අයූරු කො(චො) රිකිය මහතිය නමැති අමිතෝදනගේ පූතකු ලංකාවේ නැගෙනහිර වෙරළ අසල පදිංචි විය. ෂගකග 350 දරන ඊචලම්පත්තුහි ලිපියේ මොහූගේ බිරිය කළ ලෙන් පූජාවක් ගැන කියවෙන අතර දීඝවාපිය අසල කලිඕඩේහි ඇති ලිපියකින් චොරිකිය මහතිස යනූ සීහහනූගේ පූත් අමිතෝදනගේ පූත්රයා බව කියැවේ. මෙය ඇසූරින් මනංකල්පිත අමිතෝදන මූණූපූරා වන දීඝායූ හා ඔහූගේ පූත් දීඝ ගාමිණී ද, මනංකල්පිත මිණිපිරිය වන භද්රකච්චායනා හා ඇගේ දුහිතෘ උන්මාද චිත්රා ද මහාවංශ කර්තෘ විසින් නිර්මාණය කර ඇත. එම කො(චො) රිකිය මහතිස හෙළ සමාජය තුළ ගිලී ගියා මිස සිංහල රජ පරපූරක් ආරම්භ කළේ නැත. දීපවංශයේදී “කච්චානා” නමැති අමිතෝදන මිණිපිරිය මහාවංශයේදී භද්රකච්චායනා වී ඇත. දීපවංශය හා මහාවංශය අයත් වන්නේ එකම මහාවිහාර සාහිත්ය සම්ප්රදායටය.
විජය කුමරුගේ පටන් දුටූගැමූණූ දක්වා සිටි මහාවංශ රජ පරපූරේ එකදු රජකුගේ සෙල් ලිපියක් තවම හමූ වී නැත. ලෙනක් සඟුනට පූජා කරන විට අනිවාර්යයෙන්ම එම පූජාව ගැන සෙල් ලිපියක් කෙටීම සම්ප්රදායක් වූ අතර දෙවනපෑතිස් රජූ මිහින්තලයෙහි ලෙන් 68 ක් සාදා සංඝයාට පූජා කළ බව මහාවංශය පවසයි. නමූත් කිසිදු දෙවනපෑතිස් සෙල් ලිපයක් මිහින්තලයේ දක්නට නැති නිසා එම ප්රවෘත්තිය විශ්වාස කළ නොහැක.
ගාමිණී අබය (මහාවංශ දුටූගැමූණූ) රජූගේ පරම්පරාව ගැන සෙල්ලිපි ප්රකාශ කරන දේ මීළඟට විමසා බලමූ. මාගම රාජ පරපූර ඇරඹූණේ දෙවනපෑතිස් රජූගේ බාල සොහොයූරු හා රුහූණට පලාගිය මහානාග යූව රජූගෙන්ය යන මතය පහසූවෙන්ම නිෂේධ වේ. සෙල්ලිපි 4 ක් ඇසූරෙන් පමණක් මෙම පරපූර දක්වන්නේ ලිපිය දීර්ඝවීම වැළැක්වීමටය.
1. දුටූගැමූණූ පරපූරේ ආදිතමයා ලෙස සෙල්ලිපි මගින් හැඳින ගැනීමට ඇත්තේ සූමන (සමන්) ය. ෂගකග 1035 තෝරමයිල්ලෑව ලිපිය මෙසේ කියයි. “මහරජන පනිත බඩකරික පරුමක සූමනහ…” පනිත මහරජූගේ භාණ්ඩාගාරික පරුමක සූමනගේ…. යනූ එහි අර්ථයයි. සූමන රෝහණයේ පාලකයා සහ “දීපරාජ මහරජ පණිතගේ” මූදල් ඇමැති ද විය. සමනලගිර “රෝහණ පබ්බත” ලෙස සඳහන්ය. සූමනගේ වරාය සමන්තොට (සමන්තුරේ) විය.
2. සූමනට පූතුන් 10 ක් විය. ඉන් වැඩිමලා දමරජය. දම රජූ යන්න පූද්ගල නාමය ද නැතිනම් තනතුරු නාමය ද යන්න පැහැදිලි නැත. බූදුන් මහියංගනයට වඩින අවස්ථාවේදී දමරජ ද පාලකයකු විය. ෂගකග 549 ලිපිය මෙසේ කියයි.
“සූමන පූත දස බතිකනෙ ජෙට සව ජෙටූහ පූත දමරජ පූත මහතිය අය කරිත ඉම ලෙනෙ මහසූදසූන සගස දිනෙ…” සූමනගේ පූතුන් වන දස බෑයන් අතුරින් වැඩිමලා වන දම රජූගේ පූත් මහතිස අය විසින් කරවන ලද මේ සූදර්ශන නම් ලෙන මහා සංඝයාට දුනි යනූ අර්ථයයි. මහාවංශයේ එන පඬූවස්දෙව් රජූගේ පූතුන් දස දෙනා සහ වැඩිමලා වූ මධ්යස්ථ මතධාරී අභය මේ ඇසූරින් නිර්මාණය වන්නට ඇත. මෙම දස බෑයන් වාණිජ වෙළෙඳුන් බව ෂගකග 487 ලිපියෙන් කියැවේ. ඔවූන්ගේ වරාය කැලණිය බව (කුමන හෝ පානම අසල ගිණිකොන ලංකාවේ) ඇලෙක්සැන්ඩ්රියා (ඊජිප්තු) කෞතුකාගාරයේ වාර්තා පවසයි. මහාවංශයේ කැලණිතිස්ස බවට පත්වී ඇත්තේ මෙම දමරජූගේ පූත් මහතිස අය වේ.
3. දෙවනපෑතිස් රජූගේ බාල සොහොයූරු වූද රුහූණට පලා ගොස් මාගම රජ පරපූර පිහිටූවූවා වූද මහානාග යූවරජූ නිර්මාණය කළේ කුමන ඓතිහාසික පූද්ගලයා හා ඓතිහාසික සිදුවීම ඇසූරින් ද යන්න ෂගකග 487 ලිපිය පැහැදිලි කරයි.
“දසබතික නවිනය උපරාජ නාග උපරාජ නාගහ මරුමකණකෙ මහපසදික අබය රජන පූත ගමිණි තිසහ විහර අගත අනගත බිකුසගස නියතෙ…” දසබතිකයන්ගේ නාවික නායකයා උපරාජ නාගය. උපරාජ නාගගේ පූත් මහපසාදික අබය රජූගේ පූත් ගාමිණී තිස්සගේ විහාරය පැමිණි නොපැමිණි සියලු භිකෂූ සංඝයාට නියත ලෙස දුනි යනූ එහි අර්ථයයි.
මහපසාදික අබය යනූ නිශ්චිත ලෙසම ගෝඨාභය රජූය. ඔහූගේ පූත් ගාමිණි ධූරන්ධර තිස්ස යනූ නිශ්චිත ලෙසම කාවන්තිස්සය. දසබෑ රජවරුන් ඝාතනය කළේ ගෝඨාභය බව ධාතුවංශය කියයි. එම අකුසලය ගෙවීමට විහාර ගොඩනැඟිලි සිය ගණනක් ගොඩනැංවීම නිසා ඔහූ මහාපාසාදික යන අන්වර්ථ නම ලදී. මේ අනූව යූවරජ නාග (මහානාග යූවරජූ) යනූ දෙවනපෑතිස්ගේ සහෝදරයෙක් නොව දසබතිකයන්ගේ නාවූක හමූදාපති වේ. ඔහූ දමරජ ප්රමූඛ දස බෑ රජූන් වෙතින් ඉවත්ව ගොස් මාගම රජ පෙළපත පිහිටූවීමේ ඓතිහාසික සිදුවීම මහාවංශය විසින් මහානාග යූවරජකු රුහූණට පලාගොස් මාගම රජ පරපූර පිහිටූවීම ලෙසට නිර්මාණය කර ඇත.
දමරජ පරපූරේ උරුමය දුටූගැමූණූට හිමි වූ අයූරු
සූමන දමරජඋපරාජ නාග
V V
මහතිස අය
මහපසදික අබය
(කැලණිතිස්ස) (ගෝඨාභය)
V V
අබිසවෙර + ගාමිණී තිස්ස
(විහාරමහදේවි) (කාවන්තිස්ස)
දුටූගැමූණූ
(ගාමිණි අබය)
4. කාවන්තිස්ස රජූ හා විහාරමහාදේවි කුමන පරම්පරාවලට අයත් ද යන්න ෂගකග 621 ලිපියෙන් පැහැදිලිවේ. “පිත මහරජහ බඩ කරික පරුමක සූමනහ පූත පරුමක චෙමස ලෙනෙ රකඛ තිසහ රකඛයයි නියතෙ අගත අනගත චතුදිශ ශගශ…” අර්ථය වන්නේ “පණිත මහරජූගේ භාණ්ඩාගාරික පරුමක සූමනගේ පූත් පරුමක චෙමසගේ ලෙන තිස්ස රජූගේ බිසව විසින් ආවා වූද නොආවා වූද සතරදිග මහා සංඝයාට නියත වශයෙන්ම දුනි” යන්නය. මෙහිදී රජූ නොව බිසව වැදගත් වන්නේ දමරජ පරපූරේ උරුමය කාවන්තිස්සට නොව විහාර මහාදේවියට හිමිවීම නිසාය. චෙමස යනූ විහාරමහාදේවියගේ සීයා කෙනෙකි. පිත මහ රජූ යනූ වලගම්බා යනූවෙන් මහාචාර්ය පරණවිතානයන් ඉදිරිපත් කර තිබූ මතය ද මින් නිෂේධ වී ඒ පණිත මහරජූ බව ඔප්පූ වේ. ඔහූ මහ රජකු වන බව හා දීපරාජ බව ෂගකග 37 දරන මිහින්තලය ලිපියෙන් පැහැදිලි වේ. උත්තිය මහරජකු ද මෙම මිහින්තලේ ලිපි අතර ඇත. ඔහූ ද දමරජ පරපූරේ අයෙකි. කැලණිතිස්ස බිසවට හසූන්පත් යැව්වේ මොහූ විය හැක.
මේ අනූව සූමනගේ පරම්පරාවේ දමරජ උරුමය දුටූගැමූණූට ඒමේ පරම්පරා 3 ක කාලයක් තුළ සිදුවී ඇත. එක පරම්පරාවකට අවූරුදු 30 ක කාලයක් දුන්නොත් ඒ අවූරුදු 90 තුළ සිදුවීමකි. බූදුන් මහියංගනයට වැඩම කර අවූරුදු 44 ක් ජීවමානව වැඩ විසූ නිසා බූද්ධ වර්ෂ 45 ට ප්රථම දුටූගැමූණූ රජ වන්නට ඇත. ඓතිහාසික සිදුවීම්වලට සමාන්තරව කතාවක් නිර්මාණය කළ මහාවංශ කර්තෘ එය අවූරුදු 383 ක කාලයක් දක්වා ඇද දීර්ඝ කරයි. මූඨසීව රජ වී අවූරුදු 152 කට පසූ ඔහූගේ බාල පූත් අසේල රජවීම වැනි අස්වාභාවික ආයූෂ මටිටම් දක්වා යෑමට මහානාම හිමියන්ට සිදුවී ඇත්තේ මේ නිසාය.
දස බතිකයන් දවස ඔවූන්ගෙන් කැඩී ගොස් වෙනම රාජධානියක් පිහිටූ වූ උපරාජ නාග පූත් ගෝඨාභය විසින් දස බෑ සොහොයූරන් මැරීම මහාවංශයේදී උන්මාද චිත්රාගේ පූත් පණ්ඩූකාභය කුමරු තම මයිලනූවන් 9 දෙනා මැරීමක් බවට පත් විය. මෙම විරසකය පෑහී සමගි වූණේ කාවන්තිස්ස හා විහාරමහාදේවී විවාහය නිසාය. මීට සමාන්තරව මහාවංශ කර්තෘ මහානාම හිමි විසින් බූද්ධ වංශයේ අමිතෝදන පරපූරට ලංකාවේ රාජ්යත්වය හිමි කරදීම දක්නට ඇත.
අමිතෝදන
භද්ර(කච්චාන) දීඝායූ
උන්මාද චිත්රා + දීඝගාමිණී
පණ්ඩූකාභය
අමිතෝදන පරපූරට මහාවංශය ලංකාවේ රාජ්ය උරුමය ලබාදුන් අයූරු
මහාවංශ කර්තෘට මෙවැනි දෙයක් කීමට අවශ්ය වූණේ ථෙරවාදී බූද්ධ ශාසනය ස්ථාපිත වූ රට ලංකාව වීම නිසාය. බූදුන්ගේ දේශයේ පිළිගැනීමට ලක් නොවී පිරිහී ගිය ශාසනය පිහිටූ වූණේ අනූරාධපූර අගනූවරෙහිය. මෙම ඓතිහාසික සත්යය ඉන්දියානූ ආකෘතියේ වංශ කතාවක් කරන්නට යෑමේදී එම වංශය බූද්ධ වංශය කිරීමට සිදු විය. අමිතෝදන පූත් චොරිකිය මහතිස ශාක්යඃකෝලිය යූද්ධය නිසා නැගෙනහිර ලංකාවට ඒම අමිතෝදන මූණූපූරන් හා මිණිපිරිය ලංකාවට අවූත් ශාක්ය රාජ වංශයක් ඇති කිරීම බවට පත් කළේය. මෙවැනි හපන්කමක් කිරීමට මහාවංශ කර්තෘට හැකි වූණේ දුටූගැමූණූ රජූ විසින් මවූ පාර්ශ්වයෙන් ලැබූණූ දමරජ පරපූරේ ආධිපත්යය යටපත් කර දමා බෞද්ධ ආධිපත්යය භාරගැනීම නිසාය. මහා විහාරය එය සැලකුවේ බූද්ධ වංශයේ ආධිපත්යය මෙරට ස්ථාපිත වීම ලෙසය. එහි කතා පූවත මිරිසවැටිය මගින් සංකේතවත් කර දක්වා ඇත.
මිරිසවැටිය දුටූගැමූණූ රජූගේ පළමූ වැනි චෛත්යයයි. එය දේවතා කොටූවක් හෝ කොත් කැරැල්ලක් නැති කෝම්පිටිටූවකි. වෙනත් වචනවලින් කිවහොත් සොහොන් ගැබකි. එහි නිධන් කළේ දුටූගැමූණූ රජූට රාජ්ය උරුමය හිමි කරදුන් දමරජ (යමකාල) පරපූරේ කුන්තායූධයයි. එසේ කරන්නට සිදු වූයේ බෞද්ධ භිකෂූන් ප්රධාන බූදු සසූනේ ආධිපත්යය දුටූගැමූණූ රජූ විසින් පිළිගැනීම නිසාය.
මහාවංශය පවසන පරිදි සේසත් ඔසවන ලද මඟුලින් සත් දවසක් ගිය තැන කෂත්රිය චාරිත්රය පරිදි ජල කී්රඩා කිරීමට රජූ සපිරිවරින් තිසා වැවට ගියේ වැව මනා ලෙස සරසා තිබියදීය. රජූගේ සියලු පරිභෝජ භාණ්ඩ හා පඬූරු බිම තැබූ පසූ කුන්තායූධය උසූලන රාජ පූරුෂයෝ එය සෘජූ කොට බිම තැබූහ. දියකෙළි අවසන් වී ආපසූ යෑමට කුන්තායූධය වැඩමවීමට උත්සාහ කළ විට එය පොළොවට ඇලී උඩට එසවීමට නොහැකි විය. එය දැක සතුටූ වූ රජූ ඒ වටා දාගැබක් නොහොත් සොහොන් ගැබක් කරවීය. (මහාවංශය 26(6ඃ14) ඊට තුන් අවූරුද්දක් ගත විණ. දාගැබ සංඝයාට පූජා කරන අවස්ථාවේදී රජූ ප්රකාශ කළේ වෙනත් දෙයකි. සංඝයා සිහි නොකොට (දන් නොදී) මිරිස් වැටියක් (මිරිස් මාළුවක්) අනූභව කිරීමේ වරදට තමනට දඬූවම ලෙස මිරිසවැටි දාගැබ ගොඩනැංවූ බවය. (මහාවංශය 26(17ඃ18) මෙවැනි එකකට එකක් පටහැනි කතා දෙකක් කීමට මහාවංශ කර්තෘ පෙළඹූණේ ඇයි?
විහාරමහාදේවියගේ දමරජ පරපූරේ බල දණ්ඩ නොහොත් කුන්තායූධය නොහොත් රාජ යෂ්ටිය නැංගුරම් හැඩයෙන් යූක්ත වන්නට ඇත. බ්රාහ්මී ලිපිවල ඇති බ්රාහ්මී නොවන සංකේතවල එකතුවක් (ගුවන්යානා ලාංඡන හැර) මහාචාර්ය පරණවිතානගේ ෂගකග ංංඩස පිටූවේ ඇත. එහි 4් සිට 4ා දක්වා සංකේත 4270 ලිපියෙහි එහි නැවක රූපය (සංඝරක්ඛිත හිමියන් දූවේගල දක්වා පැමිණි) අඩි 7 ක් උසට කොටා ඇත.
න් එකක් මෙම යම දණ්ඩ වීමට පූළුවන. විහාරමහාදේවියගේ සෙල්ලිපිවන කොටා දැමූ හෙළ හා බෝවත්තේගල ලිපිවල මෙම සංකේත ඇතුළත් අතර එක් ලිපියක් මිහින්තලේ ඇත. එය “ගාමිණි දමරජගේ” නම සෘජූවම සඳහන් කරයි. බෝවත්තේගල හා කොටාදැමූහෙළ ඇති මීන ලාංඡන ද වැදගත්ය. දමරජ පරපූරේ ලිපිවල මෙම නැංගුරම් ලාංඡනය හා මීන ලාංඡන තිබීම නිසා ඔවූන් නාවික වෙළෙඳුන් බව ප්රත්යකෂ වේ. කුන්තායූධයෙහි මූදුන හැමවිටම “මඩූකසලිස පූගියන” නැව් සමාගමේ (ෂගකග ංජසි පිටූව) ලාංඡනයම වේ. ෂගකග
දුටූගැමූණූ රජූ විසින් භිකෂූන් වහන්සේලා ප්රමූඛ බූද්ධ ශාසනයේ ආධිපත්යය පිළිගෙන දමරජ පරපූරේ හෙළ ආධිපත්යය නිධන් කිරීම මිරිසවැටියේ කථා ප්රවෘත්තියයි. මහා වංශකරුගේ එම ප්රවෘත්තිය නිවැරදි අතර මිරිස් වැටියක් අනූභවයට තමාට දඬූවම ලෙස මිරිසවැටි දාගැබ සෑදීම ප්රවෘත්තිය නිර්මාණයකි. මහානාම හිමි එය පවසන්නේ ද දුටූගැමූණූ රජූ විසින් මහා සංඝයා වෙත කරන ලද ප්රකාශයක් ලෙසට පමණි. මිරිසවැටිය නාමය පාළියට මරිචූවටිටි ලෙස පරිවර්තනය කිරීම මේ අවූලට මූල විය. සංස්කෘතයට එය පරිවර්තනය වී ඇත්තේ මරිච්ූවෘත්ති ලෙසටය. එය මිරිස් මාළුව නොවේ. අභාවප්රාප්ත පූරාවිද්යා කොමසාරිස් ඇම්. එච්. සිරිසෝම මහතා තම ගවේෂණ තුළින් සොයා ඉදිරිපත් කළේ මෙම භූමිය අතීතයේ “මිරිස්පිටිය” ලෙස හැඳින් වූ බවය. එබැවින් දාගැබ “මිරිසපිටිය දාගැබ” ලෙස හැඳින් වී කාලයාගේ ඇවෑමෙන් “මිරිසවැටිය දාගැබ” නම් වූ බවය. ගල්තලාවක් වූ මෙය දාගැබක් තැනීමට නූසූදුසූ අත්තිවාරම් හෑරීමට අපහසූ ස්ථානයකි.
මිරිසවැටි සර්වඥ ධාතු හෝ අගසව් ධාතු හෝ වෙනත් රහත් තෙර නමකගේ හෝ ධාතූන් මෙහි තැන්පත් කළ බවට මහාවිහාර සාහිත්ය කෘති කිසිවක සඳහන් නැත. එබැවින් මෙය හූදු නිධන් ගැබක් පමණි. ඓතිහාසික බවට සාකෂි නැති එළාර නම් රජූ සමග සටනට යෑමේදී ගැමූණූ කුමරුගේ ආදර්ශ පාඨය වූණේ “මාගේ මේ ව්යායාමය රජ සැප සඳහා නොව බූද්ධ ශාසනයේ චිරස්ථිතිය සඳහාය” යන්නයි. එමෙන්ම යූද හමූදාව සමග මහා සංඝයා ද වැඩම කළ බව වංශ කතා පවසයි. විහාරමහාදේවිය ද අවසන් කාලයේ “සවෙර ශමණිය” ලෙසට පැවිදි වී සිටි බවට සෙල්ලිපි සාකෂි ඇත. (ෂග කග 14,…) එහිදී කැලණිතිස්ස රජූ හැඳින්වෙන්නේ “කණගම තිස්ස” රජූ ලෙසටය. කැලණි රාජ්යයේ මධ්යස්ථානය කණගම වූවා විය හැක.
දේශීය හෙළ රාජාධිපත්යය යටපත් කර මේ වන විටත් විදේශීය තත්ත්වයෙන් තිබූණූ බෞද්ධ ආධිපත්යය පිළිගැනීම නිසා දුටූගැමූණූ රජූට මහාවංශයේ වීර චරිතය හිමි විය. අනූරාධපූර රජවීමෙන් පසූ වැව් තැනීමක් නොව බෞද්ධ විහාරාරාමයන් පමණක් දුටූගැමූණූ රජූ විසින් ඉදිකර ඇත. මහාථූපය නමින් මහාවංශය හඳුන්වන රුවන්මැලිසෑය ගැන කීමට පරිච්ඡේද 5 ක් තුළ ගාථා 346 ක්ද, ලෝහ ප්රාසාදය ගැන ගාථා 47, මිරිසවැටිය ගැන එක ගාථාවක් ද යෙදී ඇත. මිරිසවැටිය සෑදීමට නිමිත්ත වූ කුන්තායූධය පොළවට ඇලීම ගැන ගාථා 8 කි. මහාථූපය වූ රුවන්මැලි සෑයට වඩා වට ප්රමාණයෙන් හා උසින් ද වැඩි ලංකාවේ විශාලම චෛත්යය වන ෙඃතවනාරාමය සෑදීම ගැන කීමට මහාවංශ කර්තෘ වැය කළේ ද එක ගාථාවක් පමණි.
ක සම්පූර්ණ පරිච්ඡේදයක් ද
චෛත්යයේ ප්රමාණය නොව කර්තෘගේ අවශ්යතාව මත එම විස්තර අඩූවැඩි වීම ඉන් පැහැදිලිය.
දුටූගැමූණූ රජූගේ ශ්රද්ධා භක්තියට අනූව අනූරපූර ජයගත් පසූ අති උත්කර්ෂවත් ලෙස ගොස් මහාබෝධිය හා ථූපාරාමය වන්දනා කිරීමත් අපේකෂා කළ හැකි වූවද එවැන්නක තොරතුරු වංශ කතාවල නැත. යූද්ධයේදී මිනිසූන් මැරීම ගැන කම්පිතව නිදි නැතිව සිටි රජූ සැනසීමට රහතන් වහන්සේලා වැඩියේ පූවඟු දිවයිනෙනි. (මහාවංශය 25(104,105) මහා විහාරය මෙකල තිබූණේ ද යන සැකයක් පහළ වන අතර එය තීව්ර වන්නේ රුවන්මැලි සෑ කර්මාන්තය අරඹන දින ලොව නන් දෙසින් වැඩම කළ තෙරුන් සංඛ්යාව අනූහය ලකෂයක් ලෙසට ගිණූම්ගත කර ඇති අතර මහා විහාරයෙන් පැමිණි එක භිකෂූවක් හෝ ගිණූමට හර වී ඇත. සොළොස්මස්ථාන වන්දනා කරන ගාථාවේ අනූපිළිවෙළක් ඇති අතර තිස්සමහාරාමය, ශී්රමහා බෝධිය, මිරිසවැටිය, රුවන්මැලි සෑය, ථූපාරාමය හා අභයගිරිය යන අනූපිළිවෙළ ඇත්තේ ඇයි ද යන්න විමසිය යූතුය. තිස්සමහාරාමයට පසූව මහා බෝධිය හා ථූපාරාමය එන්නේ ඇයි? කාවන්තිස්ස හා දුටූගැමූණූ කාල නිර්ණයට මෙම සාධකය ද වැදගත් වේ.
මහාවංශයේ කිසිම තැනෙක හෙළ නමැති රටක් හෝ ජාතියක් සඳහන් නොවේ. සෙල්ලිපි සාකෂිවලට අනූව බූද්ධ පරිනිර්වාණයෙන් අවූරුදු 45 තුළ දුටූගැමූණූ අනූරපූර රජවෙයි. ඉන් පසූව “හෙළ” නාමය අතුරුදන් වී එහි සංස්කෘත පරිවර්තනය වන “සිංහල” නාමය රටට හා ජාතියට භාවිත වේ. මෙය සමාන වන්නේ ඉංගිරිසි ආධිපත්යය තුළ “සිංහලේ” නමැති රට “සිලෝන්” වී ජාතිය “සිලනීස්” වීමටය. “ලාංකිකයා යනූ සිලනීස් නොහොත් සිලෝනිස් යන්නේ සිංහල පරිවර්තනයයි.
මෙසේ සිංහල ශිෂ්ටාචාරයකුත් බෞද්ධ සංස්කෘතියකුත් ඇති රටක් බවට ලංකාව පත්වීම ඉංගිරිසීන්ට තේරුම් ගැනීමට අපහසූ විය. එබැවින් ඔවූහූ “සිංහලඃබෞද්ධ” (ීසබය්කැිැඃඊමාායසිඑඃ යන නමක් පට බැන්දාහ. වර්තමානයේ අප විසින් අප හඳුන්වා ගන්නේ ඉංගිරිසිකාරයාට නොවැටහූණූ මෙම ජාතිකත්වයෙනි. වැව් ශිෂ්ටාචාරයක් ඇති සිංහලයාගේ සාහිත්ය, චිත්ර කලාව, මූර්ති ශිල්පය, ගෘහ නිර්මාණය ඇතුළු සියලු සංස්කෘතික අංග බූද්ධ ශාසනයෙන් හැසිරවීමේ හේතුව මෙම මිරිසවැටි පරිවර්තනයයි. එබැවින් මිරිසවැටි චෛත්යය යනූ අප ඉන්දියානූ සංස්කෘතික ආධිපත්යයට අවතීර්ණ වූ මංසන්ධියකි. අද ඉන්දියානූ ආර්ථික ආධිපත්යයට හා ඉන්දියානූ දේශපාලන ආධිපත්යයට ද අවනත වීමට යන බවක් බැලූ බැල්මට පෙනේ. නමූත් යූගයක් අවසන් වී ඇත.
1988 දී මිරිසවැටිය දාගැබ බිඳ වැටිණි. 21 වැනි සියවස ඇරැඹීමත් සමග නැඟෙන “රාවණ හා හෙළ හඬ” විමර්ශනශීලී දෙසවන්වලට ඇසේ. ඉතිහාසය නැවතත් සන්ධිස්ථානයකට පැමිණ ඇත. ආනල්ඩ් ටොයිම්බි පඬූවාගේ ඉතිහාසය යළි මතුවේ (්යසිඑදරහ රුචැ්එිඃ නමැති ජනප්රිය න්යාය හැදෑරීමට මේ කාලයයි.
-ආචාර්ය සූරිය ගුණසේකර
Mar 06
Full Sinhala Unicode Characters List
| Character (decimal) |
Decimal | Character (hex) |
Hex | Name |
|---|---|---|---|---|
| ෆං | 3458 | ෆං | 0D82 | SINHALA SIGN ANUSVARAYA (combined with fayanna (ෆ)) |
| ෆඃ | 3459 | ෆඃ | 0D83 | SINHALA SIGN VISARGAYA (combined with fayanna (ෆ)) |
| අ | 3461 | අ | 0D85 | SINHALA LETTER AYANNA |
| ආ | 3462 | ආ | 0D86 | SINHALA LETTER AAYANNA |
| ඇ | 3463 | ඇ | 0D87 | SINHALA LETTER AEYANNA |
| ඈ | 3464 | ඈ | 0D88 | SINHALA LETTER AEEYANNA |
| ඉ | 3465 | ඉ | 0D89 | SINHALA LETTER IYANNA |
| ඊ | 3466 | ඊ | 0D8A | SINHALA LETTER IIYANNA |
| උ | 3467 | උ | 0D8B | SINHALA LETTER UYANNA |
| ඌ | 3468 | ඌ | 0D8C | SINHALA LETTER UUYANNA |
| ඍ | 3469 | ඍ | 0D8D | SINHALA LETTER IRUYANNA |
| ඎ | 3470 | ඎ | 0D8E | SINHALA LETTER IRUUYANNA |
| ඏ | 3471 | ඏ | 0D8F | SINHALA LETTER ILUYANNA |
| ඐ | 3472 | ඐ | 0D90 | SINHALA LETTER ILUUYANNA |
| එ | 3473 | එ | 0D91 | SINHALA LETTER EYANNA |
| ඒ | 3474 | ඒ | 0D92 | SINHALA LETTER EEYANNA |
| ඓ | 3475 | ඓ | 0D93 | SINHALA LETTER AIYANNA |
| ඔ | 3476 | ඔ | 0D94 | SINHALA LETTER OYANNA |
| ඕ | 3477 | ඕ | 0D95 | SINHALA LETTER OOYANNA |
| ඖ | 3478 | ඖ | 0D96 | SINHALA LETTER AUYANNA |
| ක | 3482 | ක | 0D9A | SINHALA LETTER ALPAPRAANA KAYANNA |
| ඛ | 3483 | ඛ | 0D9B | SINHALA LETTER MAHAAPRAANA KAYANNA |
| ග | 3484 | ග | 0D9C | SINHALA LETTER ALPAPRAANA GAYANNA |
| ඝ | 3485 | ඝ | 0D9D | SINHALA LETTER MAHAAPRAANA GAYANNA |
| ඞ | 3486 | ඞ | 0D9E | SINHALA LETTER KANTAJA NAASIKYAYA |
| ඟ | 3487 | ඟ | 0D9F | SINHALA LETTER SANYAKA GAYANNA |
| ච | 3488 | ච | 0DA0 | SINHALA LETTER ALPAPRAANA CAYANNA |
| ඡ | 3489 | ඡ | 0DA1 | SINHALA LETTER MAHAAPRAANA CAYANNA |
| ජ | 3490 | ජ | 0DA2 | SINHALA LETTER ALPAPRAANA JAYANNA |
| ඣ | 3491 | ඣ | 0DA3 | SINHALA LETTER MAHAAPRAANA JAYANNA |
| ඤ | 3492 | ඤ | 0DA4 | SINHALA LETTER TAALUJA NAASIKYAYA |
| ඥ | 3493 | ඥ | 0DA5 | SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA |
| ඦ | 3494 | ඦ | 0DA6 | SINHALA LETTER SANYAKA JAYANNA |
| ට | 3495 | ට | 0DA7 | SINHALA LETTER ALPAPRAANA TTAYANNA |
| ඨ | 3496 | ඨ | 0DA8 | SINHALA LETTER MAHAAPRAANA TTAYANNA |
| ඩ | 3497 | ඩ | 0DA9 | SINHALA LETTER ALPAPRAANA DDAYANNA |
| ඪ | 3498 | ඪ | 0DAA | SINHALA LETTER MAHAAPRAANA DDAYANNA |
| ණ | 3499 | ණ | 0DAB | SINHALA LETTER MUURDHAJA NAYANNA |
| ඬ | 3500 | ඬ | 0DAC | SINHALA LETTER SANYAKA DDAYANNA |
| ත | 3501 | ත | 0DAD | SINHALA LETTER ALPAPRAANA TAYANNA |
| ථ | 3502 | ථ | 0DAE | SINHALA LETTER MAHAAPRAANA TAYANNA |
| ද | 3503 | ද | 0DAF | SINHALA LETTER ALPAPRAANA DAYANNA |
| ධ | 3504 | ධ | 0DB0 | SINHALA LETTER MAHAAPRAANA DAYANNA |
| න | 3505 | න | 0DB1 | SINHALA LETTER DANTAJA NAYANNA |
| ඳ | 3507 | ඳ | 0DB3 | SINHALA LETTER SANYAKA DAYANNA |
| ප | 3508 | ප | 0DB4 | SINHALA LETTER ALPAPRAANA PAYANNA |
| ඵ | 3509 | ඵ | 0DB5 | SINHALA LETTER MAHAAPRAANA PAYANNA |
| බ | 3510 | බ | 0DB6 | SINHALA LETTER ALPAPRAANA BAYANNA |
| භ | 3511 | භ | 0DB7 | SINHALA LETTER MAHAAPRAANA BAYANNA |
| ම | 3512 | ම | 0DB8 | SINHALA LETTER MAYANNA |
| ඹ | 3513 | ඹ | 0DB9 | SINHALA LETTER AMBA BAYANNA |
| ය | 3514 | ය | 0DBA | SINHALA LETTER YAYANNA |
| ර | 3515 | ර | 0DBB | SINHALA LETTER RAYANNA |
| ල | 3517 | ල | 0DBD | SINHALA LETTER DANTAJA LAYANNA |
| ව | 3520 | ව | 0DC0 | SINHALA LETTER VAYANNA |
| ශ | 3521 | ශ | 0DC1 | SINHALA LETTER TAALUJA SAYANNA |
| ෂ | 3522 | ෂ | 0DC2 | SINHALA LETTER MUURDHAJA SAYANNA |
| ස | 3523 | ස | 0DC3 | SINHALA LETTER DANTAJA SAYANNA |
| හ | 3524 | හ | 0DC4 | SINHALA LETTER HAYANNA |
| ළ | 3525 | ළ | 0DC5 | SINHALA LETTER MUURDHAJA LAYANNA |
| ෆ | 3526 | ෆ | 0DC6 | SINHALA LETTER FAYANNA |
| ෆ් | 3530 | ෆ් | 0DCA | SINHALA SIGN AL-LAKUNA (combined with fayanna (ෆ)) |
| ෆා | 3535 | ෆා | 0DCF | SINHALA VOWEL SIGN AELA-PILLA (combined with fayanna (ෆ)) |
| ෆැ | 3536 | ෆැ | 0DD0 | SINHALA VOWEL SIGN KETTI AEDA-PILLA (combined with fayanna (ෆ)) |
| ෆෑ | 3537 | ෆෑ | 0DD1 | SINHALA VOWEL SIGN DIGA AEDA-PILLA (combined with fayanna (ෆ)) |
| ෆි | 3538 | ෆි | 0DD2 | SINHALA VOWEL SIGN KETTI IS-PILLA (combined with fayanna (ෆ)) |
| ෆී | 3539 | ෆී | 0DD3 | SINHALA VOWEL SIGN DIGA IS-PILLA (combined with fayanna (ෆ)) |
| ෆු | 3540 | ෆු | 0DD4 | SINHALA VOWEL SIGN KETTI PAA-PILLA (combined with fayanna (ෆ)) |
| ෆූ | 3542 | ෆූ | 0DD6 | SINHALA VOWEL SIGN DIGA PAA-PILLA (combined with fayanna (ෆ)) |
| ෆෘ | 3544 | ෆෘ | 0DD8 | SINHALA VOWEL SIGN GAETTA-PILLA (combined with fayanna (ෆ)) |
| ෆෙ | 3545 | ෆෙ | 0DD9 | SINHALA VOWEL SIGN KOMBUVA (combined with fayanna (ෆ)) |
| ෆේ | 3546 | ෆේ | 0DDA | SINHALA VOWEL SIGN DIGA KOMBUVA (combined with fayanna (ෆ)) |
| ෆෛ | 3547 | ෆෛ | 0DDB | SINHALA VOWEL SIGN KOMBU DEKA (combined with fayanna (ෆ)) |
| ෆො | 3548 | ෆො | 0DDC | SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA (combined with fayanna (ෆ)) |
| ෆෝ | 3549 | ෆෝ | 0DDD | SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA (combined with fayanna (ෆ)) |
| ෆෞ | 3550 | ෆෞ | 0DDE | SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA (combined with fayanna (ෆ)) |
| ෆෟ | 3551 | ෆෟ | 0DDF | SINHALA VOWEL SIGN GAYANUKITTA (combined with fayanna (ෆ)) |
| ෆෲ | 3570 | ෆෲ | 0DF2 | SINHALA VOWEL SIGN DIGA GAETTA-PILLA (combined with fayanna (ෆ)) |
| ෆෳ | 3571 | ෆෳ | 0DF3 | SINHALA VOWEL SIGN DIGA GAYANUKITTA (combined with fayanna (ෆ)) |
| ෆ෴ | 3572 | ෆ෴ | 0DF4 | SINHALA PUNCTUATION KUNDDALIYA |
Mar 03
Complete Guide to Installing and Typing Sinhala
For most of us, installing and typing Sinhala was a daunting task.
I found a combination of applications, gadgets supplied by,
- ICTA Sri Lanka
- UCSC (University of Colombo Sri Lanka)
To do the trick.
Miss placed Sinhalese characters in a sentence are a thing of the past now.
Installing Sinhala Unicode
Visit: http://locallanguages.lk/OS_Support
scroll down and select the installation according to you operating system.
I recommend that W1nd0vvs XP users download the installation pack,
http://locallanguages.lk/files/SinhalaTamilKit_XP.exe
Complete the installation and restart the computer.
After restart you will have Sinhala Unicode installed on your computer.
Typing Sinhala Unicode
Best resource I could find for typing Sinhala, is the
Online Unicode Keyboard: http://www.ucsc.cmb.ac.lk/ltrl/services/keyboard/
The second resource is the iGoogle gadget for typing Sinhala
http://www.google.com/ig/adde?moduleurl=www.google.com/ig/modules/sinhala_keyboard.xml

Help : Unclear too small Sinhala characters
Best posssible option for viewing such pages is to zoom the browser window.
You will be amazed with the quality of the text when you zoom in.
For Firefox uses, a very easy way to zoom-in to a page is,
- While pressing Ctrl (Control Key of your keyboard), rotate the mouse wheel.
To reset to default zoom press,
- Press Ctrl (Control Key of your keyboard) and 0 (Zero)
Recent Comments