mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	* Add a larger set of sample files for Pan This is a fairly good cross section of Pan based on code from: * https://github.com/quattor/template-library-examples * https://github.com/quattor/template-library-core * Add Pan language grammar
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ################################################################################
 | |
| # This is 'namespaces/standard/pan/functions.tpl', a pan-templates's file
 | |
| ################################################################################
 | |
| #
 | |
| # VERSION:    3.2.7, 21/08/09 22:22
 | |
| # AUTHOR:     Martin Bock
 | |
| # MAINTAINER: Example Maintainer <support@example.org>
 | |
| # LICENSE:    http://cern.ch/eu-datagrid/license.html
 | |
| #
 | |
| ################################################################################
 | |
| # Coding style: emulate <TAB> characters with 4 spaces, thanks!
 | |
| ################################################################################
 | |
| #
 | |
| # Function definitions
 | |
| #
 | |
| ################################################################################
 | |
| 
 | |
| declaration template pan/functions;
 | |
| 
 | |
| include 'pan/types';
 | |
| 
 | |
| ############################################################
 | |
| ##=
 | |
| ## @function push
 | |
| ## @# push zero or more values onto the end of a list.
 | |
| ##+If the list does not exist or is not defined a new list is
 | |
| ##+created.
 | |
| ## @syntax value:element
 | |
| ## @param:value... the values to push onto list
 | |
| ## @example
 | |
| ##+# "/data" will contain list (1,2,3,4)
 | |
| ##+"/data" = list(1,2);
 | |
| ##+"/data" = push(3,4);
 | |
| ##=
 | |
| ############################################################
 | |
| function push = {
 | |
|     # Get the reference to SELF or create an empty list
 | |
|     # as necessary.
 | |
|     if (exists(SELF) && is_list(SELF)) {
 | |
|         v = SELF;
 | |
|     } else if (!exists(SELF) || !is_defined(SELF)) {
 | |
|         v = list();
 | |
|     } else {
 | |
|         error("push can only be applied to a list");
 | |
|     };
 | |
| 
 | |
|     # Merge the arguments into the given array.  Neither the
 | |
|     # first/next or merge functions can be used because the
 | |
|     # ARGV array cannot be directly referenced.
 | |
|     i = 0;
 | |
|     while (i < ARGC) {
 | |
|         v[length(v)] = ARGV[i];
 | |
|         i = i + 1;
 | |
|     };
 | |
|     v;
 | |
| };
 |