jhotdraw ड्राइंग के लिए जावा में एक ओपनसोर्स प्रोजेक्ट है। यह क्यूबिक बेजियर घटता में मुक्त हाथ चित्रों को परिवर्तित करता है। स्रोत उपलब्ध है - डाउनलोड करें और अनुवाद करें। परियोजना के आकार पर डर मत हो: आप अर्थात् वर्गों में से केवल एक जोड़े की जरूरत है: (उपयोग वैक्टर आप केवल FP10 उपयोगकर्ताओं को लक्षित कर रहे हैं) सरणी के लिए सभी संग्रह घोषणाओं बदलकर शुरू में अनुवाद के दौरान
org.jhotdraw.geom.Bezier
org.jhotdraw.geom.BezierPath
org.jhotdraw.geom.Geom
। मेरे पास कुछ regexes है कि आप रूपांतरण में उपयोगी पा सकते हैं - यदि आप चाहें तो मैं उन्हें पोस्ट कर सकता हूं।
यहां रेगेक्स की एक सूची है जो आपको उपयोगी मिल सकती है। प्रत्येक जोड़ी में, पहले को खोज टेक्स्ट क्षेत्र में पेस्ट करें और दूसरे स्थान को प्रतिस्थापित करने के लिए पेस्ट करें, रेगेक्स चेक बॉक्स को चेक करें और खोजें और बदलें बटन का उपयोग करें। Replace All
का उपयोग न करें - इनमें से कोई भी मूर्खतापूर्ण होने की गारंटी नहीं है।
var name:Number
\b(double|int)\s+(\w+)\b
var $2:Number
के साथ सभी int/double name
घोषणाओं बदलें var name:Point
\bPoint2D\.Double\s+(\w+)\b
var $1:Point
के साथ सभी Point2D.Double name
घोषणाओं की जगह के साथ समारोह हस्ताक्षर में सभी int/double name
घोषणाओं बदलें name:Number
\(([^)]*)\b(?:double|int)\s+(\w+)\b([^)]*?)\)
($1$2:Number$3)
विधि हस्ताक्षर बदलने से पहले name:Point
\(([^)]*)\b(?:Point2D\.Double)\s+(\w+)\b([^)]*?)\)
($1$2:Point$3)
साथ समारोह हस्ताक्षर में सभी Point2D.Double name
घोषणाओं बदलें, सुनिश्चित करें कि सभी तरीकों स्थिर कर रहे हैं:
(public|private)\s+(?!static)
प्रारूप के रूप में
(public|private)\s+static\s+(\w+)\s+(\w+)\s*\(([^)]*)\)
$1 static function $3($4):$2
लिए विधि हस्ताक्षर बदलें सरणी [अनुक्रमणिका] // के साथ ArrayList.get (अनुक्रमणिका) को बदलें // चेतावनी: list.get (सूची के लिए विफल रहता है।आकार() - 1)
(\w+)\.get\(([^)]+)\)
$1[$2]
//avoid the() failure
(\w+)\.get\(([^)]*(?:\([^)]*\))[^)]*)\)
$1[$2]
array[index] = element
// चेतावनी के साथ बदलें ArrayList.set(index, element)
: list.set (i, list.size())
(\w+)\.set\(([^,]+)\s*,\s*([^)]+)\)
$1[$2] = $3
/*the above regex successfully made the following replacement*/
cleaned.set(cleaned.size() - 1, digitizedPoints[digitizedPoints.size() - 1])
cleaned[cleaned.size() - 1] = digitizedPoints[digitizedPoints.size() - 1]
array.push(object)
साथ
arraylist.add(object)
बदलें के लिए विफल रहता है
//would fail if object contains ')'
//add(index, object) should be done with splice
(\w+)\.add\(([^)]+)\)
$1.push($2)
//too many failures - fail safe version -
//still fails for nested parenthesis list.add(new Point(a.first(), a.last()))
//- only three such cases - the effort to match parenthesis wouldn't be worth it
//works for list.add(new Point(3, 4)) - there were many similar cases
(\w+)\.add\(([^)]*(?:\([^)]*\))[^)]*)\)
$1.push($2)
एएस प्रारूप (गैर स्थैतिक विधियों) में विधि हस्ताक्षर बदलें
(public|private)\s+(?!function)(\w+)\s+(\w+)\s*\(([^)]*)\)
$1 function $3($4):$2
name:type
\(([^)]*)\b(\w+)\s+(\w+)\b([^)]*?)\)
($1$3:$2$4)
साथ समारोह हस्ताक्षर में सभी int/double/point/boolean name
घोषणाओं बदलें ब्रेसिज़ के प्रारूप के रूप में
^(\s+)(\w+)\s+(\w+)\s*=\s*(.+?)\s*;(\s*)$
$1var $3:$2 = $4;$5
परिवर्तन रखने के लिए एक = के साथ अपनी स्वयं की पंक्ति में सभी चर घोषणाओं बदलें।
^(\t)(\s*)([^\n]+)\{\s*(\n)\s+
$1$2$3$4$1$2{$4$1$2
परिवर्तन } else
} \n else
^([ \t]+)}[ \t]*else\b([^\n]*)(\n)
$1}$3$1else$2$3
में अलग लाइनों में के रूप में करने के लिए एक पंक्ति में 4 चर घोषणाओं बदलें
^(\t+)(\w+)\s+(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*;[ \t]*(\n)
$1var $3:$2;$7$1var $4:$2;$7$1var $5:$2;$7$1var $6:$2;$7
सरणी घोषणाओं बदलें
^(\s+)\w+\[\]\s*(\w+)\b
$1 var $2:Array
निकालें() कास्टिंग - संकलक के रूप में पसंद नहीं है उन्हें
(?:\(\w+\)\s*)([^ ,*+;/)><=\-])
$1
Math.max में बदलें अधिकतम आदि - के रूप में स्थिर आयात
(?<!Math\.)\b(max|min|abs|sqrt|PI|cos|sin|atan2)\(
Math.$1(
मैं वही चीज़ ढूंढ रहा हूं लेकिन जावास्क्रिप्ट, क्या आप किसी को जानते हैं? – igor