google-adk 0.0.2__py3-none-any.whl → 0.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- google/adk/._version.py +0 -0
- google/adk/cli/agent_graph.py +31 -5
- google/adk/cli/browser/index.html +1 -1
- google/adk/cli/browser/{main-XUU6OGCC.js → main-SY2WYYGV.js} +1 -1
- google/adk/cli/cli_tools_click.py +51 -6
- google/adk/cli/fast_api.py +19 -9
- google/adk/docs/Makefile +20 -0
- google/adk/docs/build/doctrees/google-adk.doctree +0 -0
- google/adk/docs/build/html/_sources/google-adk.rst.txt +98 -0
- google/adk/docs/build/html/_sources/index.rst.txt +7 -0
- google/adk/docs/build/html/_static/autodoc_pydantic.css +27 -0
- google/adk/docs/build/html/_static/basic.css +925 -0
- google/adk/docs/build/html/_static/debug.css +85 -0
- google/adk/docs/build/html/_static/doctools.js +156 -0
- google/adk/docs/build/html/_static/documentation_options.js +29 -0
- google/adk/docs/build/html/_static/file.png +0 -0
- google/adk/docs/build/html/_static/language_data.js +199 -0
- google/adk/docs/build/html/_static/minus.png +0 -0
- google/adk/docs/build/html/_static/plus.png +0 -0
- google/adk/docs/build/html/_static/pygments.css +274 -0
- google/adk/docs/build/html/_static/scripts/furo-extensions.js +16 -0
- google/adk/docs/build/html/_static/scripts/furo.js +19 -0
- google/adk/docs/build/html/_static/scripts/furo.js.LICENSE.txt +7 -0
- google/adk/docs/build/html/_static/scripts/furo.js.map +1 -0
- google/adk/docs/build/html/_static/searchtools.js +620 -0
- google/adk/docs/build/html/_static/skeleton.css +312 -0
- google/adk/docs/build/html/_static/sphinx_highlight.js +170 -0
- google/adk/docs/build/html/_static/styles/furo-extensions.css +18 -0
- google/adk/docs/build/html/_static/styles/furo-extensions.css.map +1 -0
- google/adk/docs/build/html/_static/styles/furo.css +18 -0
- google/adk/docs/build/html/_static/styles/furo.css.map +1 -0
- google/adk/docs/build/html/genindex.html +861 -0
- google/adk/docs/build/html/google-adk.html +5461 -0
- google/adk/docs/build/html/index.html +567 -0
- google/adk/docs/build/html/objects.inv +0 -0
- google/adk/docs/build/html/py-modindex.html +373 -0
- google/adk/docs/build/html/search.html +333 -0
- google/adk/docs/build/html/searchindex.js +17 -0
- google/adk/docs/source/conf.py +133 -0
- google/adk/docs/source/google-adk.rst +98 -0
- google/adk/docs/source/index.rst +7 -0
- google/adk/version.py +1 -1
- {google_adk-0.0.2.dist-info → google_adk-0.0.3.dist-info}/METADATA +1 -1
- {google_adk-0.0.2.dist-info → google_adk-0.0.3.dist-info}/RECORD +46 -14
- google/adk/cli/media_streamer/__init__.py +0 -19
- google/adk/cli/media_streamer/index.html +0 -228
- google/adk/tests/integration/fixture/flow_complex_spark/sample.debug.log +0 -243
- google_adk-0.0.2.dist-info/LICENSE +0 -202
- {google_adk-0.0.2.dist-info → google_adk-0.0.3.dist-info}/WHEEL +0 -0
- {google_adk-0.0.2.dist-info → google_adk-0.0.3.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2025 Google LLC
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
|
17
|
+
/*
|
18
|
+
This CSS file should be overridden by the theme authors. It's
|
19
|
+
meant for debugging and developing the skeleton that this theme provides.
|
20
|
+
*/
|
21
|
+
body {
|
22
|
+
font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
|
23
|
+
"Apple Color Emoji", "Segoe UI Emoji";
|
24
|
+
background: lavender;
|
25
|
+
}
|
26
|
+
.sb-announcement {
|
27
|
+
background: rgb(131, 131, 131);
|
28
|
+
}
|
29
|
+
.sb-announcement__inner {
|
30
|
+
background: black;
|
31
|
+
color: white;
|
32
|
+
}
|
33
|
+
.sb-header {
|
34
|
+
background: lightskyblue;
|
35
|
+
}
|
36
|
+
.sb-header__inner {
|
37
|
+
background: royalblue;
|
38
|
+
color: white;
|
39
|
+
}
|
40
|
+
.sb-header-secondary {
|
41
|
+
background: lightcyan;
|
42
|
+
}
|
43
|
+
.sb-header-secondary__inner {
|
44
|
+
background: cornflowerblue;
|
45
|
+
color: white;
|
46
|
+
}
|
47
|
+
.sb-sidebar-primary {
|
48
|
+
background: lightgreen;
|
49
|
+
}
|
50
|
+
.sb-main {
|
51
|
+
background: blanchedalmond;
|
52
|
+
}
|
53
|
+
.sb-main__inner {
|
54
|
+
background: antiquewhite;
|
55
|
+
}
|
56
|
+
.sb-header-article {
|
57
|
+
background: lightsteelblue;
|
58
|
+
}
|
59
|
+
.sb-article-container {
|
60
|
+
background: snow;
|
61
|
+
}
|
62
|
+
.sb-article-main {
|
63
|
+
background: white;
|
64
|
+
}
|
65
|
+
.sb-footer-article {
|
66
|
+
background: lightpink;
|
67
|
+
}
|
68
|
+
.sb-sidebar-secondary {
|
69
|
+
background: lightgoldenrodyellow;
|
70
|
+
}
|
71
|
+
.sb-footer-content {
|
72
|
+
background: plum;
|
73
|
+
}
|
74
|
+
.sb-footer-content__inner {
|
75
|
+
background: palevioletred;
|
76
|
+
}
|
77
|
+
.sb-footer {
|
78
|
+
background: pink;
|
79
|
+
}
|
80
|
+
.sb-footer__inner {
|
81
|
+
background: salmon;
|
82
|
+
}
|
83
|
+
.sb-article {
|
84
|
+
background: white;
|
85
|
+
}
|
@@ -0,0 +1,156 @@
|
|
1
|
+
/*
|
2
|
+
* doctools.js
|
3
|
+
* ~~~~~~~~~~~
|
4
|
+
*
|
5
|
+
* Base JavaScript utilities for all Sphinx HTML documentation.
|
6
|
+
*
|
7
|
+
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
|
8
|
+
* :license: BSD, see LICENSE for details.
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
"use strict";
|
12
|
+
|
13
|
+
const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([
|
14
|
+
"TEXTAREA",
|
15
|
+
"INPUT",
|
16
|
+
"SELECT",
|
17
|
+
"BUTTON",
|
18
|
+
]);
|
19
|
+
|
20
|
+
const _ready = (callback) => {
|
21
|
+
if (document.readyState !== "loading") {
|
22
|
+
callback();
|
23
|
+
} else {
|
24
|
+
document.addEventListener("DOMContentLoaded", callback);
|
25
|
+
}
|
26
|
+
};
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Small JavaScript module for the documentation.
|
30
|
+
*/
|
31
|
+
const Documentation = {
|
32
|
+
init: () => {
|
33
|
+
Documentation.initDomainIndexTable();
|
34
|
+
Documentation.initOnKeyListeners();
|
35
|
+
},
|
36
|
+
|
37
|
+
/**
|
38
|
+
* i18n support
|
39
|
+
*/
|
40
|
+
TRANSLATIONS: {},
|
41
|
+
PLURAL_EXPR: (n) => (n === 1 ? 0 : 1),
|
42
|
+
LOCALE: "unknown",
|
43
|
+
|
44
|
+
// gettext and ngettext don't access this so that the functions
|
45
|
+
// can safely bound to a different name (_ = Documentation.gettext)
|
46
|
+
gettext: (string) => {
|
47
|
+
const translated = Documentation.TRANSLATIONS[string];
|
48
|
+
switch (typeof translated) {
|
49
|
+
case "undefined":
|
50
|
+
return string; // no translation
|
51
|
+
case "string":
|
52
|
+
return translated; // translation exists
|
53
|
+
default:
|
54
|
+
return translated[0]; // (singular, plural) translation tuple exists
|
55
|
+
}
|
56
|
+
},
|
57
|
+
|
58
|
+
ngettext: (singular, plural, n) => {
|
59
|
+
const translated = Documentation.TRANSLATIONS[singular];
|
60
|
+
if (typeof translated !== "undefined")
|
61
|
+
return translated[Documentation.PLURAL_EXPR(n)];
|
62
|
+
return n === 1 ? singular : plural;
|
63
|
+
},
|
64
|
+
|
65
|
+
addTranslations: (catalog) => {
|
66
|
+
Object.assign(Documentation.TRANSLATIONS, catalog.messages);
|
67
|
+
Documentation.PLURAL_EXPR = new Function(
|
68
|
+
"n",
|
69
|
+
`return (${catalog.plural_expr})`
|
70
|
+
);
|
71
|
+
Documentation.LOCALE = catalog.locale;
|
72
|
+
},
|
73
|
+
|
74
|
+
/**
|
75
|
+
* helper function to focus on search bar
|
76
|
+
*/
|
77
|
+
focusSearchBar: () => {
|
78
|
+
document.querySelectorAll("input[name=q]")[0]?.focus();
|
79
|
+
},
|
80
|
+
|
81
|
+
/**
|
82
|
+
* Initialise the domain index toggle buttons
|
83
|
+
*/
|
84
|
+
initDomainIndexTable: () => {
|
85
|
+
const toggler = (el) => {
|
86
|
+
const idNumber = el.id.substr(7);
|
87
|
+
const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`);
|
88
|
+
if (el.src.substr(-9) === "minus.png") {
|
89
|
+
el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`;
|
90
|
+
toggledRows.forEach((el) => (el.style.display = "none"));
|
91
|
+
} else {
|
92
|
+
el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`;
|
93
|
+
toggledRows.forEach((el) => (el.style.display = ""));
|
94
|
+
}
|
95
|
+
};
|
96
|
+
|
97
|
+
const togglerElements = document.querySelectorAll("img.toggler");
|
98
|
+
togglerElements.forEach((el) =>
|
99
|
+
el.addEventListener("click", (event) => toggler(event.currentTarget))
|
100
|
+
);
|
101
|
+
togglerElements.forEach((el) => (el.style.display = ""));
|
102
|
+
if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler);
|
103
|
+
},
|
104
|
+
|
105
|
+
initOnKeyListeners: () => {
|
106
|
+
// only install a listener if it is really needed
|
107
|
+
if (
|
108
|
+
!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS &&
|
109
|
+
!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS
|
110
|
+
)
|
111
|
+
return;
|
112
|
+
|
113
|
+
document.addEventListener("keydown", (event) => {
|
114
|
+
// bail for input elements
|
115
|
+
if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return;
|
116
|
+
// bail with special keys
|
117
|
+
if (event.altKey || event.ctrlKey || event.metaKey) return;
|
118
|
+
|
119
|
+
if (!event.shiftKey) {
|
120
|
+
switch (event.key) {
|
121
|
+
case "ArrowLeft":
|
122
|
+
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
|
123
|
+
|
124
|
+
const prevLink = document.querySelector('link[rel="prev"]');
|
125
|
+
if (prevLink && prevLink.href) {
|
126
|
+
window.location.href = prevLink.href;
|
127
|
+
event.preventDefault();
|
128
|
+
}
|
129
|
+
break;
|
130
|
+
case "ArrowRight":
|
131
|
+
if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break;
|
132
|
+
|
133
|
+
const nextLink = document.querySelector('link[rel="next"]');
|
134
|
+
if (nextLink && nextLink.href) {
|
135
|
+
window.location.href = nextLink.href;
|
136
|
+
event.preventDefault();
|
137
|
+
}
|
138
|
+
break;
|
139
|
+
}
|
140
|
+
}
|
141
|
+
|
142
|
+
// some keyboard layouts may need Shift to get /
|
143
|
+
switch (event.key) {
|
144
|
+
case "/":
|
145
|
+
if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break;
|
146
|
+
Documentation.focusSearchBar();
|
147
|
+
event.preventDefault();
|
148
|
+
}
|
149
|
+
});
|
150
|
+
},
|
151
|
+
};
|
152
|
+
|
153
|
+
// quick alias for translations
|
154
|
+
const _ = Documentation.gettext;
|
155
|
+
|
156
|
+
_ready(Documentation.init);
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2025 Google LLC
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
|
17
|
+
const DOCUMENTATION_OPTIONS = {
|
18
|
+
VERSION: '',
|
19
|
+
LANGUAGE: 'en',
|
20
|
+
COLLAPSE_INDEX: false,
|
21
|
+
BUILDER: 'html',
|
22
|
+
FILE_SUFFIX: '.html',
|
23
|
+
LINK_SUFFIX: '.html',
|
24
|
+
HAS_SOURCE: true,
|
25
|
+
SOURCELINK_SUFFIX: '.txt',
|
26
|
+
NAVIGATION_WITH_KEYS: false,
|
27
|
+
SHOW_SEARCH_SUMMARY: true,
|
28
|
+
ENABLE_SEARCH_SHORTCUTS: true,
|
29
|
+
};
|
Binary file
|
@@ -0,0 +1,199 @@
|
|
1
|
+
/*
|
2
|
+
* language_data.js
|
3
|
+
* ~~~~~~~~~~~~~~~~
|
4
|
+
*
|
5
|
+
* This script contains the language-specific data used by searchtools.js,
|
6
|
+
* namely the list of stopwords, stemmer, scorer and splitter.
|
7
|
+
*
|
8
|
+
* :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS.
|
9
|
+
* :license: BSD, see LICENSE for details.
|
10
|
+
*
|
11
|
+
*/
|
12
|
+
|
13
|
+
var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"];
|
14
|
+
|
15
|
+
|
16
|
+
/* Non-minified version is copied as a separate JS file, if available */
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Porter Stemmer
|
20
|
+
*/
|
21
|
+
var Stemmer = function() {
|
22
|
+
|
23
|
+
var step2list = {
|
24
|
+
ational: 'ate',
|
25
|
+
tional: 'tion',
|
26
|
+
enci: 'ence',
|
27
|
+
anci: 'ance',
|
28
|
+
izer: 'ize',
|
29
|
+
bli: 'ble',
|
30
|
+
alli: 'al',
|
31
|
+
entli: 'ent',
|
32
|
+
eli: 'e',
|
33
|
+
ousli: 'ous',
|
34
|
+
ization: 'ize',
|
35
|
+
ation: 'ate',
|
36
|
+
ator: 'ate',
|
37
|
+
alism: 'al',
|
38
|
+
iveness: 'ive',
|
39
|
+
fulness: 'ful',
|
40
|
+
ousness: 'ous',
|
41
|
+
aliti: 'al',
|
42
|
+
iviti: 'ive',
|
43
|
+
biliti: 'ble',
|
44
|
+
logi: 'log'
|
45
|
+
};
|
46
|
+
|
47
|
+
var step3list = {
|
48
|
+
icate: 'ic',
|
49
|
+
ative: '',
|
50
|
+
alize: 'al',
|
51
|
+
iciti: 'ic',
|
52
|
+
ical: 'ic',
|
53
|
+
ful: '',
|
54
|
+
ness: ''
|
55
|
+
};
|
56
|
+
|
57
|
+
var c = "[^aeiou]"; // consonant
|
58
|
+
var v = "[aeiouy]"; // vowel
|
59
|
+
var C = c + "[^aeiouy]*"; // consonant sequence
|
60
|
+
var V = v + "[aeiou]*"; // vowel sequence
|
61
|
+
|
62
|
+
var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
|
63
|
+
var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
|
64
|
+
var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
|
65
|
+
var s_v = "^(" + C + ")?" + v; // vowel in stem
|
66
|
+
|
67
|
+
this.stemWord = function (w) {
|
68
|
+
var stem;
|
69
|
+
var suffix;
|
70
|
+
var firstch;
|
71
|
+
var origword = w;
|
72
|
+
|
73
|
+
if (w.length < 3)
|
74
|
+
return w;
|
75
|
+
|
76
|
+
var re;
|
77
|
+
var re2;
|
78
|
+
var re3;
|
79
|
+
var re4;
|
80
|
+
|
81
|
+
firstch = w.substr(0,1);
|
82
|
+
if (firstch == "y")
|
83
|
+
w = firstch.toUpperCase() + w.substr(1);
|
84
|
+
|
85
|
+
// Step 1a
|
86
|
+
re = /^(.+?)(ss|i)es$/;
|
87
|
+
re2 = /^(.+?)([^s])s$/;
|
88
|
+
|
89
|
+
if (re.test(w))
|
90
|
+
w = w.replace(re,"$1$2");
|
91
|
+
else if (re2.test(w))
|
92
|
+
w = w.replace(re2,"$1$2");
|
93
|
+
|
94
|
+
// Step 1b
|
95
|
+
re = /^(.+?)eed$/;
|
96
|
+
re2 = /^(.+?)(ed|ing)$/;
|
97
|
+
if (re.test(w)) {
|
98
|
+
var fp = re.exec(w);
|
99
|
+
re = new RegExp(mgr0);
|
100
|
+
if (re.test(fp[1])) {
|
101
|
+
re = /.$/;
|
102
|
+
w = w.replace(re,"");
|
103
|
+
}
|
104
|
+
}
|
105
|
+
else if (re2.test(w)) {
|
106
|
+
var fp = re2.exec(w);
|
107
|
+
stem = fp[1];
|
108
|
+
re2 = new RegExp(s_v);
|
109
|
+
if (re2.test(stem)) {
|
110
|
+
w = stem;
|
111
|
+
re2 = /(at|bl|iz)$/;
|
112
|
+
re3 = new RegExp("([^aeiouylsz])\\1$");
|
113
|
+
re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
114
|
+
if (re2.test(w))
|
115
|
+
w = w + "e";
|
116
|
+
else if (re3.test(w)) {
|
117
|
+
re = /.$/;
|
118
|
+
w = w.replace(re,"");
|
119
|
+
}
|
120
|
+
else if (re4.test(w))
|
121
|
+
w = w + "e";
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
125
|
+
// Step 1c
|
126
|
+
re = /^(.+?)y$/;
|
127
|
+
if (re.test(w)) {
|
128
|
+
var fp = re.exec(w);
|
129
|
+
stem = fp[1];
|
130
|
+
re = new RegExp(s_v);
|
131
|
+
if (re.test(stem))
|
132
|
+
w = stem + "i";
|
133
|
+
}
|
134
|
+
|
135
|
+
// Step 2
|
136
|
+
re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
|
137
|
+
if (re.test(w)) {
|
138
|
+
var fp = re.exec(w);
|
139
|
+
stem = fp[1];
|
140
|
+
suffix = fp[2];
|
141
|
+
re = new RegExp(mgr0);
|
142
|
+
if (re.test(stem))
|
143
|
+
w = stem + step2list[suffix];
|
144
|
+
}
|
145
|
+
|
146
|
+
// Step 3
|
147
|
+
re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
|
148
|
+
if (re.test(w)) {
|
149
|
+
var fp = re.exec(w);
|
150
|
+
stem = fp[1];
|
151
|
+
suffix = fp[2];
|
152
|
+
re = new RegExp(mgr0);
|
153
|
+
if (re.test(stem))
|
154
|
+
w = stem + step3list[suffix];
|
155
|
+
}
|
156
|
+
|
157
|
+
// Step 4
|
158
|
+
re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
|
159
|
+
re2 = /^(.+?)(s|t)(ion)$/;
|
160
|
+
if (re.test(w)) {
|
161
|
+
var fp = re.exec(w);
|
162
|
+
stem = fp[1];
|
163
|
+
re = new RegExp(mgr1);
|
164
|
+
if (re.test(stem))
|
165
|
+
w = stem;
|
166
|
+
}
|
167
|
+
else if (re2.test(w)) {
|
168
|
+
var fp = re2.exec(w);
|
169
|
+
stem = fp[1] + fp[2];
|
170
|
+
re2 = new RegExp(mgr1);
|
171
|
+
if (re2.test(stem))
|
172
|
+
w = stem;
|
173
|
+
}
|
174
|
+
|
175
|
+
// Step 5
|
176
|
+
re = /^(.+?)e$/;
|
177
|
+
if (re.test(w)) {
|
178
|
+
var fp = re.exec(w);
|
179
|
+
stem = fp[1];
|
180
|
+
re = new RegExp(mgr1);
|
181
|
+
re2 = new RegExp(meq1);
|
182
|
+
re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
|
183
|
+
if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
|
184
|
+
w = stem;
|
185
|
+
}
|
186
|
+
re = /ll$/;
|
187
|
+
re2 = new RegExp(mgr1);
|
188
|
+
if (re.test(w) && re2.test(w)) {
|
189
|
+
re = /.$/;
|
190
|
+
w = w.replace(re,"");
|
191
|
+
}
|
192
|
+
|
193
|
+
// and turn initial Y back to y
|
194
|
+
if (firstch == "y")
|
195
|
+
w = firstch.toLowerCase() + w.substr(1);
|
196
|
+
return w;
|
197
|
+
}
|
198
|
+
}
|
199
|
+
|
Binary file
|
Binary file
|