###############################################################################
# Copyright (c) 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
Please_specify_CSS_file_na=Please specify CSS file name.
ERROR__Cannot_use_a_static_ERROR_=IWAK0071E ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.
You_cannot_use_CSSStyleShe_UI_=You cannot use CSSStyleSheet.getOwnerRule() because of many referencers of this rule\nPlease use getOnwerRules()
Missing_return_statement_i_ERROR_=IWAK0072E Missing return statement in function
1concat_ERROR_=IWAK0073E {0}first flat node is null.
2concat_ERROR_=IWAK0074E {0}first flat node is not in model.
3concat_ERROR_=IWAK0075E {0}last flat node is null.
4concat_ERROR_=IWAK0076E {0}last flat node is not in model.
25concat_ERROR_=IWAK0077E {0}first region is null.
26concat_ERROR_=IWAK0078E {0}first region is not in model.
27concat_ERROR_=IWAK0079E {0}last region is null.
28concat_ERROR_=IWAK0080E {0}last region is not in model.
5concat_ERROR_=IWAK0081E {0}first region is null.
6concat_ERROR_=IWAK0082E {0}first region is not in model.
7concat_ERROR_=IWAK0083E {0}last region is null.
8concat_ERROR_=IWAK0084E {0}last region is not in model.
9concat_ERROR_=IWAK0085E Invalid escape character at line {0} column {1}.
12concat_EXC_=IWAK0086E Caught Exception: {0}
13concat_ERROR_=IWAK0087E Error: Ignoring invalid lexical state : {0}. State unchanged.
15concat_ERROR_=IWAK0088E Lexical error at line {0}, column {1}.  Encountered:  {2} after :
ERROR__Cannot_use_a_static_ERROR__ERROR_=IWAK0089E ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.
