File indexing completed on 2024-05-12 04:02:07

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.jsonnet</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Jsonnet) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 <span style="font-weight:bold">local</span> utils <span style="color:#ca60ca">=</span> <span style="font-weight:bold">import</span> <span style="color:#bf0303">'utils.libsonnet'</span><span style="color:#ca60ca">;</span>
0008 
0009 <span style="color:#898887">/* A C-style</span>
0010 <span style="color:#898887">   comment.</span>
0011 <span style="color:#898887">*/</span>
0012 <span style="color:#898887"># A Python-style comment.</span>
0013 
0014 <span style="color:#898887">// Define a "local" function.</span>
0015 <span style="color:#898887">// Default arguments are like Python:</span>
0016 <span style="font-weight:bold">local</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">,</span> y<span style="color:#ca60ca">=</span><span style="color:#b08000">10</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">=</span> x <span style="color:#ca60ca">+</span> y<span style="color:#ca60ca">;</span>
0017 
0018 <span style="font-weight:bold">local</span> object <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">{</span>
0019   <span style="color:#898887">// A method</span>
0020   <span style="color:#644a9b">my_method</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">):</span> x <span style="color:#ca60ca">*</span> x<span style="color:#ca60ca">,</span>
0021 <span style="color:#ca60ca">};</span>
0022 
0023 <span style="font-weight:bold">local</span> string1 <span style="color:#ca60ca">=</span> <span style="color:#bf0303">'Farmer</span><span style="color:#3daee9">\'</span><span style="color:#bf0303">s Gin'</span><span style="color:#ca60ca">;</span>
0024 <span style="font-weight:bold">local</span> string_newline1 <span style="color:#ca60ca">=</span> <span style="color:#bf0303">'this is</span>
0025 <span style="color:#bf0303">a valid string</span>
0026 <span style="color:#bf0303">with newlines'</span><span style="color:#ca60ca">;</span>
0027 <span style="font-weight:bold">local</span> string_newline2 <span style="color:#ca60ca">=</span> <span style="color:#bf0303">"this is</span>
0028 <span style="color:#bf0303">also</span>
0029 <span style="color:#bf0303">a valid string"</span><span style="color:#ca60ca">;</span>
0030 
0031 <span style="font-weight:bold">local</span> timcollins <span style="color:#ca60ca">=</span> <span style="color:#bf0303">|||</span>
0032 <span style="color:#bf0303"> The Tom Collins is essentially gin and</span>
0033 <span style="color:#bf0303"> lemonade. The bitters add complexity.</span>
0034 <span style="color:#bf0303">|||</span><span style="color:#ca60ca">;</span>
0035 
0036 <span style="font-weight:bold">local</span> obj <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">{</span>
0037   <span style="color:#bf0303">"foo"</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">,</span>
0038   <span style="color:#bf0303">"bar"</span><span style="color:#ca60ca">:</span> <span style="color:#ca60ca">{</span>
0039     <span style="color:#bf0303">"arr"</span><span style="color:#ca60ca">:</span> <span style="color:#ca60ca">[</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">],</span>
0040     <span style="color:#bf0303">"number"</span><span style="color:#ca60ca">:</span> <span style="color:#b08000">10</span> <span style="color:#ca60ca">+</span> <span style="color:#b08000">7</span><span style="color:#ca60ca">,</span>
0041   <span style="color:#ca60ca">},</span>
0042 <span style="color:#ca60ca">};</span>
0043 
0044 <span style="color:#898887">// Define a local function.</span>
0045 <span style="color:#898887">// Default arguments are like Python:</span>
0046 <span style="font-weight:bold">local</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">,</span> y<span style="color:#ca60ca">=</span><span style="color:#b08000">10</span><span style="color:#ca60ca">)</span> <span style="color:#ca60ca">=</span> x <span style="color:#ca60ca">+</span> y<span style="color:#ca60ca">;</span>
0047 
0048 <span style="color:#898887">// Define a local multiline function.</span>
0049 <span style="font-weight:bold">local</span> <span style="color:#644a9b">multiline_function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">)</span> <span style="color:#ca60ca">=</span>
0050   <span style="color:#898887">// One can nest locals.</span>
0051   <span style="font-weight:bold">local</span> temp <span style="color:#ca60ca">=</span> x <span style="color:#ca60ca">*</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">;</span>
0052   <span style="color:#898887">// Every local ends with a semi-colon.</span>
0053   <span style="color:#ca60ca">[</span>temp<span style="color:#ca60ca">,</span> temp <span style="color:#ca60ca">+</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">];</span>
0054 
0055 <span style="font-weight:bold">local</span> object <span style="color:#ca60ca">=</span> <span style="color:#ca60ca">{</span>
0056   <span style="color:#898887">// A method</span>
0057   <span style="color:#644a9b">my_method</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">):</span> x <span style="color:#ca60ca">*</span> x<span style="color:#ca60ca">,</span>
0058 <span style="color:#ca60ca">};</span>
0059 
0060 <span style="font-weight:bold">local</span> large <span style="color:#ca60ca">=</span> true<span style="color:#ca60ca">;</span>
0061 
0062 <span style="color:#ca60ca">{</span>
0063 
0064   <span style="color:#898887">// Functions are first class citizens.</span>
0065   call_inline_function<span style="color:#ca60ca">:</span>
0066     <span style="color:#ca60ca">(</span><span style="color:#644a9b">function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">)</span> x <span style="color:#ca60ca">*</span> x<span style="color:#ca60ca">)(</span><span style="color:#b08000">5</span><span style="color:#ca60ca">),</span>
0067 
0068   call_multiline_function<span style="color:#ca60ca">:</span> <span style="color:#644a9b">multiline_function</span><span style="color:#ca60ca">(</span><span style="color:#b08000">4</span><span style="color:#ca60ca">),</span>
0069 
0070   <span style="color:#898887">// Using the variable fetches the function,</span>
0071   <span style="color:#898887">// the parens call the function.</span>
0072   call<span style="color:#ca60ca">:</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span><span style="color:#b08000">2</span><span style="color:#ca60ca">),</span>
0073 
0074   <span style="color:#898887">// Like python, parameters can be named at</span>
0075   <span style="color:#898887">// call time.</span>
0076   named_params<span style="color:#ca60ca">:</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span>x<span style="color:#ca60ca">=</span><span style="color:#b08000">2</span><span style="color:#ca60ca">),</span>
0077   <span style="color:#898887">// This allows changing their order</span>
0078   named_params2<span style="color:#ca60ca">:</span> <span style="color:#644a9b">my_function</span><span style="color:#ca60ca">(</span>y<span style="color:#ca60ca">=</span><span style="color:#b08000">3</span><span style="color:#ca60ca">,</span> x<span style="color:#ca60ca">=</span><span style="color:#b08000">2</span><span style="color:#ca60ca">),</span>
0079 
0080   <span style="color:#898887">// object.my_method returns the function,</span>
0081   <span style="color:#898887">// which is then called like any other.</span>
0082   call_method1<span style="color:#ca60ca">:</span> object<span style="color:#ca60ca">.</span><span style="color:#644a9b">my_method</span><span style="color:#ca60ca">(</span><span style="color:#b08000">3</span><span style="color:#ca60ca">),</span>
0083 
0084   standard_lib<span style="color:#ca60ca">:</span>
0085     <span style="font-weight:bold">std</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">join</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">' '</span><span style="color:#ca60ca">,</span> <span style="font-weight:bold">std</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">split</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">"foo/bar"</span><span style="color:#ca60ca">,</span> <span style="color:#bf0303">'/'</span><span style="color:#ca60ca">)),</span>
0086   len<span style="color:#ca60ca">:</span> <span style="color:#ca60ca">[</span>
0087     <span style="font-weight:bold">std</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">length</span><span style="color:#ca60ca">(</span><span style="color:#bf0303">'hello'</span><span style="color:#ca60ca">),</span>
0088     <span style="font-weight:bold">std</span><span style="color:#ca60ca">.</span><span style="color:#644a9b">length</span><span style="color:#ca60ca">([</span><span style="color:#b08000">1</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">2</span><span style="color:#ca60ca">,</span> <span style="color:#b08000">3</span><span style="color:#ca60ca">]),</span>
0089   <span style="color:#ca60ca">],</span>
0090 
0091   cocktails<span style="color:#ca60ca">:</span> <span style="color:#ca60ca">{</span>
0092     <span style="font-weight:bold">local</span> factor <span style="color:#ca60ca">=</span> <span style="font-weight:bold">if</span> large <span style="font-weight:bold">then</span> <span style="color:#b08000">2</span> <span style="font-weight:bold">else</span> <span style="color:#b08000">1</span><span style="color:#ca60ca">,</span>
0093 
0094     <span style="color:#898887">// Ingredient quantities are in fl oz.</span>
0095     <span style="color:#bf0303">'Tom Collins'</span><span style="color:#ca60ca">:</span> <span style="color:#ca60ca">{</span>
0096       ingredients<span style="color:#ca60ca">:</span> <span style="color:#ca60ca">[</span>
0097         <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> string1<span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#b08000">1.5</span><span style="color:#ca60ca">*</span>factor <span style="color:#ca60ca">},</span>
0098         <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Lemon'</span><span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#b08000">1</span> <span style="color:#ca60ca">},</span>
0099         <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Simple Syrup'</span><span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#b08000">0.5E+1</span> <span style="color:#ca60ca">},</span>
0100         <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Soda'</span><span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#b08000">2</span> <span style="color:#ca60ca">},</span>
0101         <span style="color:#ca60ca">{</span> kind<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Angostura'</span><span style="color:#ca60ca">,</span> qty<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'dash'</span> <span style="color:#ca60ca">},</span>
0102       <span style="color:#ca60ca">],</span>
0103       garnish<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Maraschino Cherry'</span><span style="color:#ca60ca">,</span>
0104       served<span style="color:#ca60ca">:</span> <span style="color:#bf0303">'Tall'</span><span style="color:#ca60ca">,</span>
0105       description<span style="color:#ca60ca">:</span> timcollins<span style="color:#ca60ca">,</span>
0106     <span style="color:#ca60ca">},</span>
0107   <span style="color:#ca60ca">},</span>
0108 <span style="color:#ca60ca">}</span>
0109 </pre></body></html>